<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Blog | RENOR &amp; Partners S.r.l.</title>
	<atom:link href="https://renor.it/blog/feed/" rel="self" type="application/rss+xml" />
	<link>https://renor.it/blog/</link>
	<description></description>
	<lastBuildDate>Mon, 09 Mar 2026 21:04:58 +0000</lastBuildDate>
	<language>it-IT</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
	<item>
		<title>La mia intervista a Esperti del Settore: AI ed etica</title>
		<link>https://renor.it/blog/la-mia-intervista-a-esperti-del-settore-ai-ed-etica/</link>
		
		<dc:creator><![CDATA[Simone Renzi]]></dc:creator>
		<pubDate>Mon, 09 Mar 2026 21:04:57 +0000</pubDate>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Intelligenza Artificiale & Algoritmi]]></category>
		<category><![CDATA[etica AI]]></category>
		<category><![CDATA[etica intelligenza artificiale]]></category>
		<category><![CDATA[innovazione]]></category>
		<category><![CDATA[intelligenza artificiale]]></category>
		<category><![CDATA[intervista]]></category>
		<category><![CDATA[renor]]></category>
		<category><![CDATA[renor & partners]]></category>
		<category><![CDATA[simone renzi]]></category>
		<guid isPermaLink="false">https://renor.it/?p=2909</guid>

					<description><![CDATA[<p>Sono stato recentemente invitato come ospite in &#8220;Esperti del settore&#8221;, un programma focalizzato su imprenditori e aziende che tratta tematiche di grande interesse. L&#8217;intervento principale nel mio contesto lavorativo ha riguardato l&#8217;Intelligenza Artificiale. Nel dibattito sull&#8217;IA, si tende ad attribuire una persona artificiale a quest&#8217;ultima, utilizzando pronomi come &#8216;Lei&#8217; o &#8216;Lui&#8217;. Anche io, a volte, [&#8230;]</p>
<p>L'articolo <a href="https://renor.it/blog/la-mia-intervista-a-esperti-del-settore-ai-ed-etica/">La mia intervista a Esperti del Settore: AI ed etica</a> proviene da <a href="https://renor.it">RENOR &amp; Partners S.r.l.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Sono stato recentemente invitato come ospite in &#8220;Esperti del settore&#8221;, un programma focalizzato su imprenditori e aziende che tratta tematiche di grande interesse. L&#8217;intervento principale nel mio contesto lavorativo ha riguardato l&#8217;Intelligenza Artificiale.</p>



<p>Nel dibattito sull&#8217;IA, si tende ad attribuire una persona artificiale a quest&#8217;ultima, utilizzando pronomi come &#8216;Lei&#8217; o &#8216;Lui&#8217;. Anche io, a volte, cappo in questo errore durante i discorsi. La motivazione di questo lapsus, a mio avviso, è legata soprattutto alla complessità del tema dell&#8217;Intelligenza, sebbene seguito dall&#8217;aggettivo &#8220;Artificiale&#8221;, questo lemma induce nell&#8217;immaginario del cervello umano un&#8217;associazione con la figura umana, perché l&#8217;intelligenza è stata tradizionalmente vista come caratteristica peculiare dell&#8217;essere umano.</p>



<p>Parlare dell&#8217;AI come se fosse umana presenta un problema sia a livello lessicale che cognitivo, poiché può portare a conseguenze dannose: far percepire al cervello il testo AI come parte integrante di un ragionamento cosciente. È fondamentale, quindi, prima di utilizzare queste tecnologie, specialmente per i più giovani, distinguere tra ciò che è prodotto da un algoritmo basato su una valutazione statistica su centinaia di miliardi di dati e ciò che invece è prodotto di esperienza umana, influenzata da intuito e coscienza.</p>



<h2 class="wp-block-heading" id="h-l-ai-nell-ambiente-lavorativo">L&#8217;AI nell&#8217;ambiente lavorativo</h2>



<p>L&#8217;algoritmo non può replicare la coscienza umana, poiché questa deriva da sentimenti e riflessioni generate dalle esperienze vissute.</p>



<p>Essere umani significa conoscere il dolore, che ci guida verso una maggiore empatia. Immaginiamo una persona appena licenziata pronta a raccontare la sua storia.</p>



<p>La risposta di un sistema di intelligenza artificiale sarebbe una cosa di questo genere: <br>&#8220;Mi dispiace che tu abbia perso il lavoro. È una situazione difficile. Potresti considerare di aggiornare il tuo curriculum, cercare nuove opportunità online e valutare corsi di formazioni per migliorare le tue competenze&#8221;. </p>



<p id="h-l-ai-nell-ambiente-lavorativo">La risposta è accurata e razionale, ma manca di empatia per la situazione umana.</p>



<p>Un essere umano empatico probabilmente avrebbe risposto: <br>&#8220;Accidenti&#8230; Mi dispiace davvero tanto. So quanto ci tenevi a quel lavoro. Devi attraversare un momento molto pesante da digerire. Se ne vuoi parlare sono qui. Adesso cerca di digerire la cosa e quando ti sentirai più lucido magari possiamo ragionare insieme su come muoverti per cercare un&#8217;altra occupazione. Se potrò ti darò una mano chiedendo a qualche persone che conosco se ha bisogno di una figura come la tua&#8221;. </p>



<p>In questo contesto si osservano azioni tipicamente umane: il riconoscimento dell&#8217;emozione come un&#8217;esperienza condivisa, la condivisione emotiva che induce l&#8217;ascoltatore ad entrare in sintonia con lo stato d&#8217;animo di chi ha subito il licenziamento. C&#8217;è una presenza relazionale che fornisce disponibilità: &#8220;possiamo ragionare insieme&#8221;, &#8220;Se potrò ti darà una mano&#8221;.Invece di un aiuto tecnico immediato, c&#8217;è uno scambio emotivo, una comprensione reciproca e una soluzione proposta dopo un periodo di riflessione.</p>



<p>L&#8217;empatia umana va oltre la semplice comprensione logica; include una componente di risonanza emotiva.</p>



<p>Un esempio ancora più forte può essere questo: <br>&#8220;Oggi ho venduto il violino di mio padre&#8221;.</p>



<p>Una possibile risposta dell&#8217;AI potrebbe essere: &#8220;Se mi dici modello e marca del violino e prezzo di vendita posso dirti se hai fatto un buon affare&#8221;. </p>



<p>Una possibile risposta di un umano: &#8220;Ma il violino che suonava sempre tuo padre che custodivi gelosamente in quella teca? Deve essere stato molto pesante per te disfartene, quel violino portava sicuramente tanti ricordi!&#8221;. </p>



<p>Qui è ancora più evidente che l&#8217;attenzione dell&#8217;interlocutore non si focalizza sull&#8217;oggetto ma su ciò che c&#8217;è dietro l&#8217;oggetto. Ricordi, emozioni, vita vissuta.</p>



<p>Ma attenzione, anche l&#8217;AI, a seconda del modello potrebbe dare una risposta simile&#8230; Cosa significa? È fondamentale ricordare che i modelli di IA si basano su informazioni fornite dagli esseri umani. In questa situazione potrebbe emulare un comportamento umano, ma è importante precisare che non lo è effettivamente. Fornirebbe semplicemente la risposta più statisticamente probabile che un essere umano darebbe a una simile affermazione, però ancora una volta priva di qualsiasi emozione.</p>



<h2 class="wp-block-heading" id="h-perche-molte-persone-si-aprono-con-un-modello-ai">Perché molte persone si &#8220;aprono&#8221; con un modello AI?</h2>



<p>Sono numerose le testimonianze di individui che rivelano di condividere pensieri e sentimenti con modelli AI più spesso rispetto alle persone reali. Questa situazione è preoccupante, ma ha una spiegazione plausibile.</p>



<p>Per effettuare comparazioni valide, l&#8217;AI non va confrontata con elementi negativi estremi, ma con modelli umani di riferimento razionali. In caso di necessità, affidarsi ad un&#8217;intelligenza artificiale potrebbe essere più sicuro rispetto a doversi affidare ad un assassino (la fiera della banalità), ma fortunatamente gli assassini sono pochi e il mondo è ancora popolato da persone oneste.</p>



<p>Quando pensiamo ai ragazzi che subiscono bullismo scolastico, è naturale comprendere come possano sentirsi a proprio agio nell&#8217; aprirsi all&#8217;AI perché trovano un supporto che:</p>



<ul class="wp-block-list">
<li>Non li incolpa</li>



<li>Non li bullizza</li>



<li>Non li prende in giro</li>



<li>Gli da dei consigli apparentemente razionali</li>



<li>È raggiungibile istantaneamente 24/7</li>
</ul>



<p>Sebbene efficace nell&#8217;elaborazione del testo, il sistema non è in grado di comprendere ed integrare le emozioni, operando esclusivamente su dati testuali. Nell&#8217;interazione sociale, i gesti rivelano molto sulle emozioni degli individui. L&#8217;AI, a causa della limitata comprensione del linguaggio non verbale, fatica a costruire relazioni reali. Anche il tono utilizzato svolge un ruolo fondamentale.</p>



<h2 class="wp-block-heading" id="h-il-lato-oscuro-delle-persone">Il lato oscuro delle persone</h2>



<p>Con grande frequenza, quando vengo contattato da aziende, il luogo comune è questo: &#8220;Ingegnere, dove posso integrare l&#8217;Intelligenza Artificiale per risparmiare sul costo del personale?&#8221;&#8230; Tradotto&#8230; Dove posso mettere AI per licenziare un po&#8217; di gente e mettermi più soldi nelle tasche?</p>



<p>Non posso esimermi dal definire questa visione imprenditoriale <strong>decisamente miope!</strong></p>



<p>L&#8217;integrazione dell&#8217;AI mira alla produttività e alla velocità, non al licenziamento dei propri dipendenti. Con una solida situazione economica e liquidità a disposizione, quale beneficio deriva dall&#8217;utilizzo dell&#8217;AI per la riduzione della forza lavoro?</p>



<p>Sarebbe come dire che ho una macchina, metto un motore più potente ma tolgo i freni perché il mio scopo è solo quello di accelerare più velocemente. Ok, ma quando poi davanti ti trovi un muro cosa fai? Gli chiedi di spostarsi?</p>



<p>L&#8217;integrazione di AI per ridurre il personale è sensata solo in un caso specifico: l&#8217;azienda sta attraversando un periodo critico con calo del lavoro, debiti crescenti e impossibilità di far fronte ai pagamenti. Per evitare la chiusura, si procede con riduzioni del personale in un tentativo di contenere i costi e preservare alcune posizioni lavorative cercando di rimpiazzare quella forza lavoro con l&#8217;AI. </p>



<p>Questa però è un&#8217;eccezione, uno stato di emergenza, non una norma! È come dire: &#8220;Salviamo ciò che possiamo licenziando 10 persone prima che sia troppo tardi e perdano il lavoro 100 persone&#8221;.</p>



<p>Il problema è che le aziende che mi pongono domande del genere spesso non hanno carenze di liquidità, e non sperimentano alcuna fatica nel mantenere il loro attuale livello occupazionale.</p>



<p>Sorge dunque una complessa questione etica per l&#8217;imprenditore e l&#8217;azienda chiamata a sviluppare questi strumenti.</p>



<p>Un regolamento giuridico in materia sarebbe fondamentale per garantire ai dipendenti una maggiore serenità nell&#8217;affrontare l&#8217;introduzione dell&#8217;intelligenza artificiale come alleato nel contesto lavorativo, e garantirebbe la continuità del livello occupazionale evitando i classici scontri etici che si hanno tra imprese clienti e software house. Perché cari lettori&#8230; Einstein diceva che &#8220;è più facile spezzare un atomo che un pregiudizio&#8221;. Personalmente ogni volta che mi trovo dinnanzi a proposte del genere provo con tutto me stesso a convincere chi sta davanti a me della sua visione miope: &#8220;utilizza questo personale in comparti più strategici, magari nel marketing per aumentare la domanda&#8221;, ma diciamoci la verità, molti imprenditori si concentrano unicamente sul guadagno a breve termine, ignorando le implicazioni etiche di eventuali decisioni e trascurando </p>



<p>D&#8217;altra parte è però richiesto anche uno sforzo da parte del dipendente. Diamo come si suol dire un calcio al cerchio e uno alla botte&#8230; Il contratto a tempo indeterminato non deve essere visto come un certificato di Laurea; ok ora mi sono laureato e sto a posto così, questo pezzo di carta non me lo toglie più nessuno. Molti dipendenti si &#8220;rilassano&#8221; per usare un eufemismo, quando vengono convertiti a tempo indeterminato. C&#8217;è chi accumula malattie su malattie anche se in perfetto stato di salute. C&#8217;è chi arriva in ufficio e scalda solo la sedia facendo il minimo indispensabile. <br>Naturalmente quando io parlo di mantenimento di livello occupazionale con gli imprenditori mi batto per i lavoratori virtuosi, non per gli scalda poltrona!</p>



<p>In questa intervista tocchiamo alcuni di questi punti. Buona visione. </p>



<figure class="wp-block-embed is-type-video is-provider-youtube wp-block-embed-youtube wp-embed-aspect-4-3 wp-has-aspect-ratio"><div class="wp-block-embed__wrapper">
<iframe title="Intelligenza artificiale nelle aziende" width="500" height="375" src="https://www.youtube.com/embed/g3kUBG8UGpY?feature=oembed" frameborder="0" allow="accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share" referrerpolicy="strict-origin-when-cross-origin" allowfullscreen></iframe>
</div></figure>



<p></p>
<p>L'articolo <a href="https://renor.it/blog/la-mia-intervista-a-esperti-del-settore-ai-ed-etica/">La mia intervista a Esperti del Settore: AI ed etica</a> proviene da <a href="https://renor.it">RENOR &amp; Partners S.r.l.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>AI per la scrittura di articoli: scrivere senza delegare il pensiero</title>
		<link>https://renor.it/blog/sviluppo-software-programmazione/ai-per-la-scrittura-di-articoli/</link>
		
		<dc:creator><![CDATA[Simone Renzi]]></dc:creator>
		<pubDate>Mon, 29 Dec 2025 01:10:36 +0000</pubDate>
				<category><![CDATA[Sviluppo Software & Programmazione]]></category>
		<category><![CDATA[ai writing]]></category>
		<category><![CDATA[content marketing]]></category>
		<category><![CDATA[intelligenza artificiale]]></category>
		<category><![CDATA[scrittura assistita]]></category>
		<category><![CDATA[seo editoriale]]></category>
		<category><![CDATA[wordpress]]></category>
		<category><![CDATA[writerflow]]></category>
		<guid isPermaLink="false">https://renor.it/?p=2852</guid>

					<description><![CDATA[<p>Con la creazione dell&#8217;infrastruttura di RunAI in RENOR &#38; Partners, abbiamo sviluppato un plugin WordPress che aiuta gli autori ad aumentare la visibilità online pubblicando contenuti di qualità: WriterFlow.WriterFlow nasce proprio per un uso consapevole dell’AI per la scrittura di articoli, come supporto al pensiero umano e non come sua sostituzione. Chi si affida a [&#8230;]</p>
<p>L'articolo <a href="https://renor.it/blog/sviluppo-software-programmazione/ai-per-la-scrittura-di-articoli/">AI per la scrittura di articoli: scrivere senza delegare il pensiero</a> proviene da <a href="https://renor.it">RENOR &amp; Partners S.r.l.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Con la creazione dell&#8217;infrastruttura di <strong><a href="https://runai.it">RunAI</a> </strong>in RENOR &amp; Partners, abbiamo sviluppato un plugin WordPress che aiuta gli autori ad aumentare la visibilità online pubblicando contenuti di qualità: <strong><a href="https://runai.it/writerflow">WriterFlow</a></strong>.<br>WriterFlow nasce proprio per un uso consapevole dell’AI per la scrittura di articoli, come supporto al pensiero umano e non come sua sostituzione.</p>



<p>Chi si affida a ChatGPT per la creazione automatica di contenuti rischia di rimanere indietro. La SEO richiede strategie complesse e non basta fare un copia e incolla, necessita di creatività e di contenuti pensati e scritti per il lettore. Gli articoli scritti interamente da ChatGPT presentano sempre queste caratteristiche:</p>



<ul class="wp-block-list">
<li>Sono in linea con la media</li>



<li>Non introducono esperienza reale</li>



<li>Non risolvono un problema meglio di altri</li>



<li>Sono facilmente riconoscibili anche senza l&#8217;utilizzo di un detector AI</li>



<li>Non tengono conto delle esigenze dell&#8217;utente.</li>
</ul>



<p>Proprio sull&#8217;ultimo punto vale la pena soffermarci per un secondo. </p>



<h2 class="wp-block-heading" id="h-ai-per-la-scrittura-di-articoli-scrivere-pensando-alle-persone-non-alla-seo">AI per la scrittura di articoli: scrivere pensando alle persone, non alla SEO</h2>



<p>Ti sembrerà assurdo ma gli algoritmi dei motori di ricerca tendono a preferire contenuti originali e di valore che risultino utili e interessanti per l&#8217;utente finale. Questo è ciò che posiziona meglio un sito web o un articolo nei risultati di ricerca. Abbiamo affrontato questo argomento anche in questo articolo: <a href="https://renor.it/blog/marketing-business-digitale/come-scrivere-un-articolo-di-blog/">come scrivere un articolo di blog</a>. </p>



<h2 class="wp-block-heading" id="h-writerflow-e-l-ai-per-la-scrittura-di-articoli-non-si-sostituiscono-all-umano">WriterFlow e l’AI per la scrittura di articoli non si sostituiscono all’umano</h2>



<p>Il plugin si avvale di un’intelligenza artificiale dedicata alla SEO, pensata come AI per la scrittura di articoli, capace di generare contenuti ottimizzati in base al ragionamento dell&#8217;utente, fornendo opzioni diverse, sinonimi e suggerimenti per migliorare la qualità della scrittura, rimanendo un semplice supporto alla stesura dell&#8217;idea e non sostituendosi all&#8217;autore.</p>



<p>Ad esempio potrei scrivere:<br><em>&#8220;WriterFlow è un plugin AI per WordPress che ti dà una mano a scrivere gli articoli&#8221;</em></p>



<p>Richiedendo un&#8217;alternativa, quello che ottengo grazie a WriterFlow è questo:</p>



<p>&#8220;<em>WriterFlow è un plugin per WordPress che utilizza l&#8217;intelligenza artificiale per supportare gli autori nella scrittura di articoli.<em>&#8220;</em></em></p>



<h2 class="wp-block-heading" id="h-ai-per-la-scrittura-di-articoli-e-selezione-di-titoli-efficaci">AI per la scrittura di articoli e selezione di titoli efficaci</h2>



<figure class="wp-block-image size-large"><img decoding="async" src="https://renor.it/wp-content/uploads/2025/12/Screenshot-2025-12-29-alle-01.12.53.png" alt="AI per la scrittura di articoli con WriterFlow: suggerimenti automatici di titoli in WordPress" class="wp-image-2855"/><figcaption class="wp-element-caption">WriterFlow propone automaticamente idee per titoli in linea con categoria e argomento dell’articolo.</figcaption></figure>



<p>Per far crescere il proprio sito è indispensabile nutrirlo continuamente di nuovi contenuti. Google non fornisce un numero esatto di articoli da pubblicare ogni giorno, non c&#8217;è un vademecum ma è possibile affermare con buona probabilità che la frequenza di pubblicazione dipenda fortemente dal tipo di sito web. </p>



<p>Un piccolo/medio blog dovrebbe pubblicare non più di 2/3 articoli a settimana, un sito di News è chiaro che ne debba pubblicare molti di più. Ma per un blog aziendale o per un blog personale le idee si esauriscono velocemente. </p>



<p>Con WriterFlow trovare il titolo perfetto è facile. Basta specificare categoria e tag, poi lasciare che WriterFlow generi 10 idee per titoli in linea con l&#8217;argomento selezionato.</p>



<p>Tanto tempo risparmiato e contenuti sempre di qualità.</p>



<h2 class="wp-block-heading" id="h-dalla-scelta-all-azione">Dalla scelta all&#8217;azione</h2>



<figure class="wp-block-image size-large"><img fetchpriority="high" decoding="async" width="1416" height="780" src="https://renor.it/wp-content/uploads/2025/12/Screenshot-2025-12-29-alle-01.32.57.png" alt="AI per la scrittura di articoli con WriterFlow: inserimento automatico del titolo in WordPress" class="wp-image-2858" srcset="https://renor.it/wp-content/uploads/2025/12/Screenshot-2025-12-29-alle-01.32.57.png 1416w, https://renor.it/wp-content/uploads/2025/12/Screenshot-2025-12-29-alle-01.32.57-300x165.png 300w, https://renor.it/wp-content/uploads/2025/12/Screenshot-2025-12-29-alle-01.32.57-768x423.png 768w" sizes="(max-width: 1416px) 100vw, 1416px" /><figcaption class="wp-element-caption">Con un solo click, WriterFlow inserisce il titolo scelto direttamente nell’editor WordPress.</figcaption></figure>



<p>Basta un click sul titolo prescelto e viene automaticamente inserito. WriterFlow si integra perfettamente con il tuo workflow WordPress, semplificando la creazione di contenuti ottimizzati per la SEO.</p>



<p>Basta perdere tempo con la ricerca del titolo perfetto. È sufficiente fornire l&#8217;argomento e WriterFlow proporrà diverse opzioni. Se non trovate quello che cercate, basta cliccare un tasto per rigenerare nuove idee.</p>



<h2 class="wp-block-heading" id="h-scrittura-assistita-un-uso-consapevole-dell-ai-per-la-scrittura-di-articoli">Scrittura assistita: un uso consapevole dell’AI per la scrittura di articoli</h2>



<figure class="wp-block-image size-large"><img decoding="async" width="1414" height="632" src="https://renor.it/wp-content/uploads/2025/12/Screenshot-2025-12-29-alle-01.37.11.png" alt="AI per la scrittura di articoli con WriterFlow: suggerimenti di testo durante la scrittura" class="wp-image-2859" srcset="https://renor.it/wp-content/uploads/2025/12/Screenshot-2025-12-29-alle-01.37.11.png 1414w, https://renor.it/wp-content/uploads/2025/12/Screenshot-2025-12-29-alle-01.37.11-300x134.png 300w, https://renor.it/wp-content/uploads/2025/12/Screenshot-2025-12-29-alle-01.37.11-768x343.png 768w" sizes="(max-width: 1414px) 100vw, 1414px" /><figcaption class="wp-element-caption">WriterFlow propone suggerimenti di testo mentre scrivi, lasciando all’autore la libertà di accettarli o modificarli.</figcaption></figure>



<p>Nei suggerimenti di testo hai due modalità. Questo approccio rende l’AI per la scrittura di articoli uno strumento discreto e realmente utile. Accettare il testo proposto, oppure iniziare a scrivere per poi variare il contenuto con nuove idee che ti vengono in mente. </p>



<h3 class="wp-block-heading" id="h-accettazione-del-testo-proposto">Accettazione del testo proposto</h3>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1388" height="676" src="https://renor.it/wp-content/uploads/2025/12/Screenshot-2025-12-29-alle-01.42.23.png" alt="AI per la scrittura di articoli con WriterFlow: inserimento del testo suggerito nei blocchi Gutenberg" class="wp-image-2861" srcset="https://renor.it/wp-content/uploads/2025/12/Screenshot-2025-12-29-alle-01.42.23.png 1388w, https://renor.it/wp-content/uploads/2025/12/Screenshot-2025-12-29-alle-01.42.23-300x146.png 300w, https://renor.it/wp-content/uploads/2025/12/Screenshot-2025-12-29-alle-01.42.23-768x374.png 768w" sizes="auto, (max-width: 1388px) 100vw, 1388px" /><figcaption class="wp-element-caption">Nei blocchi di paragrafo è possibile inserire il suggerimento di testo con un click o premendo TAB.</figcaption></figure>



<p>Nei blocchi di paragrafo di Gutenberg ti basta cliccare sul suggerimento per inserire tutta la frase suggerita. Oppure premere semplicemente il tasto &#8220;TAB&#8221;. </p>



<h2 class="wp-block-heading" id="h-frasi-alternative">Frasi alternative</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1396" height="766" src="https://renor.it/wp-content/uploads/2025/12/Screenshot-2025-12-29-alle-01.44.49.png" alt="AI per la scrittura di articoli con WriterFlow: riformulazione di una frase selezionata" class="wp-image-2862" style="aspect-ratio:1.8224964404366397" srcset="https://renor.it/wp-content/uploads/2025/12/Screenshot-2025-12-29-alle-01.44.49.png 1396w, https://renor.it/wp-content/uploads/2025/12/Screenshot-2025-12-29-alle-01.44.49-300x165.png 300w, https://renor.it/wp-content/uploads/2025/12/Screenshot-2025-12-29-alle-01.44.49-768x421.png 768w" sizes="auto, (max-width: 1396px) 100vw, 1396px" /><figcaption class="wp-element-caption">Selezionando una frase, WriterFlow genera alternative più coerenti e professionali.</figcaption></figure>



<p>Non sei soddisfatto di come hai scritto una frase e la vorresti riformulata in modo più professionale e aderente al resto dell&#8217;articolo? Nulla di più semplice. <br>Con WriterFlow attivo è sufficiente selezionare la frase che vuoi riformulare e verranno generate immediatamente delle alternative. Ti basta premere l&#8217;alternativa che preferisci oppure generare nuove alternative se quelle proposte non ti soddisfano. </p>



<h2 class="wp-block-heading" id="h-scegli-la-parola-perfetta">Scegli la parola perfetta</h2>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1418" height="800" src="https://renor.it/wp-content/uploads/2025/12/Screenshot-2025-12-29-alle-01.47.20.png" alt="AI per la scrittura di articoli con WriterFlow: suggerimento di sinonimi durante la revisione del testo" class="wp-image-2863" srcset="https://renor.it/wp-content/uploads/2025/12/Screenshot-2025-12-29-alle-01.47.20.png 1418w, https://renor.it/wp-content/uploads/2025/12/Screenshot-2025-12-29-alle-01.47.20-300x169.png 300w, https://renor.it/wp-content/uploads/2025/12/Screenshot-2025-12-29-alle-01.47.20-768x433.png 768w" sizes="auto, (max-width: 1418px) 100vw, 1418px" /><figcaption class="wp-element-caption">Selezionando una parola, WriterFlow propone sinonimi alternativi per migliorare precisione e stile del testo.</figcaption></figure>



<p>Stai cercando un sinonimo che non ti viene? WriterFlow ti velocizza anche in questo, mostrando il lato più pratico dell’AI per la scrittura di articoli. Fai doppio click sulla parola di cui vuoi cercare un sinonimo in modo che sia evidenziata e ti verranno consigliati 5 sinonimi. Se i sinonimi proposti non ti convincono, puoi cliccare su &#8220;rigenera&#8221; per ottenere 5 nuove opzioni.  Scegli il sinonimo che preferisci e verrà inserito al posto della parola originale.</p>



<h2 class="wp-block-heading" id="h-modalita-automatica-o-manuale">Modalità automatica o manuale?</h2>



<h3 class="wp-block-heading" id="h-in-modalita-automatica-puoi-impostare-un-tempo-di-inattivita-per-ricevere-suggerimenti">In modalità automatica puoi impostare un tempo di inattività per ricevere suggerimenti</h3>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1424" height="786" src="https://renor.it/wp-content/uploads/2025/12/Screenshot-2025-12-29-alle-01.50.28.png" alt="AI per la scrittura di articoli con WriterFlow: impostazioni della modalità automatica dei suggerimenti" class="wp-image-2864" srcset="https://renor.it/wp-content/uploads/2025/12/Screenshot-2025-12-29-alle-01.50.28.png 1424w, https://renor.it/wp-content/uploads/2025/12/Screenshot-2025-12-29-alle-01.50.28-300x166.png 300w, https://renor.it/wp-content/uploads/2025/12/Screenshot-2025-12-29-alle-01.50.28-768x424.png 768w" sizes="auto, (max-width: 1424px) 100vw, 1424px" /><figcaption class="wp-element-caption">La modalità automatica consente di ricevere suggerimenti dopo un periodo di inattività configurabile.</figcaption></figure>



<p>La modalità automatica è molto comoda quando si vuole ricevere il suggerimento dopo un certo periodo di inattività. La durata del tempo di inattività è configurabile tramite le impostazioni di WriterFlow.</p>



<p>Con un tempo di 5 secondi, come illustrato nell&#8217;esempio, il suggerimento si attiverà dopo 5 secondi di stop alla scrittura.</p>



<h3 class="wp-block-heading" id="h-in-modalita-manuale-sei-tu-a-scegliere-quando-vuoi-ricevere-un-suggerimento">In modalità manuale sei tu a scegliere quando vuoi ricevere un suggerimento</h3>



<figure class="wp-block-image size-large"><img loading="lazy" decoding="async" width="1254" height="270" src="https://renor.it/wp-content/uploads/2025/12/Screenshot-2025-12-29-alle-01.54.52.png" alt="Pulsante Suggerisci nella modalità manuale" class="wp-image-2865" srcset="https://renor.it/wp-content/uploads/2025/12/Screenshot-2025-12-29-alle-01.54.52.png 1254w, https://renor.it/wp-content/uploads/2025/12/Screenshot-2025-12-29-alle-01.54.52-300x65.png 300w, https://renor.it/wp-content/uploads/2025/12/Screenshot-2025-12-29-alle-01.54.52-768x165.png 768w" sizes="auto, (max-width: 1254px) 100vw, 1254px" /><figcaption class="wp-element-caption">In modalità manuale, il pulsante “Suggerisci” compare accanto al cursore dopo alcuni secondi di inattività.</figcaption></figure>



<p>Nella modalità manuale, dopo tre secondi di stop alla scrittura comparirà il tasto suggerisci a destra del cursore. Ti basterà cliccare sul pulsante per ricevere i suggerimenti di scrittura. Nella modalità manuale, le funzioni di generazione alternative e di suggerimento sinonimico saranno ancora disponibili. Come nel caso della modalità automatica dovrai solamente selezionare la frase o la parola per ottenere rispettivamente il testo alternativo o il sinonimo desiderato.</p>



<h1 class="wp-block-heading" id="h-con-writerflow-paghi-solo-quello-che-usi">Con WriterFlow paghi solo quello che usi</h1>



<div class="wp-block-media-text is-stacked-on-mobile"><figure class="wp-block-media-text__media"><img loading="lazy" decoding="async" width="478" height="422" src="https://renor.it/wp-content/uploads/2025/12/Screenshot-2025-12-29-alle-01.58.40.png" alt="Visualizzazione del credito residuo nell’editor WordPress" class="wp-image-2866 size-full" srcset="https://renor.it/wp-content/uploads/2025/12/Screenshot-2025-12-29-alle-01.58.40.png 478w, https://renor.it/wp-content/uploads/2025/12/Screenshot-2025-12-29-alle-01.58.40-300x265.png 300w" sizes="auto, (max-width: 478px) 100vw, 478px" /></figure><div class="wp-block-media-text__content">
<p>Nel menu a destra dell&#8217;editor dell&#8217;articolo hai sempre modo di controllare il credito residuo. Ad ogni interazione il credito verrà aggiornato in modo automatico. Niente sorprese. </p>



<p>Inoltre i nuovi iscritti possono godere di un credito gratuito di 5 euro per testare le funzionalità di WriterFlow. I 5 euro di credito ti basteranno per almeno 15 articoli di media lunghezza. </p>
</div></div>



<p>Iscrizione e ricarica sono operazioni semplicissime. La registrazione e la creazione di una chiave API sono operazioni che avvengono in modo automatico direttamente dalla tua area amministrativa di WordPress. La ricarica richiede invece l&#8217;accesso al portale di RunAI e potrai ricaricare il tuo credito con un minimo di 5 euro. </p>



<p>RunAI utilizza transazioni sicure tramite l&#8217;introduzione dei gateway di pagamento PayPal e Stripe. È necessaria una carta di credito. Non ci sono costi ricorrenti, non ci sono piani in abbonamento. Ricarichi il tuo credito e utilizzi WriterFlow. Nulla di più semplice. </p>



<p>Puoi usare lo stesso account WriterFlow anche su più siti WordPress e il credito non ha scadenza. Se un mese sei in ferie e non stai lavorando non dovrai continuare a pagare per un servizio che non utilizzi. I costi sono puramente a consumo. </p>



<h2 class="wp-block-heading" id="h-privacy-e-data-retention">Privacy e data retention</h2>



<p>La privacy è garantita da <a href="https://runai.it">RunAI</a>, la nostra piattaforma di intelligenza artificiale con nodi di inferenza Apple Silicon criptati end-to-end. Nessun contenuto viene salvato, i dati vengono elaborati solo durante l&#8217;utilizzo del servizio e cancellati un microsecondo dopo averti fornito il suggerimento nel rispetto delle normative GDPR in modo trasparente e sicuro per gli utenti. </p>



<h2 class="wp-block-heading" id="h-conclusione">Conclusione</h2>



<p>WriterFlow è lo strumento innovativo che rivoluziona il modo di scrivere online, offrendo un uso consapevole dell’AI per la scrittura di articoli.</p>



<p>Scarica WriterFlow e inizia ad usarlo con il credito gratuito. Diventerà il tuo compagno di scrittura e ti aiuterà a creare contenuti di qualità.</p>
<p>L'articolo <a href="https://renor.it/blog/sviluppo-software-programmazione/ai-per-la-scrittura-di-articoli/">AI per la scrittura di articoli: scrivere senza delegare il pensiero</a> proviene da <a href="https://renor.it">RENOR &amp; Partners S.r.l.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Intelligenza artificiale e lavoro: perché non stiamo assistendo alla fine delle professioni</title>
		<link>https://renor.it/blog/intelligenza-artificiale-algoritmi/lai-fara-perdere-posti-di-lavoro/</link>
		
		<dc:creator><![CDATA[Simone Renzi]]></dc:creator>
		<pubDate>Tue, 17 Jun 2025 21:52:02 +0000</pubDate>
				<category><![CDATA[Intelligenza Artificiale & Algoritmi]]></category>
		<category><![CDATA[adattamento]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[AI sul posto di lavoro]]></category>
		<category><![CDATA[automazione]]></category>
		<category><![CDATA[cambiamento professionale]]></category>
		<category><![CDATA[competenze digitali]]></category>
		<category><![CDATA[creatività umana]]></category>
		<category><![CDATA[evoluzione del lavoro]]></category>
		<category><![CDATA[futuro del lavoro]]></category>
		<category><![CDATA[innovazione]]></category>
		<category><![CDATA[intelligenza artificiale]]></category>
		<category><![CDATA[lavoro e AI]]></category>
		<category><![CDATA[lavoro e tecnologia]]></category>
		<category><![CDATA[meritocrazia]]></category>
		<category><![CDATA[nuove professioni]]></category>
		<category><![CDATA[paura del cambiamento]]></category>
		<category><![CDATA[produttività]]></category>
		<category><![CDATA[reskilling]]></category>
		<category><![CDATA[rivoluzione tecnologica]]></category>
		<category><![CDATA[robot e lavoro]]></category>
		<category><![CDATA[transizione digitale]]></category>
		<category><![CDATA[trasformazione dei mestieri]]></category>
		<category><![CDATA[trasformazione digitale]]></category>
		<category><![CDATA[upskilling]]></category>
		<guid isPermaLink="false">https://renor.it/?p=879</guid>

					<description><![CDATA[<p>Ogni rivoluzione tecnologica ha cambiato le regole del gioco. Ma chi ha saputo adattarsi ha sempre trovato un nuovo ruolo da giocare. Oggi il dibattito su intelligenza artificiale e lavoro ripropone le stesse paure e le stesse incomprensioni che hanno accompagnato ogni grande trasformazione tecnologica del passato. Intelligenza artificiale e lavoro: l’ansia collettiva alimentata dai [&#8230;]</p>
<p>L'articolo <a href="https://renor.it/blog/intelligenza-artificiale-algoritmi/lai-fara-perdere-posti-di-lavoro/">Intelligenza artificiale e lavoro: perché non stiamo assistendo alla fine delle professioni</a> proviene da <a href="https://renor.it">RENOR &amp; Partners S.r.l.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Ogni rivoluzione tecnologica ha cambiato le regole del gioco. Ma chi ha saputo adattarsi ha sempre trovato un nuovo ruolo da giocare. Oggi il dibattito su <strong>intelligenza artificiale e lavoro</strong> ripropone le stesse paure e le stesse incomprensioni che hanno accompagnato ogni grande trasformazione tecnologica del passato.</p>



<h2 class="wp-block-heading" id="h-intelligenza-artificiale-e-lavoro-l-ansia-collettiva-alimentata-dai-media">Intelligenza artificiale e lavoro: l’ansia collettiva alimentata dai media</h2>



<h3 class="wp-block-heading">Titoli catastrofisti e sensazionalismo: &#8220;l&#8217;AI ci sostituirà tutti&#8221;</h3>



<p>Nell&#8217;immaginario collettivo, l&#8217;Intelligenza Artificiale è spesso descritta come una forza oscura pronta a spazzare via milioni di posti di lavoro. Questa percezione è alimentata da titoli allarmistici che fanno leva sul panico e sull&#8217;incertezza più che sulla realtà dei dati. &#8220;L&#8217;AI sostituirà l&#8217;80% dei posti di lavoro&#8221;, &#8220;Addio impiegati: l&#8217;AI li renderà tutti inutili&#8221;, &#8220;Lavoreremo solo 3 giorni a settimana o saremo disoccupati a vita?&#8221;&#8230;</p>



<p>Questi sono alcuni dei titoli che popolano quotidiani, social e blog, generando un senso diffuso di angoscia sociale. </p>



<p>Il problema non è l&#8217;enfasi con cui vengono presentati, ma il totale e assoluto <strong>vuoto analitico</strong> che li accompagna. Questi articoli non distinguono mai settori, ruoli automatizzabili e non, attività che saranno assistite e quelle che effettivamente verranno eliminate. Il risultato di questa catastrofe mediatica è un messaggio di paura: o ti adegui o sparisci. In realtà, la verità è molto più sfumata e meno radicale. </p>



<p>Questo approccio propagandistico utilizzato solo per generare click mi fa venire in mente altri momenti storici in cui una nuova tecnologia veniva demonizzata per ignoranza o per difesa dello status quo. Lo si è visto con i computer, con internet, con i social, con l&#8217;automazione industriale. L&#8217;AI non fa eccezione: viene interpretata non come un potenziale strumento, ma come un agente ostile e autonomo che agisce per &#8220;rubare&#8221; qualcosa all&#8217;essere umano.</p>



<p>In un contesto di questo genere è fondamentale recuperare una visione lucida e informata, capace di distinguere tra ipotesi, paure e dati concreti. Solo con la conoscenza è possibile superare l&#8217;isteria collettiva e affrontare un imminente cambiamento con intelligenza strategica anziché con un panico irrazionale e immotivato. </p>



<h3 class="wp-block-heading">Confusione tra automazione e estinzione</h3>



<p>Una delle distorsioni più comuni nei vari dibattiti sull&#8217;Intelligenza Artificiale riguarda a mio avviso la confusione tra l&#8217;automazione di attività e l&#8217;estinzione di professioni. È un grossolano errore concettuale che amplifica paure infondate e paralizza il pensiero critico e strategico. </p>



<p>La realtà è molto più articolata: l&#8217;AI non sistituisce i mestieri, ma <strong>trasforma</strong> i compiti all&#8217;interno dei mestieri. Mi rendo conto che la frase può essere non chiara a tutti quindi facciamo un esempio. <br>Il lavoro del giornalista&#8230; L&#8217;AI può automatizzare la redazione di articoli standardizzati (come report sportivi o bollettini finanziari), ma non può e con buona probabilità, non potrà mai sostituire la sensibilità editoriale, l&#8217;indagine critica, la capacità di costruire un&#8217;inchiesta, fare domande pertinenti a un&#8217;intervista o interpretare un contesto culturale. </p>



<p>Tutto ciò vale non solo per l&#8217;editoria, ma per una moltitudine di altri settori. L&#8217;AI può <strong>assistere</strong>, <strong>ottimizzare</strong>, <strong>velocizzare</strong> molte delle fasi del lavoro, ma ciò non implica che l&#8217;intera professione venga annullata. Anzi, i dati mostrano che in molti casi, la presenza dell&#8217;AI <strong>crea nuove funzioni</strong>, nuove responsabilità e nuovi ruoli ibridi. </p>



<p>Confondere l&#8217;automazione con la cancellazione di una professione è come dire che l&#8217;invenzione della lavatrice abbia <strong>cancellato</strong> il mestiere di chi lavava i panni a mano. Oggi possiamo dire che non è così; ha liberato tempo e risorse, permettendo alle persone di dedicarsi ad altro: all&#8217;educazione, alla creatività, allo studio o ad attività a maggior valore aggiunto. <br>Il vero nodo quindi non è la perdita, ma la <strong>trasformazione</strong>: un processo che richiede adattamento, formazione continua, apertura mentale. L&#8217;AI toglierà senso solo a quei ruoli che <strong>si rifiutano di evolvere</strong>, non a quelli che accettano la sfida del cambiamento utilizzando AI a proprio vantaggio. </p>



<h2 class="wp-block-heading">L&#8217;AI fa paura a chi non dovrebbe esserci: che sia  finalmente la fine dei ruoli immeritati?</h2>



<p>Un aspetto poco discusso nel dibattito pubblico è che l&#8217;AI fa davvero paura solo a due categorie di lavoratori: quelli troppo verticali, ma soprattutto <strong>quelli troppo deboli per merito</strong> e che sono protetti da dinamiche non trasparenti. Ovvero specialisti incapaci di aggiornarsi fuori dalla loro nicchia perché non hanno sviluppato una mente capace di destreggiarsi in contesti trasversali e soprattutto persone che occupano ruoli per cui non hanno reali competenze, ma che si sono trovati lì per raccomandazione o parentela. Sì, specialmente queste persone farebbero bene a iniziare a preoccuparsi!</p>



<p>In Italia, Paese ancora fortemente ancorato a logiche di titoli, anzianità e posizionamento, più che di valore reale, l&#8217;AI sta diventando uno specchio scomodo. Non perché umili l&#8217;uomo, ma perché smaschera l&#8217;inutilità funzionale di molti ruoli. Se bastano 30 secondi con ChatGPT per ottenere un documento che richiederebbe a certi uffici 3 giorni e 6 firme, la domanda è lecita: serviva davvero quella posizione?</p>



<p>In questa luce, il timore verso l&#8217;AI non è paura del cambiamento, ma paura della trasparenza. Per la prima volta, una tecnologia è in grado di misurare (molto spesso in tempo reale), il valore prodotto rispetto al tempo impiegato, alla ridondanza operativa e al contributo effettivo. </p>



<p>Forse, paradossalmente, l&#8217;avvento dell&#8217;intelligenza artificiale rappresenta l&#8217;occasione per avviare, anche indirettamente, un processo di <strong>meritocrazia naturale</strong>. Non quella imposta per decreto, ma quella che emerge quando il sistema smette di tollerare l&#8217;inutile perché esiste un&#8217;alternativa oggettivamente più efficiente. </p>



<p>La paura è quindi giustificata solo in un senso: <strong>se il tuo ruolo esiste solo perché non sei in grado di poter fare altro e non sei in grado di reinventarti, non generi un valore aggiunto e rappresenti oggettivamente un peso perché non ti dedichi al tuo lavoro con passione e dedizione ma solo per arrivare alla fine del mese e prendere il tuo stipendio.</strong></p>



<p>Chi è creativo non può aver paura di qualcosa che per definizione non è creativa. L&#8217;AI non ha intuizioni, si limita a svolgere compiti per come è stata addestrata a farli.</p>



<h2 class="wp-block-heading">Il paradosso della produttività: temiamo ciò che ci dovrebbe sollevare</h2>



<p>Una delle contraddizioni più evidenti nel dibattito sull&#8217;Intelligenza Artificiale è il fatto che molti lavoratori sembrano temere proprio ciò che, in teoria, dovrebbe alleggerirli. </p>



<p>Da sempre le innovazioni tecnologiche hanno come obiettivo quello di ottimizzare i tempi, ridurre gli errori, automatizzare i processi. Eppure, di fronte all&#8217;AI questa logica si rovescia. Se un tempo l&#8217;efficienza era desiderabile, ora diventa una minaccia. Ma perché?</p>



<p>Perché in molte organizzazioni sia pubbliche che private, la produttività reale non è mai stata una variabile dell&#8217;equazione. Si lavora o si finge di farlo per riempire orari, difendere ruoli, mantenere equilibrio tra competenze deboli e mansioni ripetitive. In questi contesti, l&#8217;arrivo di un sistema che può fare in 5 minuti ciò che un team impiega 3 giorni a consegnare non viene percepito come liberazione, ma come pericolo esistenziale.</p>



<p>Il vero problema, quindi, non è l&#8217;AI in sé; è che l&#8217;AI mette in discussione alcune attività il cui valore era già discutibile. L&#8217;automazione rende visibile l&#8217;assurdità di interi processi aziendali costruiti sulla lentezza, sull&#8217;intermediazione inutile, sulla ripetizione fine a sé stessa.</p>



<p>Ma c&#8217;è anche un altro aspetto ancora più profondo: la produttività crea spazio vuoto e il vuoto, culturalmente, fa paura. Chi lavora in aziende che non premiano l&#8217;iniziativa individuale, la creatività e il pensiero strategico si chiede: &#8220;Se l&#8217;AI mi libera 3 ore al giorno&#8230; Cosa farò di quel tempo? Sarò valutato per ciò che riesco a creare o per ciò che non ho più da fare?&#8221;. </p>



<p>In questa ambiguità si inserisce il vero paradosso: <strong>la tecnologica che potrebbe finalmente permettere agli umani di concentrarsi su ciò che conta, viene vissuta come un attentato alla sopravvivenza</strong>. Ma forse, il problema non è la tecnologia ma il modello culturale che ci ha abituati a lavorare per esistere, anziché per produrre valore.</p>



<h2 class="wp-block-heading">Casi storici analoghi</h2>



<h3 class="wp-block-heading">Quando arrivarono gli ecommerce si disse: &#8220;È la fine dei negozi&#8221;</h3>



<p>L&#8217;introduzione degli ecommerce generò, a suo tempo, un&#8217;ondata di panico molto simile a quella che oggi accompagna l&#8217;Intelligenza Artificiale. Si temeva che i negozi fisici avrebbero chiuso in massa, che lo shopping reale sarebbe diventato obsoleto e che interi settori, dalla vendita al dettaglio alla logistica, fino ad arrivare al mercato immobiliare degli affitti dei negozi, sarebbero collassati. </p>



<p>Eppure, col senno del poi, oggi sappiamo che non è andata così&#8230; Gli ecommerce non hanno distrutto il commercio tradizionale: <strong>lo hanno costretto ad evolversi</strong>. Molti piccoli negozi hanno iniziato a vendere online, i centri commerciali hanno integrato strategia omnicanale, i grandi brand hanno investito in piattaforme ibride. È nato il click&amp;collect, il live commerce, il drive-in digitale. L&#8217;esperienza d&#8217;acquisto non è morta, si è trasformata in esperienza phygital ovvero un&#8217;esperienza fisica e digitale assieme aprendo anche scenari che prima erano solamente locali ed oggi possono mostrarsi ad un pubblico internazionale.</p>



<p>In realtà quello che è successo è esattamente ciò che sta accadendo oggi con l&#8217;AI: chi ha resistito è rimasto indietro; chi ha adattato il proprio modello ha prosperato. Il negoziante che ha visto l&#8217;ecommerce come una minaccia ha chiuso. Quello che lo ha visto come un&#8217;opportunità, un&#8217;estensione del proprio servizio, ha guadagnato nuove fette di mercato, anche estero. Questa riprova ci insegna che ogni tecnologia non cancella l&#8217;esistente ma rimodula il contesto competitivo. Non è la tecnologia che uccide un&#8217;attività, ma l&#8217;incapacità di adattarsi al nuovo paradigma.</p>



<h3 class="wp-block-heading">L&#8217;industrializzazione e la fine degli artigiani?</h3>



<p>A fine Ottocento, quando le prima macchine a vapore e i telai meccanici cominciarono a sostituire il lavoro manuale degli artigiani, si gridò allo scandalo: &#8220;Questa è la morte della dignità del lavoro&#8221; dissero in molti. E non mancavano motivazioni concrete: chi aveva passato una vita a lavorare il legno, il ferro, il tessuto con sapienza e dedizione, vedeva improvvisamente il proprio mestiere ridotto a un processo ripetitivo, impersonale, automatizzato. </p>



<p>Ma anche in questo caso, la profezia apocalittica si rivelò inesatta. L&#8217;industrializzazione non uccise il lavoro umano, lo moltiplicò.<br>Nacquero nuove figure, nuove specializzazioni, nuove gerarchie professionali. Il lavoro artigianale non scomparve: cambiò ruolo, si ridusse in scala ma non perse valore. Anche oggi possiamo comprare una giacca di un famoso brand e pagarla 300 euro. Farsela fare da un artigiano su misura, scegliendone il tessuto, i bottoni, lo stile, la lavorazione può costare 3000 euro!<br>Esiste dunque ancora oggi un contesto in cui l&#8217;unicità e la qualità sono parametri molto più importanti della quantità.</p>



<h2 class="wp-block-heading" id="h-dalla-transizione-al-coraggio">Dalla transizione al coraggio</h2>



<p>Quella transizione industriale fu una delle più potenti leve di crescita economica e sociale della storia. Ha permesso la nascita delle classi operaie, l&#8217;urbanizzazione, i diritti sindacali, il concetto stesso di orario di lavoro regolamentato. Senza quel passaggio non ci sarebbero state le tutele moderne, l&#8217;accesso di massa al consumo, né la possibilità di lavorare fuori da un contesto agricolo o feudale. </p>



<p>Chi ebbe il coraggio di passare dalla paura all&#8217;organizzazione, dalla bottega alla fabbrica, non solo mantenne la propria dignità professionale, ma contribuì attivamente alla costruzione di un nuovo modello di civiltà. È proprio grazie all&#8217;industrializzazione e alla razionalizzazione della produzione che abbiamo potuto assistere a un&#8217;accelerazione senza precedenti delle scoperte scientifiche e tecnologiche, con un impatto diretto sul benessere collettivo: aspettativa di vita più lunga, maggiore disponibilità di beni, progressi nella medicina, nell&#8217;alimentazione e nei trasporti. </p>



<p><br>Non a caso, nei Paesi che non hanno conosciuto un processo industriale su larga scala, spesso per ragioni storiche, geopolitiche o strutturali, si riscontrano ancora oggi gravi problemi come la malnutrizione, la diffusione di malattie curabili e una più bassa aspettativa di vita. <br>Quando la crescita demografica non è accompagnata da un parallelo sviluppo nelle capacità di produrre beni e servizi, il sistema sociale entra in crisi. L&#8217;industrializzazione, con tutti i suoi limiti e contraddizioni, è stata uno degli strumenti più efficaci per superare questo squilibrio.</p>



<p>Oggi l&#8217;AI è vista con lo stesso sospetto: fredda, impersonale, disumanizzante; ma anche in questo caso, non è lo strumento in sé a determinare il cambiamento, bensì la capacità del sistema di assorbirlo, modularlo e incanalarlo verso nuovi significati sociali e professionali. </p>



<h3 class="wp-block-heading">L&#8217;informatizzazione e il lavoro d&#8217;ufficio</h3>



<p>Tra la fine degli anni &#8217;80 e l&#8217;inizio dei &#8217;90, l&#8217;introduzione massiva dei personal computer negli uffici fu vissuta, ancora una volta, come una minaccia. Si diceva che i computer avrebbero azzerato il bisogno di personale amministrativo, che i documenti cartacei sarebbero spariti e che l&#8217;essere umano sarebbe diventato un semplice accessorio del software.</p>



<p>Una parte di verità c&#8217;è&#8230; Molte funzioni ripetitive e manuali sono state sostituite da fogli di calcolo, database, sistemi di gestione documentale. Ma ciò che si è perso in attività meccaniche è stato compensato dalla nascita di nuove responsabilità cognitive e digitali. L&#8217;informatizzazione ha dato origine a figure professionali che prima non esistevano: data entry specialist, sistemisti, project manager, responsabili IT, analisti funzionali, sviluppatori, ingegneri del software, ecc. ecc.</p>



<p>Il segretario è diventato office manager, il contabile ha imparato a usare software di contabilità, l&#8217;archivista si è evoluto con archiviazione digitale&#8230; Il lavoro è rimasto ma ha cambiato pelle. </p>



<p>Questo dimostra che ogni volta che una tecnologia entra in un&#8217;azienda, non distrugge l&#8217;intero ecosistema, ma ricombina le attività esistenti efficientandole. Alcune si contraggono, altre si espandono, altre ancora nascono da zero.</p>



<p>Ancora una volta l&#8217;AI oggi si presenta con un impatto simile a quello dell&#8217;informatizzazione: potente, trasversale, poco visibile a occhio nudo ma capace di ridefinire profondamente processi. E come allora il risultato dipenderà da una sola cosa: la disponibilità di ciascun professionista ad aggiornarsi. </p>



<h2 class="wp-block-heading">Le previsioni sbagliate del passato recente</h2>



<p>Come abbiamo visto, la storia dell&#8217;innovazione è disseminata di previsioni disastrose che non si sono di fatto mai avverate, ma del resto tira molto di più un titolo catastrofista&#8230; Nei paragrafi precedenti, ci sono moltissime innovazioni tecnologiche che hanno portato la paura di un cambiamento, paura infondata dal momento che il cambiamento è stato sempre positivo. Una tecnologia nasce quando si sente l&#8217;esigenza di usarla&#8230; Inizio a pensare ad un martello solo quando ho l&#8217;esigenza di piantare un chiodo al muro, non prima.</p>



<p>Gli errori di previsione non nascono da incompetenza, ma da un errore metodologico ricorrente: si considera la tecnologia come agente attivo, e l&#8217;essere umano come passivo. In realtà se da un lato la tecnologia evolve, dall&#8217;altro l&#8217;uomo reagisce, si adatta, si reinventa; ed è proprio lì che le profezie catastrofiche vanno in frantumi.</p>



<h2 class="wp-block-heading">La trasformazione dei ruoli esistenti</h2>



<p>Una delle evidenze più importanti ma meno comprese è che la maggior parte dei cambiamenti portati dall&#8217;AI non comporta la scomparsa dei ruoli, bensì la loro trasformazione interna. I job title restano, le mansioni si riscrivono. Cambiano le priorità, le modalità operative, gli strumenti e le competenze richieste. </p>



<p>Un grafico pubblicitario oggi non può più limitarsi a impaginare elementi statici, deve conoscere prompt visuali per generare bozze con DALL-E o Midjourney, deve saper modificare testi in ottica SEO e in alcuni casi interagisce con tool AI che ottimizzano campagne. La parte strategica però (<strong>messaggio, posizionamento e tono di voce</strong>) resta totalmente in mano all&#8217;umano perché è lui che ha l&#8217;intuizione ed è qui che si genera valore. </p>



<p>Un architetto un tempo concentrato unicamente su software CAD e vincoli edilizi, oggi può utilizzare AI generativa per creare varianti progettuali, esplorare nuovi materiali, testare soluzioni in ambienti virtuali pertanto non è sostituito, <strong>è potenziato!</strong></p>



<h2 class="wp-block-heading" id="h-in-ambito-di-copywriting-e-supporto">In ambito di Copywriting e supporto</h2>



<p>Un copywriter non scrive più tutto da zero, <strong>orchestra il testo</strong>, combinando l&#8217;intuizione umana con lo sviluppo del testo con AI. Il suo ruolo si sposta dalla produzione alla cura e supervisione semantica; e nel frattempo nasce una nuova figura in questo contesto, quella del <strong>prompt writer</strong> ovvero colui che sa chiedere alle AI nel modo giusto per ottenere i risultati che si aspetta. </p>



<p>Anche nei settori apparentemente più esposti come il customer care o il supporto tecnico, l&#8217;AI gestisce i livelli base, ma l&#8217;umano si eleva ai livelli superiori dove è necessaria empatia, adattamento e negoziazione. I professionisti che un tempo si occupavano di ticket ripetitivi ora diventano formatori di chatbot, supervisori della qualità, designer delle esperienze di supporto e risolvono problemi di customer care dove l&#8217;AI non ha i toni e l&#8217;empatia per poterli risolvere. </p>



<figure class="wp-block-pullquote"><blockquote><p>L&#8217;AI non prende il tuo lavoro, prende la parte più ripetitiva del tuo lavoro e ti chiede di diventare qualcosa di più. </p></blockquote></figure>



<p>In questo scenario, chi si aggiorna, chi è disposto ad osservare l&#8217;AI come un solido alleato può salire di livello, non essere spinto fuori. L&#8217;unico rischio reale è restare identici a sé stessi mentre il mondo sta cambiando. </p>



<h2 class="wp-block-heading">Lavorare con l&#8217;AI, non contro: il professionista &#8220;aumentato&#8221;</h2>



<p>La reazione istintiva più diffusa verso l&#8217;AI è difensiva: &#8220;devo proteggermi&#8221;, &#8220;devo evitare che mi rubi il lavoro&#8221;. Ma questa è una mentalità statica, perdente. Il punto non è se l&#8217;AI ti sostituirà. Il punto è se tu saprai usarla a tuo vantaggio per diventare migliore. </p>



<p>Le AI generative, conversazionali, predittive, non sono entità nemiche, sono <strong>strumenti</strong>. Esattamente come lo sono stati l&#8217;elettricità, il computer, gli ecommerce, il motore a scoppio, il cloud. E come ogni strumento potente, <strong>il loro valore dipende da chi li maneggia.</strong></p>



<p>Oggi un avvocato che sa usare ChatGPT o Claude per redigere una prima bozza, estrarre riferimenti giurisprudenziali o simulare una linea argomentativa non è meno competente: è più veloce, più scalabile e più competitivo. </p>



<p>Un designer che sa usare DALL-E per generare una decina di proposte visive in 30 secondi non è meno creativo, è più libero di scegliere, iterare e osare. </p>



<p>Un recruiter che usa modelli AI per estrarre pattern ricorrenti nei curriculum e verificarli con il proprio occhio critico non è superato: <strong>è potenziato.</strong></p>



<p>L&#8217;AI non è una forza che ti spinge via. È una forza che ti affianca se glielo permetti e sei disposto a farla entrare nel tuo asset lavorativo. È proprio come accade in una squadra, l&#8217;intelligenza collettiva cresce se ognuno conosce il proprio valore. In questo caso l&#8217;umano resta insostituibile nei campi dove servono: intuito, empativa, visione strategica, responsabilità morale. Il futuro del lavoro non è umano o artificiale, è umano e artificiale insieme.</p>



<h2 class="wp-block-heading">La mentalità vincente: adattiva, non difensiva</h2>



<p>C&#8217;è un tratto comune che accomuna tutte le persone che hanno saputo attraversare indenni i grandi cambiamenti storici: <strong>una mentalità adattiva.</strong> Non necessariamente geniali, non sempre tecnicamente brillanti, ma capaci di leggere i segnali del cambiamento, accettarli e agire di conseguenza. Lottare contro qualcosa di inevitabile non è solo inutile è una perdita di tempo prezioso. Queste persone non hanno opposto resistenza: hanno studiato, osservato, sperimentato. Hanno compreso che il vero pericolo non è il cambiamento in sé, ma l&#8217;immobilismo. </p>



<p>Oggi più che mai questo principio torna centrale. In un mondo che evolve alla velocità della luce, il valore non è più nella posizione che occupi ma nella velocità con cui riesci a spostarti, a ricollocarti e a reinventarti. L&#8217;AI non premia chi ha una scrivania, ma chi ha visione e punisce, silenziosamente e inesorabilmente, chi si arrocca nella nostalgia di &#8220;come funzionavano le cose prima&#8221;. </p>



<h2 class="wp-block-heading" id="h-cambiamento-opzionabile-non-lo-credo">Cambiamento opzionabile? Non lo credo!</h2>



<p>Tante persone resteranno ferme perché si illudono che il cambiamento sia opzionale. Non lo è! Adattarsi è l&#8217;unica possibile via da percorrere. Resistere non è una strategia, è solo una lenta condanna. Eppure molti preferiscono negare, rifiutare, sminuire ciò che non conoscono nel perfetto stile italiano.</p>



<p>Serve oggi più che mai una postura mentale totalmente rinnovata. Non quella del &#8220;mi difendo&#8221; ma quella del &#8220;mi preparo&#8221;; non quella del &#8220;mi basta quello che so&#8221;, ma quella del &#8220;voglio capire come posso trasformarmi e cosa posso diventare in meglio.</p>



<p>Non serve essere ingegneri, serve essere curiosi, aperti e veloci nell&#8217;apprendere. Serve leggere, provare, farsi aiutare da un tool AI, domandarsi come potrebbe essere utile alla propria professione. Non tutto funziona, ma il solo fatto di provarci ti mette avanti rispetto a chi nemmeno si pone la domanda. </p>



<p>In fondo non è la tecnologia a decidere chi resta e chi va.<br>È la mentalità con cui la si affronta. <br>Chi ha mentalità adattiva, non solo sopravvive ma <strong>fiorisce!</strong></p>



<h2 class="wp-block-heading">Il lavoro non sta morendo, sta evolvendo e ci chiede di fare lo stesso</h2>



<p>Abbiamo visto come ogni rivoluzione abbia avuto il suo mostro da temere. Ogni volta si è temuto il peggio e ogni volta la realtà si è rivelata diversa: non meno lavoro, ma lavoro diverso. Non meno umanità, ma umanità distribuita, riscritta e talvolta costretta a uscire dalla zona di comfort. </p>



<p>L&#8217;AI non è diversa è solo più veloce, più profonda e più persuasiva, ma non è qui per distruggere il lavoro, è qui per dare una scossa a ciò che già non funzionava: ruoli deboli, ripetitività improduttiva, burocrazia inefficiente, protezioni immotivate. Fa paura perché <strong>mette a nudo l&#8217;inutilità</strong>, e perché <strong>rende evidente ciò che fino a ieri si poteva ancora fingere di non vedere.</strong></p>



<p>Ma per chi ha talento, per chi ha voglia di imparare, per chi è pronto al cambiamento <strong>l&#8217;AI non è una minaccia, è una leva.</strong> Un&#8217;opportunità per salire di livello e per liberarsi del superfluo, qualcosa per ricentrarsi su ciò che conta davvero: l&#8217;intuizione, la progettualità, la relazione, la visione. </p>



<p>Il lavoro non sta morendo, sta mutando forma. Sta chiedendo a ognuno di noi: &#8220;Cosa sei disposto a diventare?&#8221;. </p>



<p>Chi saprà rispondere con lucidità, coraggio e intelligenza adattiva, non solo non perderà il proprio posto, costruirà qualcosa di nuovo e superiore. </p>
<p>L'articolo <a href="https://renor.it/blog/intelligenza-artificiale-algoritmi/lai-fara-perdere-posti-di-lavoro/">Intelligenza artificiale e lavoro: perché non stiamo assistendo alla fine delle professioni</a> proviene da <a href="https://renor.it">RENOR &amp; Partners S.r.l.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Valutazione del livello di Blur tramite Varianza Laplaciana</title>
		<link>https://renor.it/blog/intelligenza-artificiale-algoritmi/valutazione-del-livello-di-blur-tramite-varianza-laplaciana/</link>
		
		<dc:creator><![CDATA[Simone Renzi]]></dc:creator>
		<pubDate>Sun, 15 Jun 2025 11:49:09 +0000</pubDate>
				<category><![CDATA[Intelligenza Artificiale & Algoritmi]]></category>
		<category><![CDATA[algoritmo immagini web]]></category>
		<category><![CDATA[analisi immagini in JavaScript]]></category>
		<category><![CDATA[analisi immagini in tempo reale]]></category>
		<category><![CDATA[app fotografia]]></category>
		<category><![CDATA[applicazioni per celiaci]]></category>
		<category><![CDATA[Canvas API]]></category>
		<category><![CDATA[controllo qualità foto]]></category>
		<category><![CDATA[elaborazione immagini su web]]></category>
		<category><![CDATA[filtro Laplaciano]]></category>
		<category><![CDATA[metrica di sfocatura]]></category>
		<category><![CDATA[misurazione nitidezza]]></category>
		<category><![CDATA[nitidezza immagine]]></category>
		<category><![CDATA[OCR client-side]]></category>
		<category><![CDATA[ottimizzazione OCR]]></category>
		<category><![CDATA[punteggio nitidezza]]></category>
		<category><![CDATA[qualità immagine]]></category>
		<category><![CDATA[rilevamento sfocatura]]></category>
		<category><![CDATA[validazione immagini lato frontend]]></category>
		<category><![CDATA[varianza del Laplaciano]]></category>
		<category><![CDATA[visione artificiale]]></category>
		<guid isPermaLink="false">https://renor.it/?p=854</guid>

					<description><![CDATA[<p>La nostra App per persone celiache e con intolleranze alimentari, CeliachIA, consente di verificare istantaneamente la presenza di glutine nei prodotti che non risultano già censiti a database. L’utente fotografa la lista ingredienti sull’etichetta e un modello di computer vision fine-tuned elabora l’immagine restituendo la risposta in pochi secondi. Oggi affronteremo la varianza laplaciana blur [&#8230;]</p>
<p>L'articolo <a href="https://renor.it/blog/intelligenza-artificiale-algoritmi/valutazione-del-livello-di-blur-tramite-varianza-laplaciana/">Valutazione del livello di Blur tramite Varianza Laplaciana</a> proviene da <a href="https://renor.it">RENOR &amp; Partners S.r.l.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>La nostra App per persone celiache e con intolleranze alimentari, <strong>CeliachIA</strong>, consente di verificare istantaneamente la presenza di glutine nei prodotti che non risultano già censiti a database. L’utente fotografa la lista ingredienti sull’etichetta e un modello di <strong>computer vision fine-tuned</strong> elabora l’immagine restituendo la risposta in pochi secondi. Oggi affronteremo la varianza laplaciana blur immagine. Questo è un altro articolo dedicato all&#8217;analisi ed elaborazione delle immagini. Avevamo già trattato infatti in un <a href="https://renor.it/blog/sviluppo-software-programmazione/watermark-invisibile-in-jpeg-con-php-8/">altro articolo</a> l&#8217;uso di watermark invisibile su immagini jpeg. <br><br>La <strong>varianza laplaciana blur immagine</strong> è una tecnica semplice ed efficace per valutare in modo oggettivo la sfocatura di un’immagine.<br></p>



<p>Durante la fase di sviluppo ci siamo imbattuti in un ostacolo cruciale: garantire che la fotografia degli ingredienti fosse sufficientemente nitida da permettere un’accurata estrazione del testo (OCR) e, di conseguenza, un’analisi affidabile. </p>



<p>Sul backend, <strong>Google Cloud Vision</strong> fornisce già un indicatore di confidenza dell’OCR; applicando soglie opportune potremmo decidere se proseguire con l’analisi oppure respingere l’immagine per scarsa qualità. Tuttavia, delegare questo controllo al cloud comporta un costo inutile, paghiamo comunque l’invocazione di un servizio esterno anche quando la foto è palesemente inutilizzabile.</p>



<p>Per ridurre al minimo i costi era quindi indispensabile spostare il controllo qualità <strong>sul client</strong>. Abbiamo sviluppato una funzione JavaScript, basata sulla <strong>varianza del Laplaciano</strong>, che valuta in tempo reale la nitidezza dell’immagine: la libreria può essere eseguita direttamente durante l’anteprima della fotocamera, evitando di inviare al backend scatti fuori fuoco o mossi. </p>



<p>In questo modo otteniamo una doppia ottimizzazione: l’esperienza utente migliora (il feedback di “immagine sfocata” è immediato) e i costi di elaborazione cloud si riducono sensibilmente.</p>



<h2 class="wp-block-heading" id="h-misurare-la-nitidezza-di-un-immagine-con-la-varianza-del-laplaciano">Misurare la nitidezza di un&#8217;immagine con la varianza del Laplaciano</h2>



<p>La qualità percettiva di una fotografia dipende in larga misura dalla nitidezza: un&#8217;immagine fuori fuoco o affetta da motion blur appare poco gradevole e, in vari ambiti applicativi (visione artificiale, diagnostica, fotografia mobile), può compromettere l&#8217;intero processo di analisi automatica. </p>



<p>Esistono numerose tecniche per stimare quantitativamente il livello di sfocatura. In questo articolo presentiamo un approccio rapido, privo di dipendenze esterne e adatto al tempo reale, basato sulla <strong>varianza dell&#8217;operatore Laplaciano</strong>. Partiremo dai fondamenti teorici per poi giungere a un&#8217;implementazione completa in JavaScript, corredata da una piccola interfaccia Web per poter effettuare dei test.</p>



<p>L&#8217;obiettivo finale sarà quello di costruire un widget che assegni un punteggio da 1 a 10 alla nitidezza di qualsiasi immagine caricata dall&#8217;utente. </p>



<h2 class="wp-block-heading" id="h-la-nitidezza-come-problema-di-frequenze">La nitidezza come problema di frequenze</h2>



<p>Ogni immagine digitale può essere vista come la somma di componenti a diverse frequenze spaziali: </p>



<ul class="wp-block-list">
<li><strong>Basse frequenze</strong> hanno variazioni lente, aree uniformi e gradienti dolci</li>



<li><strong>Alte frequenze</strong> danno luogo a transizioni brusche, bordi, dettagli fini.</li>
</ul>



<p>Una sfuocatura agisce come <strong>filtro passa-basso</strong> ovvero attenua le alte frequenze. Quindi più un&#8217;immagine è sfuocata, meno energia residua avremo nello spettro ad alta frequenza. </p>



<p>Il progetto si occuperà quindi di tradurre questa osservazione in un singolo numero facile da interpretare. </p>



<h2 class="wp-block-heading" id="h-la-varianza-del-laplaciano-da-milioni-di-pixel-a-un-solo-numero">La varianza del Laplaciano: da milioni di pixel a un solo numero</h2>



<p><br><br>Utilizzando la <strong>varianza laplaciana blur immagine</strong> è possibile discriminare immagini nitide da immagini fuori fuoco senza ricorrere a modelli di intelligenza artificiale.<br>Ma come possiamo condensare queste informazioni in un <strong>singolo valore numerico</strong> che descriva in modo oggettivo quanto l’immagine sia nitida?</p>



<p>La risposta più semplice ed efficace è: <strong>calcolare la varianza di questi valori</strong>.<br>Per quanto detto prima, un&#8217;immagine ben a fuoco presenta molti bordi e transizioni nette quindi i valori del Laplaciano sono ampiamente distribuiti, sia positivi che negativi: c&#8217;è quindi alta varianza.<br>Un&#8217;immagine sfocata, attenua i bordi pertanto i valori del Laplaciano sono vicini allo zero e poco variabili: c&#8217;è quindi bassa varianza. </p>



<p>La varianza misura proprio quanto i valori si discostino dalla media: più è grande questo scarto, più l&#8217;immagine contiene dettagli e risulta nitida. <br>Nel contesto della computer vision, la <strong>varianza laplaciana blur immagine</strong> rappresenta una metrica affidabile e computazionalmente leggera.<br></p>



<h2 class="wp-block-heading" id="h-definizione-matematica">Definizione matematica</h2>



<p>Data una matrice di risposta Laplaciana <img loading="lazy" decoding="async" src="https://renor.it/wp-content/ql-cache/quicklatex.com-fa7289d98d789c928dbeceaad07f6c60_l3.png" class="ql-img-inline-formula quicklatex-auto-format" alt="&#76;&#95;&#105;" title="Rendered by QuickLaTeX.com" height="15" width="17" style="vertical-align: -3px;"/>, dove <img loading="lazy" decoding="async" src="https://renor.it/wp-content/ql-cache/quicklatex.com-695d9d59bd04859c6c99e7feb11daab6_l3.png" class="ql-img-inline-formula quicklatex-auto-format" alt="&#105;" title="Rendered by QuickLaTeX.com" height="12" width="6" style="vertical-align: 0px;"/> indica ciascun pixel valido (escludendo il bordo), calcoliamo:</p>



<div class="wp-block-math"><math display="block"><semantics><mrow><mi>μ</mi><mo>=</mo><mfrac><mn>1</mn><mi>N</mi></mfrac><mrow><munderover><mo movablelimits="false">∑</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover></mrow><msub><mi>L</mi><mi>i</mi></msub></mrow><annotation encoding="application/x-tex">
\mu = \frac{1}{N}\sum_{i=1}^{N} L_i
</annotation></semantics></math></div>



<div class="wp-block-math"><math display="block"><semantics><mrow><msup><mi>σ</mi><mn>2</mn></msup><mo>=</mo><mfrac><mn>1</mn><mi>N</mi></mfrac><mrow><munderover><mo movablelimits="false">∑</mo><mrow><mi>i</mi><mo>=</mo><mn>1</mn></mrow><mi>N</mi></munderover></mrow><mo form="prefix" stretchy="false">(</mo><msub><mi>L</mi><mi>i</mi></msub><mo>−</mo><mi>μ</mi><msup><mo form="postfix" stretchy="false">)</mo><mn>2</mn></msup></mrow><annotation encoding="application/x-tex">
\sigma^2 = \frac{1}{N}\sum_{i=1}^{N}(L_i &#8211; \mu)^2
</annotation></semantics></math></div>



<p>dove:</p>



<ul class="wp-block-list">
<li><img loading="lazy" decoding="async" src="https://renor.it/wp-content/ql-cache/quicklatex.com-461fe1a58a75801541487ddf10d32abd_l3.png" class="ql-img-inline-formula quicklatex-auto-format" alt="&#92;&#109;&#117;" title="Rendered by QuickLaTeX.com" height="12" width="11" style="vertical-align: -4px;"/> è la media dei valori Laplaciani;</li>



<li><img loading="lazy" decoding="async" src="https://renor.it/wp-content/ql-cache/quicklatex.com-9675ccd83f47754d4044b5cb35fda688_l3.png" class="ql-img-inline-formula quicklatex-auto-format" alt="&#36;&#78;&#36;" title="Rendered by QuickLaTeX.com" height="12" width="13" style="vertical-align: 0px;"/> è il numero totale di pixel coinvolti (di solito <img loading="lazy" decoding="async" src="https://renor.it/wp-content/ql-cache/quicklatex.com-79c12309d0c1d6d64e5ecf516c00d7cd_l3.png" class="ql-img-inline-formula quicklatex-auto-format" alt="&#40;&#119;&#32;&#45;&#32;&#50;&#41;&#40;&#104;&#32;&#45;&#32;&#50;&#41;" title="Rendered by QuickLaTeX.com" height="19" width="110" style="vertical-align: -5px;"/>);</li>



<li><img loading="lazy" decoding="async" src="https://renor.it/wp-content/ql-cache/quicklatex.com-0f9e268776987efab7707f327dabb5b4_l3.png" class="ql-img-inline-formula quicklatex-auto-format" alt="&#36;&#92;&#115;&#105;&#103;&#109;&#97;&#94;&#50;&#36;" title="Rendered by QuickLaTeX.com" height="15" width="18" style="vertical-align: 0px;"/> è la <strong>varianza del Laplaciano</strong>, cioè il nostro indicatore di nitidezza.</li>
</ul>



<p>Ora dobbiamo passare da un valore grezzo a uno score interpretabile. </p>



<p>I valori di <img loading="lazy" decoding="async" src="https://renor.it/wp-content/ql-cache/quicklatex.com-0f9e268776987efab7707f327dabb5b4_l3.png" class="ql-img-inline-formula quicklatex-auto-format" alt="&#36;&#92;&#115;&#105;&#103;&#109;&#97;&#94;&#50;&#36;" title="Rendered by QuickLaTeX.com" height="15" width="18" style="vertical-align: 0px;"/> dipendono da variabili hardware e ambientali: risoluzione, rumore, compressione JPEG, qualità della lente. Perciò non ha senso usare una soglia fissa: occorre <strong>normalizzare</strong> il valore rispetto a un intervallo empirico.</p>



<p>Definiamo:</p>



<ul class="wp-block-list">
<li><img loading="lazy" decoding="async" src="https://renor.it/wp-content/ql-cache/quicklatex.com-73043ffd87babda0d70ae9ce84007462_l3.png" class="ql-img-inline-formula quicklatex-auto-format" alt="&#36;&#84;&#95;&#123;&#109;&#105;&#110;&#125;&#36;" title="Rendered by QuickLaTeX.com" height="15" width="38" style="vertical-align: -3px;"/>: varianza tipica di una foto molto sfocata → corrisponde a <strong>score 1</strong>;</li>



<li><img loading="lazy" decoding="async" src="https://renor.it/wp-content/ql-cache/quicklatex.com-46cb30ff1334045825f790498caba267_l3.png" class="ql-img-inline-formula quicklatex-auto-format" alt="&#36;&#84;&#95;&#123;&#109;&#97;&#120;&#125;&#36;" title="Rendered by QuickLaTeX.com" height="15" width="40" style="vertical-align: -3px;"/>: varianza tipica di una foto perfettamente nitida → corrisponde a <strong>score 10</strong>.</li>
</ul>



<p>Quindi:</p>



<div class="wp-block-math"><math display="block"><semantics><mrow><mtext>score</mtext><mo>=</mo><mn>1</mn><mo>+</mo><mn>9</mn><mo>⋅</mo><mrow><mtext></mtext><mi>clamp</mi></mrow><mo form="postfix" stretchy="false">!</mo><mrow><mo fence="true" form="prefix">(</mo><mfrac><mrow><msup><mi>σ</mi><mn>2</mn></msup><mo>−</mo><msub><mi>T</mi><mrow><mi>min</mi><mo>⁡</mo></mrow></msub></mrow><mrow><msub><mi>T</mi><mrow><mi>max</mi><mo>⁡</mo></mrow></msub><mo>−</mo><msub><mi>T</mi><mrow><mi>min</mi><mo>⁡</mo></mrow></msub></mrow></mfrac><mo separator="true">,</mo><mtext>&nbsp;</mtext><mn>0</mn><mo separator="true">,</mo><mtext>&nbsp;</mtext><mn>1</mn><mo fence="true" form="postfix">)</mo></mrow></mrow><annotation encoding="application/x-tex">
\text{score} = 1 + 9 \cdot \mathrm{clamp}!\left(
\frac{\sigma^2 &#8211; T_{\min}}{T_{\max} &#8211; T_{\min}},\ 0,\ 1
\right)
</annotation></semantics></math></div>



<p>Dopo il calcolo, il valore viene arrotondato all’intero più vicino per restituire un punteggio compreso tra 1 e 10. Questo approccio rende il risultato leggibile anche per l’utente finale, oltre che utile per logiche di controllo lato software.</p>



<p>Il valore numerico restituito dalla <strong>varianza laplaciana blur immagine</strong> cresce all’aumentare dei dettagli ad alta frequenza.</p>



<h2 class="wp-block-heading" id="h-implementazione-in-javascript">Implementazione in JavaScript</h2>



<p>L’algoritmo può essere implementato in JavaScript puro utilizzando le API Canvas per accedere ai pixel di un’immagine caricata o ripresa da fotocamera. La funzione seguente prende in input un elemento HTML (<code>&lt;img&gt;</code>,&nbsp;<code>&lt;canvas&gt;</code>,&nbsp;<code>&lt;video&gt;</code>&nbsp;o&nbsp;<code>ImageBitmap</code>) e restituisce un oggetto con&nbsp;<code>score</code>&nbsp;(1–10) e&nbsp;<code>variance</code>.</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled cbp-has-line-numbers cbp-highlight-hover" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(2 * 0.6 * .875rem);--cbp-line-highlight-color:rgba(234, 191, 191, 0.2);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7">JavaScript</span><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>/**
 * Evaluate image sharpness using Laplacian variance.
 *
 * @param {HTMLImageElement|HTMLCanvasElement|HTMLVideoElement|ImageBitmap} source
 * @param {{ thresholdMin?: number, thresholdMax?: number }=} opts
 * @return {Promise&lt;{ score: number, variance: number }>}
 */
export async function blurMeter(source, opts = {}) {
  const T_min = opts.thresholdMin ?? 9;   // calibrated: blurry photo
  const T_max = opts.thresholdMax ?? 50;  // calibrated: sharp photo

  // 1. Prepare off-screen canvas
  const w =
    source.width ||
    source.videoWidth ||
    source.naturalWidth;

  const h =
    source.height ||
    source.videoHeight ||
    source.naturalHeight;

  if (!w || !h) {
    throw new Error("Source has invalid dimensions");
  }

  const off =
    typeof OffscreenCanvas === "function"
      ? new OffscreenCanvas(w, h)
      : (() => {
          const c = document.createElement("canvas");
          c.width = w;
          c.height = h;
          return c;
        })();

  const ctx = off.getContext("2d");
  ctx.drawImage(source, 0, 0, w, h);

  const { data } = ctx.getImageData(0, 0, w, h);

  // 2. Convert to grayscale
  const gray = new Float32Array(w * h);
  for (let i = 0, j = 0; i &lt; data.length; i += 4, ++j) {
    gray&#91;j&#93; =
      0.299 * data&#91;i&#93; +
      0.587 * data&#91;i + 1&#93; +
      0.114 * data&#91;i + 2&#93;;
  }

  // 3. Apply Laplacian (4-neighbour kernel)
  const lap = new Float32Array(w * h);
  const idx = (x, y) => y * w + x;

  for (let y = 1; y &lt; h - 1; ++y) {
    for (let x = 1; x &lt; w - 1; ++x) {
      const i = idx(x, y);
      lap&#91;i&#93; =
        4 * gray&#91;i&#93; -
        gray&#91;idx(x - 1, y)&#93; -
        gray&#91;idx(x + 1, y)&#93; -
        gray&#91;idx(x, y - 1)&#93; -
        gray&#91;idx(x, y + 1)&#93;;
    }
  }

  // 4. Compute variance
  let sum = 0;
  let sumSq = 0;
  const count = (w - 2) * (h - 2);

  for (let y = 1; y &lt; h - 1; ++y) {
    for (let x = 1; x &lt; w - 1; ++x) {
      const v = lap&#91;idx(x, y)&#93;;
      sum += v;
      sumSq += v * v;
    }
  }

  const mean = sum / count;
  const variance = sumSq / count - mean * mean;

  // 5. Map to score
  const norm = Math.max(
    0,
    Math.min(1, (variance - T_min) / (T_max - T_min))
  );

  const score = Math.round(1 + 9 * norm);

  return { score, variance };
}</textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M4.5 12.75l6 6 9-13.5"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M16.5 8.25V6a2.25 2.25 0 00-2.25-2.25H6A2.25 2.25 0 003.75 6v8.25A2.25 2.25 0 006 16.5h2.25m8.25-8.25H18a2.25 2.25 0 012.25 2.25V18A2.25 2.25 0 0118 20.25h-7.5A2.25 2.25 0 018.25 18v-1.5m8.25-8.25h-6a2.25 2.25 0 00-2.25 2.25v6"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #6A9955">/**</span></span>
<span class="line"><span style="color: #6A9955"> * Evaluate image sharpness using Laplacian variance.</span></span>
<span class="line"><span style="color: #6A9955"> *</span></span>
<span class="line"><span style="color: #6A9955"> * </span><span style="color: #569CD6">@param</span><span style="color: #6A9955"> </span><span style="color: #4EC9B0">{HTMLImageElement|HTMLCanvasElement|HTMLVideoElement|ImageBitmap}</span><span style="color: #6A9955"> </span><span style="color: #9CDCFE">source</span></span>
<span class="line"><span style="color: #6A9955"> * </span><span style="color: #569CD6">@param</span><span style="color: #6A9955"> </span><span style="color: #4EC9B0">{{ thresholdMin?: number, thresholdMax?: number }=}</span><span style="color: #6A9955"> </span><span style="color: #9CDCFE">opts</span></span>
<span class="line"><span style="color: #6A9955"> * </span><span style="color: #569CD6">@return</span><span style="color: #6A9955"> </span><span style="color: #4EC9B0">{Promise&lt;{ score: number, variance: number }&gt;}</span></span>
<span class="line"><span style="color: #6A9955"> */</span></span>
<span class="line"><span style="color: #C586C0">export</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">async</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">function</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">blurMeter</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">source</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">opts</span><span style="color: #D4D4D4"> = {}) {</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">T_min</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">opts</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">thresholdMin</span><span style="color: #D4D4D4"> ?? </span><span style="color: #B5CEA8">9</span><span style="color: #D4D4D4">;   </span><span style="color: #6A9955">// calibrated: blurry photo</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">T_max</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">opts</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">thresholdMax</span><span style="color: #D4D4D4"> ?? </span><span style="color: #B5CEA8">50</span><span style="color: #D4D4D4">;  </span><span style="color: #6A9955">// calibrated: sharp photo</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// 1. Prepare off-screen canvas</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">w</span><span style="color: #D4D4D4"> =</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">source</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">width</span><span style="color: #D4D4D4"> ||</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">source</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">videoWidth</span><span style="color: #D4D4D4"> ||</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">source</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">naturalWidth</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">h</span><span style="color: #D4D4D4"> =</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">source</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">height</span><span style="color: #D4D4D4"> ||</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">source</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">videoHeight</span><span style="color: #D4D4D4"> ||</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">source</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">naturalHeight</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #C586C0">if</span><span style="color: #D4D4D4"> (!</span><span style="color: #9CDCFE">w</span><span style="color: #D4D4D4"> || !</span><span style="color: #9CDCFE">h</span><span style="color: #D4D4D4">) {</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #C586C0">throw</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">new</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">Error</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&quot;Source has invalid dimensions&quot;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  }</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">off</span><span style="color: #D4D4D4"> =</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">typeof</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">OffscreenCanvas</span><span style="color: #D4D4D4"> === </span><span style="color: #CE9178">&quot;function&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">      ? </span><span style="color: #569CD6">new</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">OffscreenCanvas</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">w</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">h</span><span style="color: #D4D4D4">)</span></span>
<span class="line"><span style="color: #D4D4D4">      : (() </span><span style="color: #569CD6">=&gt;</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">c</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">document</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">createElement</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&quot;canvas&quot;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #9CDCFE">c</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">width</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">w</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #9CDCFE">c</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">height</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">h</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #C586C0">return</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">c</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">        })();</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">ctx</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">off</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">getContext</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&quot;2d&quot;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #9CDCFE">ctx</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">drawImage</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">source</span><span style="color: #D4D4D4">, </span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">, </span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">w</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">h</span><span style="color: #D4D4D4">);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> { </span><span style="color: #4FC1FF">data</span><span style="color: #D4D4D4"> } = </span><span style="color: #9CDCFE">ctx</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">getImageData</span><span style="color: #D4D4D4">(</span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">, </span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">w</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">h</span><span style="color: #D4D4D4">);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// 2. Convert to grayscale</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">gray</span><span style="color: #D4D4D4"> = </span><span style="color: #569CD6">new</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">Float32Array</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">w</span><span style="color: #D4D4D4"> * </span><span style="color: #9CDCFE">h</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #C586C0">for</span><span style="color: #D4D4D4"> (</span><span style="color: #569CD6">let</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">i</span><span style="color: #D4D4D4"> = </span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">j</span><span style="color: #D4D4D4"> = </span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">; </span><span style="color: #9CDCFE">i</span><span style="color: #D4D4D4"> &lt; </span><span style="color: #9CDCFE">data</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">length</span><span style="color: #D4D4D4">; </span><span style="color: #9CDCFE">i</span><span style="color: #D4D4D4"> += </span><span style="color: #B5CEA8">4</span><span style="color: #D4D4D4">, ++</span><span style="color: #9CDCFE">j</span><span style="color: #D4D4D4">) {</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">gray</span><span style="color: #D4D4D4">&#91;</span><span style="color: #9CDCFE">j</span><span style="color: #D4D4D4">&#93; =</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #B5CEA8">0.299</span><span style="color: #D4D4D4"> * </span><span style="color: #9CDCFE">data</span><span style="color: #D4D4D4">&#91;</span><span style="color: #9CDCFE">i</span><span style="color: #D4D4D4">&#93; +</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #B5CEA8">0.587</span><span style="color: #D4D4D4"> * </span><span style="color: #9CDCFE">data</span><span style="color: #D4D4D4">&#91;</span><span style="color: #9CDCFE">i</span><span style="color: #D4D4D4"> + </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">&#93; +</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #B5CEA8">0.114</span><span style="color: #D4D4D4"> * </span><span style="color: #9CDCFE">data</span><span style="color: #D4D4D4">&#91;</span><span style="color: #9CDCFE">i</span><span style="color: #D4D4D4"> + </span><span style="color: #B5CEA8">2</span><span style="color: #D4D4D4">&#93;;</span></span>
<span class="line"><span style="color: #D4D4D4">  }</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// 3. Apply Laplacian (4-neighbour kernel)</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">lap</span><span style="color: #D4D4D4"> = </span><span style="color: #569CD6">new</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">Float32Array</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">w</span><span style="color: #D4D4D4"> * </span><span style="color: #9CDCFE">h</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">idx</span><span style="color: #D4D4D4"> = (</span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">y</span><span style="color: #D4D4D4">) </span><span style="color: #569CD6">=&gt;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">y</span><span style="color: #D4D4D4"> * </span><span style="color: #9CDCFE">w</span><span style="color: #D4D4D4"> + </span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #C586C0">for</span><span style="color: #D4D4D4"> (</span><span style="color: #569CD6">let</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">y</span><span style="color: #D4D4D4"> = </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">; </span><span style="color: #9CDCFE">y</span><span style="color: #D4D4D4"> &lt; </span><span style="color: #9CDCFE">h</span><span style="color: #D4D4D4"> - </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">; ++</span><span style="color: #9CDCFE">y</span><span style="color: #D4D4D4">) {</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #C586C0">for</span><span style="color: #D4D4D4"> (</span><span style="color: #569CD6">let</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4"> = </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">; </span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4"> &lt; </span><span style="color: #9CDCFE">w</span><span style="color: #D4D4D4"> - </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">; ++</span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4">) {</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">i</span><span style="color: #D4D4D4"> = </span><span style="color: #DCDCAA">idx</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">y</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">lap</span><span style="color: #D4D4D4">&#91;</span><span style="color: #9CDCFE">i</span><span style="color: #D4D4D4">&#93; =</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #B5CEA8">4</span><span style="color: #D4D4D4"> * </span><span style="color: #9CDCFE">gray</span><span style="color: #D4D4D4">&#91;</span><span style="color: #9CDCFE">i</span><span style="color: #D4D4D4">&#93; -</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #9CDCFE">gray</span><span style="color: #D4D4D4">&#91;</span><span style="color: #DCDCAA">idx</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4"> - </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">y</span><span style="color: #D4D4D4">)&#93; -</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #9CDCFE">gray</span><span style="color: #D4D4D4">&#91;</span><span style="color: #DCDCAA">idx</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4"> + </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">y</span><span style="color: #D4D4D4">)&#93; -</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #9CDCFE">gray</span><span style="color: #D4D4D4">&#91;</span><span style="color: #DCDCAA">idx</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">y</span><span style="color: #D4D4D4"> - </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">)&#93; -</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #9CDCFE">gray</span><span style="color: #D4D4D4">&#91;</span><span style="color: #DCDCAA">idx</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">y</span><span style="color: #D4D4D4"> + </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">)&#93;;</span></span>
<span class="line"><span style="color: #D4D4D4">    }</span></span>
<span class="line"><span style="color: #D4D4D4">  }</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// 4. Compute variance</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">let</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">sum</span><span style="color: #D4D4D4"> = </span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">let</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">sumSq</span><span style="color: #D4D4D4"> = </span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">count</span><span style="color: #D4D4D4"> = (</span><span style="color: #9CDCFE">w</span><span style="color: #D4D4D4"> - </span><span style="color: #B5CEA8">2</span><span style="color: #D4D4D4">) * (</span><span style="color: #9CDCFE">h</span><span style="color: #D4D4D4"> - </span><span style="color: #B5CEA8">2</span><span style="color: #D4D4D4">);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #C586C0">for</span><span style="color: #D4D4D4"> (</span><span style="color: #569CD6">let</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">y</span><span style="color: #D4D4D4"> = </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">; </span><span style="color: #9CDCFE">y</span><span style="color: #D4D4D4"> &lt; </span><span style="color: #9CDCFE">h</span><span style="color: #D4D4D4"> - </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">; ++</span><span style="color: #9CDCFE">y</span><span style="color: #D4D4D4">) {</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #C586C0">for</span><span style="color: #D4D4D4"> (</span><span style="color: #569CD6">let</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4"> = </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">; </span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4"> &lt; </span><span style="color: #9CDCFE">w</span><span style="color: #D4D4D4"> - </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">; ++</span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4">) {</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">v</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">lap</span><span style="color: #D4D4D4">&#91;</span><span style="color: #DCDCAA">idx</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">x</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">y</span><span style="color: #D4D4D4">)&#93;;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">sum</span><span style="color: #D4D4D4"> += </span><span style="color: #9CDCFE">v</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">sumSq</span><span style="color: #D4D4D4"> += </span><span style="color: #9CDCFE">v</span><span style="color: #D4D4D4"> * </span><span style="color: #9CDCFE">v</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">    }</span></span>
<span class="line"><span style="color: #D4D4D4">  }</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">mean</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">sum</span><span style="color: #D4D4D4"> / </span><span style="color: #9CDCFE">count</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">variance</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">sumSq</span><span style="color: #D4D4D4"> / </span><span style="color: #9CDCFE">count</span><span style="color: #D4D4D4"> - </span><span style="color: #9CDCFE">mean</span><span style="color: #D4D4D4"> * </span><span style="color: #9CDCFE">mean</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #6A9955">// 5. Map to score</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">norm</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">Math</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">max</span><span style="color: #D4D4D4">(</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">,</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #9CDCFE">Math</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">min</span><span style="color: #D4D4D4">(</span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">, (</span><span style="color: #9CDCFE">variance</span><span style="color: #D4D4D4"> - </span><span style="color: #9CDCFE">T_min</span><span style="color: #D4D4D4">) / (</span><span style="color: #9CDCFE">T_max</span><span style="color: #D4D4D4"> - </span><span style="color: #9CDCFE">T_min</span><span style="color: #D4D4D4">))</span></span>
<span class="line"><span style="color: #D4D4D4">  );</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #569CD6">const</span><span style="color: #D4D4D4"> </span><span style="color: #4FC1FF">score</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">Math</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">round</span><span style="color: #D4D4D4">(</span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4"> + </span><span style="color: #B5CEA8">9</span><span style="color: #D4D4D4"> * </span><span style="color: #9CDCFE">norm</span><span style="color: #D4D4D4">);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #C586C0">return</span><span style="color: #D4D4D4"> { </span><span style="color: #9CDCFE">score</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">variance</span><span style="color: #D4D4D4"> };</span></span>
<span class="line"><span style="color: #D4D4D4">}</span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#1E1E1E;color:#c7c7c7;font-size:12px;line-height:1;position:relative">Copyright 2026 © renor.it</span></div>



<p>Questa funzione è leggera, autonoma e può essere eseguita direttamente lato client, ad esempio in un&#8217;applicazione web per fotocamera live o analisi immagini.</p>



<p>Prossimo passo: creiamo un&#8217;interfaccia semplice con HTML e Tailwind per usare questa funzione in modo interattivo.</p>



<h2 class="wp-block-heading" id="h-interfaccia-html-tailwind">Interfaccia HTML + Tailwind</h2>



<p>Consumiamo ora la funzione in una semplice interfaccia utente realizzata in HTML e Tailwind che permette all&#8217;utente di caricare un&#8217;immagine, visualizzarne l&#8217;anteprima e ricevere immediatamente uno score di nitidezza con una barra colorata da rosso (sfuocato) a verde (nitido).</p>



<div class="wp-block-kevinbatdorf-code-block-pro padding-bottom-disabled cbp-has-line-numbers" data-code-block-pro-font-family="Code-Pro-JetBrains-Mono" style="font-size:.875rem;font-family:Code-Pro-JetBrains-Mono,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,monospace;--cbp-line-number-color:#D4D4D4;--cbp-line-number-width:calc(3 * 0.6 * .875rem);line-height:1.25rem;--cbp-tab-width:2;tab-size:var(--cbp-tab-width, 2)"><span style="display:flex;align-items:center;padding:10px 0px 10px 16px;margin-bottom:-2px;width:100%;text-align:left;background-color:#2b2b2b;color:#c7c7c7">JavaScript</span><span role="button" tabindex="0" style="color:#D4D4D4;display:none" aria-label="Copy" class="code-block-pro-copy-button"><pre class="code-block-pro-copy-button-pre" aria-hidden="true"><textarea class="code-block-pro-copy-button-textarea" tabindex="-1" aria-hidden="true" readonly>&lt;!DOCTYPE html>
&lt;html lang="it">
&lt;head>
  &lt;meta charset="UTF-8">
  &lt;title>Blur Meter Demo&lt;/title>

  &lt;!-- Tailwind CSS via CDN -->
  &lt;script src="https://cdn.tailwindcss.com">&lt;/script>

  &lt;meta name="viewport" content="width=device-width, initial-scale=1">
&lt;/head>

&lt;body class="min-h-screen bg-slate-100 flex items-center justify-center p-4">
  &lt;div class="w-full max-w-lg bg-white shadow-xl rounded-2xl p-6 space-y-6">
    &lt;h1 class="text-2xl font-semibold text-center">
      Image Blur Meter
    &lt;/h1>

    &lt;!-- File input -->
    &lt;label class="flex flex-col items-center justify-center w-full h-40 px-4 transition bg-white border-2 border-dashed rounded-lg cursor-pointer hover:border-indigo-500">
      &lt;span class="text-sm text-gray-500">
        Click here to upload an image
      &lt;/span>
      &lt;input
        id="uploader"
        type="file"
        accept="image/*"
        class="hidden"
      >
    &lt;/label>

    &lt;!-- Image preview -->
    &lt;div id="previewWrapper" class="hidden">
      &lt;img
        id="preview"
        alt="preview"
        class="mx-auto max-h-64 rounded-lg shadow-md"
      >
    &lt;/div>

    &lt;!-- Results -->
    &lt;div id="result" class="hidden space-y-3">
      &lt;p
        id="scoreText"
        class="text-center text-lg font-medium"
      >&lt;/p>

      &lt;!-- Progress bar -->
      &lt;div class="w-full bg-gray-200 rounded-full h-4">
        &lt;div
          id="scoreBar"
          class="h-4 rounded-full transition-all duration-500"
          style="width: 0%;"
        >&lt;/div>
      &lt;/div>

      &lt;p
        id="varianceText"
        class="text-center text-sm text-gray-500"
      >&lt;/p>
    &lt;/div>
  &lt;/div>

  &lt;script type="module">
    import { blurMeter } from './js/blur-meter.js';

    const uploader     = document.getElementById('uploader');
    const preview      = document.getElementById('preview');
    const previewWrap  = document.getElementById('previewWrapper');
    const scoreText    = document.getElementById('scoreText');
    const varianceText = document.getElementById('varianceText');
    const scoreBar     = document.getElementById('scoreBar');
    const resultBlock  = document.getElementById('result');

    const scoreToColor = score => {
      const t = (score - 1) / 9;
      const r = Math.round(220 + (22  - 220) * t);
      const g = Math.round( 38 + (163 -  38) * t);
      const b = Math.round( 38 + ( 74  -  38) * t);
      return `rgb(${r}, ${g}, ${b})`;
    };

    uploader.addEventListener('change', async event => {
      const file = event.target.files&#91;0&#93;;
      if (!file) return;

      const url = URL.createObjectURL(file);
      preview.src = url;
      previewWrap.classList.remove('hidden');

      await new Promise(resolve => {
        preview.onload = resolve;
      });

      const { score, variance } = await blurMeter(preview);

      scoreText.textContent =
        `Sharpness Score: ${score}/10`;

      varianceText.textContent =
        `Laplacian variance: ${variance.toFixed(2)}`;

      const percent = ((score - 1) / 9) * 100;
      scoreBar.style.width = percent + '%';
      scoreBar.style.backgroundColor = scoreToColor(score);

      resultBlock.classList.remove('hidden');

      URL.revokeObjectURL(url);
    });
  &lt;/script>
&lt;/body>
&lt;/html></textarea></pre><svg xmlns="http://www.w3.org/2000/svg" style="width:24px;height:24px" fill="none" viewBox="0 0 24 24" stroke="currentColor" stroke-width="2"><path class="with-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4"></path><path class="without-check" stroke-linecap="round" stroke-linejoin="round" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"></path></svg></span><pre class="shiki dark-plus" style="background-color: #1E1E1E" tabindex="0"><code><span class="line"><span style="color: #D4D4D4">&lt;!</span><span style="color: #4FC1FF">DOCTYPE</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">html</span><span style="color: #D4D4D4">&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;</span><span style="color: #569CD6">html</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">lang</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;it&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;</span><span style="color: #569CD6">head</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">meta</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">charset</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;UTF-8&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">title</span><span style="color: #808080">&gt;</span><span style="color: #D4D4D4">Blur Meter Demo</span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">title</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  &lt;!-- Tailwind CSS via CDN --&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">script</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">src</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;https://cdn.tailwindcss.com&quot;</span><span style="color: #808080">&gt;&lt;/</span><span style="color: #569CD6">script</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">meta</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">name</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;viewport&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">content</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;width=device-width, initial-scale=1&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;/</span><span style="color: #569CD6">head</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #808080">&lt;</span><span style="color: #569CD6">body</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">class</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;min-h-screen bg-slate-100 flex items-center justify-center p-4&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">div</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">class</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;w-full max-w-lg bg-white shadow-xl rounded-2xl p-6 space-y-6&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">h1</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">class</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;text-2xl font-semibold text-center&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      Image Blur Meter</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">h1</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    &lt;!-- File input --&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">label</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">class</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;flex flex-col items-center justify-center w-full h-40 px-4 transition bg-white border-2 border-dashed rounded-lg cursor-pointer hover:border-indigo-500&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">span</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">class</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;text-sm text-gray-500&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        Click here to upload an image</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">span</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">input</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #9CDCFE">id</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;uploader&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #9CDCFE">type</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;file&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #9CDCFE">accept</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;image/*&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #9CDCFE">class</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;hidden&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">label</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    &lt;!-- Image preview --&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">div</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">id</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;previewWrapper&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">class</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;hidden&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">img</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #9CDCFE">id</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;preview&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #9CDCFE">alt</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;preview&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #9CDCFE">class</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;mx-auto max-h-64 rounded-lg shadow-md&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">div</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    &lt;!-- Results --&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">div</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">id</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;result&quot;</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">class</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;hidden space-y-3&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">p</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #9CDCFE">id</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;scoreText&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #9CDCFE">class</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;text-center text-lg font-medium&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&gt;&lt;/</span><span style="color: #569CD6">p</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">      &lt;!-- Progress bar --&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">div</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">class</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;w-full bg-gray-200 rounded-full h-4&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">div</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #9CDCFE">id</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;scoreBar&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #9CDCFE">class</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;h-4 rounded-full transition-all duration-500&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">          </span><span style="color: #9CDCFE">style</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;width: 0%;&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #808080">&gt;&lt;/</span><span style="color: #569CD6">div</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">div</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">p</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #9CDCFE">id</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;varianceText&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #9CDCFE">class</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;text-center text-sm text-gray-500&quot;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #808080">&gt;&lt;/</span><span style="color: #569CD6">p</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">div</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">div</span><span style="color: #808080">&gt;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #808080">&lt;</span><span style="color: #569CD6">script</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">type</span><span style="color: #D4D4D4">=</span><span style="color: #CE9178">&quot;module&quot;</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #D4D4D4">    import </span><span style="color: #569CD6">{</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">blurMeter</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">}</span><span style="color: #D4D4D4"> from &#39;./js/blur-meter.js&#39;;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    const uploader     = document.getElementById(&#39;uploader&#39;);</span></span>
<span class="line"><span style="color: #D4D4D4">    const preview      = document.getElementById(&#39;preview&#39;);</span></span>
<span class="line"><span style="color: #D4D4D4">    const previewWrap  = document.getElementById(&#39;previewWrapper&#39;);</span></span>
<span class="line"><span style="color: #D4D4D4">    const scoreText    = document.getElementById(&#39;scoreText&#39;);</span></span>
<span class="line"><span style="color: #D4D4D4">    const varianceText = document.getElementById(&#39;varianceText&#39;);</span></span>
<span class="line"><span style="color: #D4D4D4">    const scoreBar     = document.getElementById(&#39;scoreBar&#39;);</span></span>
<span class="line"><span style="color: #D4D4D4">    const resultBlock  = document.getElementById(&#39;result&#39;);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    const scoreToColor = score =&gt; </span><span style="color: #569CD6">{</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">const</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">t</span><span style="color: #D4D4D4"> = (</span><span style="color: #9CDCFE">score</span><span style="color: #D4D4D4"> - </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">) / </span><span style="color: #B5CEA8">9</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">const</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">r</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">Math</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">round</span><span style="color: #D4D4D4">(</span><span style="color: #B5CEA8">220</span><span style="color: #D4D4D4"> + (</span><span style="color: #B5CEA8">22</span><span style="color: #D4D4D4">  - </span><span style="color: #B5CEA8">220</span><span style="color: #D4D4D4">) * </span><span style="color: #9CDCFE">t</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">const</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">g</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">Math</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">round</span><span style="color: #D4D4D4">( </span><span style="color: #B5CEA8">38</span><span style="color: #D4D4D4"> + (</span><span style="color: #B5CEA8">163</span><span style="color: #D4D4D4"> -  </span><span style="color: #B5CEA8">38</span><span style="color: #D4D4D4">) * </span><span style="color: #9CDCFE">t</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">const</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">b</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">Math</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">round</span><span style="color: #D4D4D4">( </span><span style="color: #B5CEA8">38</span><span style="color: #D4D4D4"> + ( </span><span style="color: #B5CEA8">74</span><span style="color: #D4D4D4">  -  </span><span style="color: #B5CEA8">38</span><span style="color: #D4D4D4">) * </span><span style="color: #9CDCFE">t</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">return</span><span style="color: #D4D4D4"> </span><span style="color: #CE9178">`rgb(</span><span style="color: #569CD6">${</span><span style="color: #9CDCFE">r</span><span style="color: #569CD6">}</span><span style="color: #CE9178">, </span><span style="color: #569CD6">${</span><span style="color: #9CDCFE">g</span><span style="color: #569CD6">}</span><span style="color: #CE9178">, </span><span style="color: #569CD6">${</span><span style="color: #9CDCFE">b</span><span style="color: #569CD6">}</span><span style="color: #CE9178">)`</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">}</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">    uploader.addEventListener(&#39;change&#39;, async event =&gt; </span><span style="color: #569CD6">{</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">const</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">file</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">event</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">target</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">files</span><span style="color: #D4D4D4">&#91;</span><span style="color: #B5CEA8">0</span><span style="color: #D4D4D4">&#93;;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #DCDCAA">if</span><span style="color: #D4D4D4"> (!</span><span style="color: #9CDCFE">file</span><span style="color: #D4D4D4">) </span><span style="color: #9CDCFE">return</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">const</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">url</span><span style="color: #D4D4D4"> = </span><span style="color: #4FC1FF">URL</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">createObjectURL</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">file</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">preview</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">src</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">url</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">previewWrap</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">classList</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">remove</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&#39;hidden&#39;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #C586C0">await</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">new</span><span style="color: #D4D4D4"> </span><span style="color: #4EC9B0">Promise</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">resolve</span><span style="color: #D4D4D4"> </span><span style="color: #569CD6">=&gt;</span><span style="color: #D4D4D4"> {</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #9CDCFE">preview</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">onload</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">resolve</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">      });</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">const</span><span style="color: #D4D4D4"> { </span><span style="color: #9CDCFE">score</span><span style="color: #D4D4D4">, </span><span style="color: #9CDCFE">variance</span><span style="color: #D4D4D4"> } = </span><span style="color: #C586C0">await</span><span style="color: #D4D4D4"> </span><span style="color: #DCDCAA">blurMeter</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">preview</span><span style="color: #D4D4D4">);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">scoreText</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">textContent</span><span style="color: #D4D4D4"> =</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #CE9178">`Sharpness Score: </span><span style="color: #569CD6">${</span><span style="color: #9CDCFE">score</span><span style="color: #569CD6">}</span><span style="color: #CE9178">/10`</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">varianceText</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">textContent</span><span style="color: #D4D4D4"> =</span></span>
<span class="line"><span style="color: #D4D4D4">        </span><span style="color: #CE9178">`Laplacian variance: </span><span style="color: #569CD6">${</span><span style="color: #9CDCFE">variance</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">toFixed</span><span style="color: #D4D4D4">(</span><span style="color: #B5CEA8">2</span><span style="color: #D4D4D4">)</span><span style="color: #569CD6">}</span><span style="color: #CE9178">`</span><span style="color: #D4D4D4">;</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">const</span><span style="color: #D4D4D4"> </span><span style="color: #9CDCFE">percent</span><span style="color: #D4D4D4"> = ((</span><span style="color: #9CDCFE">score</span><span style="color: #D4D4D4"> - </span><span style="color: #B5CEA8">1</span><span style="color: #D4D4D4">) / </span><span style="color: #B5CEA8">9</span><span style="color: #D4D4D4">) * </span><span style="color: #B5CEA8">100</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">scoreBar</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">style</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">width</span><span style="color: #D4D4D4"> = </span><span style="color: #9CDCFE">percent</span><span style="color: #D4D4D4"> + </span><span style="color: #CE9178">&#39;%&#39;</span><span style="color: #D4D4D4">;</span></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">scoreBar</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">style</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">backgroundColor</span><span style="color: #D4D4D4"> = </span><span style="color: #DCDCAA">scoreToColor</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">score</span><span style="color: #D4D4D4">);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #9CDCFE">resultBlock</span><span style="color: #D4D4D4">.</span><span style="color: #9CDCFE">classList</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">remove</span><span style="color: #D4D4D4">(</span><span style="color: #CE9178">&#39;hidden&#39;</span><span style="color: #D4D4D4">);</span></span>
<span class="line"></span>
<span class="line"><span style="color: #D4D4D4">      </span><span style="color: #4FC1FF">URL</span><span style="color: #D4D4D4">.</span><span style="color: #DCDCAA">revokeObjectURL</span><span style="color: #D4D4D4">(</span><span style="color: #9CDCFE">url</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">    </span><span style="color: #569CD6">}</span><span style="color: #D4D4D4">);</span></span>
<span class="line"><span style="color: #D4D4D4">  </span><span style="color: #808080">&lt;/</span><span style="color: #569CD6">script</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;/</span><span style="color: #569CD6">body</span><span style="color: #808080">&gt;</span></span>
<span class="line"><span style="color: #808080">&lt;/</span><span style="color: #569CD6">html</span><span style="color: #808080">&gt;</span></span></code></pre><span style="display:flex;align-items:flex-end;padding:10px;width:100%;justify-content:flex-end;background-color:#1E1E1E;color:#c7c7c7;font-size:12px;line-height:1;position:relative">Copyright 2026 © renor.it</span></div>



<h2 class="wp-block-heading" id="h-test-di-funzionamento">Test di funzionamento</h2>



<p>Abbiamo testato la funzione su tre diverse tipologie di immagine&#8230;</p>



<h3 class="wp-block-heading" id="h-completamente-sfuocata">Completamente sfuocata</h3>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="550" height="692" src="https://renor.it/wp-content/uploads/2025/06/image-2.webp" alt="Interfaccia web di Image Blur Meter che mostra un’immagine fortemente sfocata con punteggio di nitidezza 1 su 10 calcolato tramite varianza del Laplaciano." class="wp-image-858" srcset="https://renor.it/wp-content/uploads/2025/06/image-2.webp 550w, https://renor.it/wp-content/uploads/2025/06/image-2-238x300.webp 238w" sizes="auto, (max-width: 550px) 100vw, 550px" /></figure>



<h3 class="wp-block-heading" id="h-moderatamente-sfuocata">Moderatamente sfuocata</h3>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="551" height="690" src="https://renor.it/wp-content/uploads/2025/06/image-3.webp" alt="Interfaccia di Image Blur Meter con esempio di immagine parzialmente sfocata dell’etichetta di un prodotto alimentare, valutata con punteggio di nitidezza 2 su 10 tramite varianza del Laplaciano." class="wp-image-860" srcset="https://renor.it/wp-content/uploads/2025/06/image-3.webp 551w, https://renor.it/wp-content/uploads/2025/06/image-3-240x300.webp 240w" sizes="auto, (max-width: 551px) 100vw, 551px" /></figure>



<h3 class="wp-block-heading" id="h-nitida">Nitida</h3>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="559" height="692" src="https://renor.it/wp-content/uploads/2025/06/image-4.webp" alt="Interfaccia di Image Blur Meter con esempio di etichetta alimentare nitida, valutata con punteggio di nitidezza 10 su 10 tramite varianza del Laplaciano." class="wp-image-862" srcset="https://renor.it/wp-content/uploads/2025/06/image-4.webp 559w, https://renor.it/wp-content/uploads/2025/06/image-4-242x300.webp 242w" sizes="auto, (max-width: 559px) 100vw, 559px" /></figure>



<h2 class="wp-block-heading" id="h-conclusione">Conclusione</h2>



<p><br><br>In conclusione, la <strong>varianza laplaciana blur immagine</strong> è ideale per pipeline di image processing deterministiche. La sua forza risiede nella rapidità computazionale, nell&#8217;assenza di dipendenze esterne e nella coerenza con la percezione visiva umana.</p>



<p>Nel nostro caso d&#8217;uso, applicato all&#8217;App CeliachIA, questa metrica ci ha permesso di anticipare il controllo qualità direttamente sul dispositivo dell&#8217;utente, evitando costi superflui di invocazioni cloud quando le immagini non sono idonee all&#8217;analisi OCR. </p>



<p>La pipeline realizzata con JavaScript e Canvas API, abbinata a una semplice interfaccia web sviluppata con Tailwind, rappresenta un esempio concredo di come concetti matematici e strumenti ingegneristici possano confluire in una soluzione robusta, economica e user-friendly. </p>



<p>In definitiva, dotarsi di un sistema automatico di scoring della nitidezza non è solo un vezzo tecnic, ma una componente essenziale per garantire qualità, efficienza e sostenibilità nelle pipeline di analisi delle immagini moderne. </p>



<p>Potete scaricare questo strumento dal mio account GitHub al link: <a href="https://github.com/thesimon82/Laplacian-Blur-Detector/">https://github.com/thesimon82/Laplacian-Blur-Detector/</a></p>
<p>L'articolo <a href="https://renor.it/blog/intelligenza-artificiale-algoritmi/valutazione-del-livello-di-blur-tramite-varianza-laplaciana/">Valutazione del livello di Blur tramite Varianza Laplaciana</a> proviene da <a href="https://renor.it">RENOR &amp; Partners S.r.l.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>AI washing: quando basterebbe una if()</title>
		<link>https://renor.it/blog/intelligenza-artificiale-algoritmi/ai-washing-quando-basterebbe-una-if/</link>
		
		<dc:creator><![CDATA[Simone Renzi]]></dc:creator>
		<pubDate>Mon, 09 Jun 2025 20:14:25 +0000</pubDate>
				<category><![CDATA[Intelligenza Artificiale & Algoritmi]]></category>
		<category><![CDATA[AI washing]]></category>
		<category><![CDATA[algoritmi deterministici]]></category>
		<category><![CDATA[automazione]]></category>
		<category><![CDATA[buon senso ingegneristico]]></category>
		<category><![CDATA[buzzword]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[costi AI]]></category>
		<category><![CDATA[GPT]]></category>
		<category><![CDATA[if statement]]></category>
		<category><![CDATA[ingegneria del software]]></category>
		<category><![CDATA[Innovazione tecnologica]]></category>
		<category><![CDATA[intelligenza artificiale]]></category>
		<category><![CDATA[Machine Learning]]></category>
		<category><![CDATA[moda tecnologica]]></category>
		<category><![CDATA[neural networks]]></category>
		<category><![CDATA[overengineering]]></category>
		<category><![CDATA[PDF automation]]></category>
		<category><![CDATA[progettazione software]]></category>
		<category><![CDATA[programmazione efficiente]]></category>
		<category><![CDATA[regex]]></category>
		<category><![CDATA[sobrietà progettuale]]></category>
		<category><![CDATA[software engineering ethics]]></category>
		<category><![CDATA[soluzioni tecniche]]></category>
		<category><![CDATA[startup tech]]></category>
		<category><![CDATA[sviluppo backend]]></category>
		<category><![CDATA[sviluppo web]]></category>
		<category><![CDATA[tecnologie emergenti]]></category>
		<guid isPermaLink="false">https://renor.it/?p=804</guid>

					<description><![CDATA[<p>L&#8217;epoca dell&#8217;AI washing L&#8217;intelligenza artificiale è, senza ombra di dubbio, una delle più importanti evoluzioni tecnologiche e &#8220;scoperte&#8221; del nostro tempo. Uso il termine &#8220;scoperte&#8221; tra virgolette perché in realtà, la teoria alla base dell&#8217;AI risale addirittura al 1956, anno della celebre conferenza di Dartmouth che ne sancì la nascita ufficiale. Eppure, solo negli ultimi [&#8230;]</p>
<p>L'articolo <a href="https://renor.it/blog/intelligenza-artificiale-algoritmi/ai-washing-quando-basterebbe-una-if/">AI washing: quando basterebbe una if()</a> proviene da <a href="https://renor.it">RENOR &amp; Partners S.r.l.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading" id="h-l-epoca-dell-ai-washing">L&#8217;epoca dell&#8217;AI washing</h2>



<p>L&#8217;intelligenza artificiale è, senza ombra di dubbio, una delle più importanti evoluzioni tecnologiche e &#8220;scoperte&#8221; del nostro tempo. Uso il termine &#8220;scoperte&#8221; tra virgolette perché in realtà, la teoria alla base dell&#8217;AI risale addirittura al 1956, anno della celebre <a href="https://plato.stanford.edu/entries/artificial-intelligence/">conferenza di Dartmouth</a> che ne sancì la nascita ufficiale. <br>Eppure, solo negli ultimi anni, l&#8217;AI ha fatto irruzione nell&#8217;universo consumer e manageriale, diventando una parola magica buona per ogni contesto: marketing, prodotti, slide per gli investitori, report aziendali, ecc. <br>È uno dei tanti esempi di <strong>AI washing</strong>, ovvero l’uso dell’intelligenza artificiale come etichetta alla moda anche quando una soluzione deterministica sarebbe più che sufficiente.</p>



<p>Il punto è che, se ieri la moda era l’iPhone, oggi la moda è l’intelligenza artificiale, in piena logica di <strong>AI washing</strong>. Tutti vogliono inserirla ovunque, anche dove non c&#8217;è nessuna necessità di integrarla. A volte infatti, non è solamente inutile: è meno efficiente, più fragile e più costosa da mantenere rispetto ad un classico algoritmo a stati finiti. Ma poco importa: l&#8217;importante è dire che c&#8217;è l&#8217;AI.</p>



<p>Per spiegare meglio cosa intendo, voglio partire da un esempio lampante e assolutamente reale. </p>



<p><strong>AI? No, basta un while: il caso del PDF intelligente</strong></p>



<p>Poco tempo fa per una società di somministrazione che abbiamo come cliente, mi è stato chiesto di sviluppare qualcosa che li aiutasse ad inviare tutte le CU. Parlando di migliaia di dipendenti potete immaginare il tempo che avrebbe tolto ai poveri operatori amministrativi, spacchettare manualmente un PDF contenente tutte le CU di tutti i dipendenti, ed inviarle una ad una manualmente. </p>



<p>Immaginiamo quindi di avere un PDF testuale, contenente migliaia di Certificazioni Uniche, di ogni dipendente. Migliaia di documenti multipli di utenti consecutivi. Ogni utente ha la sua CU che può avere 8, 10, 12 pagine e noi vogliamo dividerlo in tanti PDF quanti sono i dipendenti presenti. </p>



<p>Uno sviluppatore cosa farebbe?<br>Per prima cosa aprirebbe il file da dividere, lo analizzerebbe, e si accorgerebbe che la prima pagina di ogni CU di ogni utente contiene in intestazione il codice fiscale. Bene: c&#8217;è un pattern!<br>Cosa pensa allora?</p>



<p><em>&#8220;Fantastico! Scrivo uno script con una while che mi cicla ogni pagina del documento partendo dalla prima fino all&#8217;ultima, all&#8217;interno del ciclo inserisco una regex che mi cerchi un codice fiscale, lo valido per essere certo che quello che mi ha pescato sia effettivamente un codice fiscale e se la validazione va a buon fine, segno quella pagina come inizio di una nuova CU del dipendente. Proseguendo nell&#8217;elaborazione delle altre pagine, appena ne trovo un altro, salvo tutto il blocco precedente in un nuovo PDF e lo invio in allegato ad una mail estraendo dal DB i dati del dipendente utilizzando come parametro di ricerca proprio il codice fiscale che ho nella mia bella variabile e proseguo così fino alla fine&#8221;. </em></p>



<p>Soluzione elegante. Lineare. Leggibile. Affidabile e soprattutto molto veloce!<br>Nessuna AI. Solo logica strutturata, programmazione deterministica e analisi del pattern. </p>



<p>Eppure volevano l&#8217;AI: &#8220;Ma non possiamo usare l&#8217;AI per individuare automaticamente dove inizia ogni documento?&#8221;.</p>



<p>Certo che puoi utilizzare l&#8217;AI, ma <a href="https://it.wikipedia.org/wiki/Intelligenza_artificiale">utilizzare l&#8217;AI</a> per capire da quale pagina a quale pagina inizi e finisca una CU è come dotarsi di un cannone laser per uccidere una formica. Inoltre l&#8217;AI ha tempi molto lunghi di inferenza, rispetto all&#8217;algoritmo deterministico che processa enormi moli di dati in pochi secondi.</p>



<h2 class="wp-block-heading" id="h-ma-i-costi">Ma i costi?</h2>



<p>Certamente! Ci sono anche i costi!<br>Processare un documento con migliaia di CU dei dipendenti e decine di migliaia di pagine oltre a richiedere tempi lunghi ha costi che possono essere tutt&#8217;altro che indifferenti. A seconda del modello si potrebbero spendere anche più di 500 euro per processare decine di migliaia di pagine PDF.                                                                                                                                                                                                                                                                                                                                                                                                                                  </p>



<h2 class="wp-block-heading" id="h-ai-washing-e-determinismo-due-approcci-a-confronto">AI washing e determinismo: due approcci a confronto</h2>



<p>Una volta chiarito che nel nostro esempio del PDF la soluzione più semplice ed efficace è deterministica, vale la pena riflettere più in generale su quando conviene usare un approccio logico e prevedibile e quando invece <a href="https://www.logotel.it/quando-lintelligenza-artificiale-e-utile-e-quando-no-la-guida-pratica/">può aver senso introdurre un layer di intelligenza artificiale</a>.</p>



<h3 class="wp-block-heading" id="h-l-approccio-deterministico">L&#8217;approccio deterministico</h3>



<p><strong>Logico, trasparente, tracciabile</strong></p>



<p>Un algoritmo deterministico è composto da regole esplicite e comportamenti prevedibili. Per ogni input noto, l&#8217;output è garantito e replicabile. Non impara, ma fa esattamente ciò che gli dici di fare. </p>



<p>Nel caso del nostro PDF la struttura è chiara perché abbiamo il pattern fisso del codice fiscale, la variabilità è praticamente nulla e l&#8217;obiettivo è definibile logicamente. In questi casi l&#8217;approccio deterministico ha enormi vantaggi: ha molta efficienza computazionale e può quindi girare con successo anche su dispositivi con risorse minime. È affidabile, facilmente testabile ed è possibile effettuare debug immediato. L&#8217;intero flusso è comprensibile anche da un team non esperto di Machine Learning.  Ed è per questo che andare oltre questa soluzione <strong>perché vogliamo l&#8217;AI</strong> è oltre che ingiustificato anche controproducente. </p>



<h3 class="wp-block-heading" id="h-l-approccio-ai-driven">L&#8217;approccio AI-driven</h3>



<p><strong>Flessibile ma scarsamente prevedibile, costoso e non sempre giustificabile. </strong></p>



<p>Quando si parla di AI s&#8217;intendono spesso sistemi capaci di apprendere da esempi (machine learning), generalizzare pattern anche in contesti non perfettamente definiti, gestire ambiguità e rumore nei dati. Tutto questo è utile se e solo se i dati non seguono pattern rigidi o non noti a priori, il contesto è caotico, ad esempio OCR su foto scattate da smartphone che hanno una variabilità di qualità imprevedibile oppure per ultimo la logica esplicita fallisce perché i casi limite sono infiniti o comunque imprevedibili. </p>



<p>Nel nostro esempio del PDF, non ci sono ambiguità, non c&#8217;è rumore: usare una rete neurale per individuare il codice fiscale è uno spreco, sia tecnica che economico. </p>



<p>Tutto ciò però non impedisce a certe aziende, guidate più dalla moda che dall’ingegneria e da una logica di AI washing, di proporre soluzioni tipo: &#8220;addestriamo un modello NLP per riconoscere le intestazioni oppure usiamo GPT per segmentare i documenti, o ancora usiamo un classificatore supervisionato per capire se un documento è l&#8217;inizio o no&#8230; tutto ciò per&#8230; <strong>Fare quello che un preg_match()</strong> risolve in una riga di codice.</p>



<p>Ritorniamo coi piedi per terra e ricordiamoci che l&#8217;AI per quando impressionante è solo uno strumento. Non esiste o comunque, almeno per uno sviluppatore, non dovrebbe esistere una guerra tra approccio deterministico e AI. Sono entrambi strumenti&#8230; Ma la logica ingegneristica ci insegna a scegliere <strong>lo strumento più semplice, efficace e giustificato per il problema che deve risolvere</strong>. L&#8217;AI ha senso dove il determinismo non arriva: visione artificiale su immagini sfocate, riconoscimento del parlato, predizioni basate su serie storiche complesse, analisi semantica profonda. Ma laddove esiste una regola, una struttura prevedibile, una logica valida, l&#8217;intelligenza artificiale non è solo inutile: è rumore, complicazione e costo. </p>



<h2 class="wp-block-heading" id="h-l-intelligenza-non-e-artificiale-e-progettuale">L&#8217;intelligenza non è artificiale, è progettuale </h2>



<p>L&#8217;intelligenza artificiale è uno strumento straordinario ma come tutti gli strumenti potenti, <a href="https://renor.it/blog/intelligenza-artificiale-algoritmi/lai-fara-perdere-posti-di-lavoro/">va maneggiata con giudizio</a>. Non è una bacchetta magica da agitare sopra ogni problema, né una chiave da infilare nei pitch per far colpo sugli investitori.</p>



<p>C&#8217;è una differenza sostanziale tra <strong>fare innovazione</strong> e <strong>fare finta innovazione</strong>. Oggi, troppe soluzioni vengono pensate partendo dallo strumento e non dal problema. <br>Il risultato sono sistemi sovra-ingegnerizzati, costosi, fragili, spesso anche poco reattivi e in definitiva inutili. </p>



<p>Scusate tanto, ma se entrate in un&#8217;azienda per risolvergli dei problemi ed efficientarla tecnologicamente la prima cosa che fate qual&#8217;è? Vedere dove si può applicare l&#8217;Intelligenza Artificiale? Oppure comprendere da dove nasce il dato, come si muove, studiare come lavora l&#8217;azienda, identificare i processi macchinosi che possono essere automatizzati e poi proporre delle soluzioni in base ai problemi riscontrati?</p>



<p>Direi ad occhi chiusi la seconda!</p>



<p>Nel mondo reale, l’ingegneria buona è quella che risolve il problema nel modo più semplice, elegante e sostenibile possibile, evitando l’AI washing. Anche se non fa notizia. Anche se non c&#8217;è scritto &#8220;AI-powered&#8221;.</p>



<p>Il futuro dell&#8217;informatica non sarà dominato da chi infila modelli neurali ovunque, ma da chi sa scegliere quando serve davvero. Da chi ha il coraggio di dire: <em>&#8220;No, qui basta una if()&#8221;</em>.</p>



<p>Forse proprio da questa sobrietà tecnica potrà rinascere un&#8217;idea nuova di competenza: una che non si misura in buzzwords, ma in chiarezza progettuale, efficienza e responsabilità. </p>
<p>L'articolo <a href="https://renor.it/blog/intelligenza-artificiale-algoritmi/ai-washing-quando-basterebbe-una-if/">AI washing: quando basterebbe una if()</a> proviene da <a href="https://renor.it">RENOR &amp; Partners S.r.l.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Marketing digitale metodo fuffa: metodo, dati e realtà</title>
		<link>https://renor.it/blog/marketing-business-digitale/marketing-digitale-distinguere-metodo-dalla-fuffa/</link>
		
		<dc:creator><![CDATA[Simone Renzi]]></dc:creator>
		<pubDate>Sun, 08 Jun 2025 11:57:56 +0000</pubDate>
				<category><![CDATA[Marketing, Business & Digitale]]></category>
		<category><![CDATA[A/B testing]]></category>
		<category><![CDATA[analisi dei dati]]></category>
		<category><![CDATA[approccio ingegneristico marketing]]></category>
		<category><![CDATA[automazione marketing]]></category>
		<category><![CDATA[campagne Facebook]]></category>
		<category><![CDATA[campagne Google Ads]]></category>
		<category><![CDATA[campagne pubblicitarie]]></category>
		<category><![CDATA[consulenza marketing]]></category>
		<category><![CDATA[digital marketing]]></category>
		<category><![CDATA[esperienze marketing]]></category>
		<category><![CDATA[falsi esperti marketing]]></category>
		<category><![CDATA[funnel di conversione]]></category>
		<category><![CDATA[guru del marketing]]></category>
		<category><![CDATA[ingegneri e marketing]]></category>
		<category><![CDATA[intelligenza artificiale marketing]]></category>
		<category><![CDATA[lead generation]]></category>
		<category><![CDATA[marketing B2B]]></category>
		<category><![CDATA[marketing data-driven]]></category>
		<category><![CDATA[marketing per PMI]]></category>
		<category><![CDATA[marketing serio]]></category>
		<category><![CDATA[profilazione utenti]]></category>
		<category><![CDATA[ROI marketing]]></category>
		<category><![CDATA[strategie digitali]]></category>
		<category><![CDATA[tracciamento KPI]]></category>
		<category><![CDATA[truffe digitali]]></category>
		<guid isPermaLink="false">https://renor.it/?p=770</guid>

					<description><![CDATA[<p>Per ragioni professionali mi sono dovuto avvicinare al mondo del Digital Marketing, pur non considerandolo, lo ammetto, un ambito che mi entusiasmi particolarmente dal punto di vista tecnico. La vera soddisfazione, in questo settore, risiede nella verifica concreta che una strategia pensata, progettata e implementata con metodo funzioni davvero e generi risultati tangibili, soprattutto in [&#8230;]</p>
<p>L'articolo <a href="https://renor.it/blog/marketing-business-digitale/marketing-digitale-distinguere-metodo-dalla-fuffa/">Marketing digitale metodo fuffa: metodo, dati e realtà</a> proviene da <a href="https://renor.it">RENOR &amp; Partners S.r.l.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Per ragioni professionali mi sono dovuto avvicinare al mondo del Digital Marketing, pur non considerandolo, lo ammetto, un ambito che mi entusiasmi particolarmente dal punto di vista tecnico. La vera soddisfazione, in questo settore, risiede nella verifica concreta che una strategia pensata, progettata e implementata con metodo funzioni davvero e generi risultati tangibili, soprattutto in un contesto dominato dal marketing digitale metodo fuffa.<br>Nel panorama del <strong>marketing digitale metodo fuffa</strong>, promesse miracolose e slogan vuoti rendono sempre più difficile distinguere un approccio serio da uno improvvisato.</p>



<p>Dal punto di vista ingegneristico, l&#8217;attività operativa consiste spesso in operazioni relativamente ordinarie: integrazione di API di terze parti, raccolta e registrazione dei dati in un database e successiva elaborazione. Nulla di particolarmente impegnativo e innovativo per chi è abituato a progettare architetture software o sistemi distribuiti complessi. </p>



<p>Tuttavia, è importante distinguere in modo chiaro chi lavora seriamente nel Digital Marketing da chi si improvvisa “esperto” o “guru”. Possiamo identificare almeno <strong>tre categorie di operatori</strong> che oggi popolano l’ambiente, soprattutto su piattaforme come LinkedIn&#8230;</p>



<h2 class="wp-block-heading" id="h-marketing-digitale-metodo-o-fuffa">Marketing digitale: metodo o fuffa?</h2>



<h3 class="wp-block-heading" id="h-marketing-digitale-metodo-fuffa-come-riconoscerlo">Marketing digitale metodo fuffa: come riconoscerlo</h3>



<p>Quando si parla di marketing digitale metodo fuffa, è fondamentale chiarire chi lavora con dati e metodo e chi invece costruisce solo narrazioni autoreferenziali. Si tratta di operatori con un forte orientamento ai dati, capaci di coniugare creatività e rigore analitico. Utilizzano strumenti di tracciamento avanzati, implementano strategie personalizzate, testano costantemente soluzioni attraverso A/B testing e misurano ogni attività sulla base di KPI concreti. Un approccio di questo tipo è coerente con le <a href="https://developers.google.com/search/docs/fundamentals/creating-helpful-content">linee guida ufficiali di Google</a> sulla valutazione della qualità dei contenuti e delle strategie digitali. Ad oggi molti di loro integrano sapientemente anche AI. Per approfondire l’impatto dell’intelligenza artificiale sul lavoro e sui ruoli professionali, leggi anche <a href="https://renor.it/blog/intelligenza-artificiale-e-lavoro-perche-non-stiamo-assistendo-alla-fine-delle-professioni/">Intelligenza artificiale e lavoro: perché non stiamo assistendo alla fine delle professioni</a>. Il loro lavoro si basa su un metodo, non su false promesse da marinaio.</p>



<h2 class="wp-block-heading" id="h-i-venditori-di-fumo">I venditori di fumo</h2>



<p>Autoproclamatisi esperti, spesso con titoli pomposi inventati tramite neologismi come <em>Master Coach Marketing Strategis</em>t o simili, presentano contenuti privi di qualsiasi sostanza. Offrono webinar gratuiti in cui propongono un &#8220;metodo magico&#8221; applicabile indistintamente a chi vende frutta come a chi sviluppa software o gestisce consulenze B2B complesse. </p>



<p>Queste figure sfruttano tecniche persuasive (che attaccano solo con chi non ha neanche idea di cosa sia veramente il marketing digitale), funnel commerciali aggressivi con mail inviate ogni giorno e a volte anche più volte nello stesso giorno, senza fornire alcuna metrica reale o documentazione verificabile. </p>



<h2 class="wp-block-heading" id="h-come-orientarsi-nel-marketing-digitale-tra-metodo-e-fuffa">Come orientarsi nel marketing digitale tra metodo e fuffa?</h2>



<p>Se state valutando l’adozione di strategie di marketing digitale e non siete del mestiere, o comunque non ne avete mai sentito parlare in modo approfondito, distinguere il marketing digitale metodo fuffa da un approccio serio è il primo passo per evitare errori costosi.</p>



<ul class="wp-block-list">
<li>Per prima cosa verificate sempre le referenze, chiedete casi di successo documentati e clienti reali ai quali possiate andare a richiedere un feedback. </li>



<li>Richiedete sempre una proposta personalizzata e diffidate da soluzioni preconfezionate; per forza di cose la strategia di marketing del venditore di tappeti che ha il negozio sotto casa vostra non può essere la stessa di quella di uno studio medico. </li>



<li>Valutate la capacità di ascolto perché un buon consulente vi farà molte domande prima di darvi delle risposte. Nessuno prima di conoscere a fondo di cosa vi occupate vi potrà dire una strategia di marketing da intraprendere. </li>
</ul>



<h3 class="wp-block-heading" id="h-analisi-seria-questa-sconosciuta">Analisi seria: questa sconosciuta!</h3>



<ul class="wp-block-list">
<li>Analizzate sempre i dati! Chiedete sempre indicatori di performance, timeline, costi stimati e risultati attesi. Soprattutto i risultati attesi non c&#8217;è modo di poterli dare con un margine di previsione affidabile (5% &#8211; 10%) ancora prima di aver pubblicato una campagna di test. I dati teorici sono talmente tanto affetti da errori che perdono di qualsiasi significato statistico. Per questo motivo è fondamentale comprendere concetti come varianza, intervalli di confidenza e significatività statistica, come spiegato nella <a href="https://support.google.com/analytics/answer/9320135">documentazione ufficiale di Google Analytics</a>. Ad esempio, un’affermazione del tipo “<em>ti porterò 5 lead al giorno con un margine di errore del 50%</em>” implica un intervallo di confidenza così ampio (da 2.5 a 7.5) da rendere la previsione quasi inutilizzabile. In termini statistici, un errore relativo del 50% indica una <strong>varianza elevatissima</strong> rispetto al valore atteso, riducendo fortemente la significatività della stima. È come dire che la probabilità che piova domani è del 50%: tale informazione non fornisce alcun vantaggio decisionale rispetto al puro caso.. Quindi è egualmente probabile che ci sia il sole</li>
</ul>



<p>Questo ultimo punto merita un paragrafo a parte&#8230; </p>



<ul class="wp-block-list">
<li>Utilizzate strumenti di verifica; anche l&#8217;uso di intelligenza artificiale per fare un &#8220;deep search&#8221; sul consulente o sull&#8217;agenzia può essere utile per tutelarsi, chiedendo se le testimonianze siano autoreferenziate oppure rilasciate da aziende che sono state clienti. Siamo tutti capaci di dipingerci come mostri infallibili e professionisti verticali, ma le parole devono essere confermate sempre dai fatti. </li>
</ul>



<p>Nonostante tutti questi controlli, non è detto che i risultati arrivino, perché alla fine di tutto il ROI dipende anche dal prodotto o servizio che state vendendo. Se non ha presa sul mercato perché il mercato non è interessato c&#8217;è poco da fare.</p>



<h2 class="wp-block-heading" id="h-un-esperienza-personale-nel-marketing-digitale">Un’esperienza personale nel marketing digitale</h2>



<h3 class="wp-block-heading" id="h-quando-il-marketing-digitale-diventa-solo-fuffa">Quando il marketing digitale diventa solo fuffa</h3>



<p>Anni fa partecipai, tramite l&#8217;azienda per cui lavoravo, a un convegno organizzato da una nota agenzia di marketing. L&#8217;evento (a pagamento) si rivelò essere poco più di un momento promozionale per l&#8217;agenzia stessa. </p>



<p>Sul palco si alternavano piccoli imprenditori per testimoniare i risultati ottenuti: in alcuni casi, &#8220;successi&#8221; quantificati in 3000 euro di fatturato mensile. Con tutto il rispetto possibile per il lavoro e la visione di altri imprenditori, è molto difficile considerare queste cifre un traguardo di cui vantarsi per un&#8217;impresa. </p>



<p>La mancanza di contenuti formativi reali mi lasciò piuttosto perplesso e rafforzò la mia convinzione che, nel marketing, come in altri ambiti, occorra saper distinguere tra professionalità e storytelling autoreferenziale. </p>



<h2 class="wp-block-heading" id="h-cosa-viene-da-chiedersi">Cosa viene da chiedersi?</h2>



<p>Vengo continuamente inondato da richieste su LinkedIn di persone che si presentano, ancora prima di avergli risposto un banale &#8220;buongiorno&#8221;, promettendo risultati eclatanti quando non sanno neanche chi sono, non conoscono la mia società e di cosa si occupa sul campo e spesso mi presentano, oltre al marketing, servizi in ambito IT che offro anche io: segno distintivo del fatto che hanno applicato un semplice copia e incolla di un messaggio al quale hanno probabilmente cambiato solamente il nome del destinatario, avendo sorvolato completamente di verificare quelle che sono le mie credenziali e il mio lavoro. </p>



<p>Praticamente è come se entrassero in una norcineria e tentassero di vendere al proprietario un etto di mortadella.</p>



<h4 class="wp-block-heading" id="h-dalla-teoria-alla-pratica">Dalla teoria alla pratica</h4>



<p>Onestamente oggi non spendo più tempo a rispondere a questi &#8220;ciarlatani&#8221; ma in tempi passati mi divertivo con loro dicendogli: <br><em>&#8220;Ok, se sei così sicuro di portarmi tutti questi clienti dipingendoti come Master Coach Marketing Strategist, allora facciamo che ti pago a risultato ottenuto. Se sei certo di avere questo metodo infallibile non dovrebbe essere un problema per te se ti pago a risultati ottenuti&#8221;.</em></p>



<p>Ovviamente il messaggio è chiaramente provocatorio, ma sono dell&#8217;idea che a domanda assurda si replichi con una risposta assurda; e naturalmente tutto si sgonfia immediatamente.</p>



<h4 class="wp-block-heading" id="h-la-domanda-nasce-spontanea">La domanda nasce spontanea</h4>



<p>A questo punto viene da chiedersi? Possibile che le persone non comprendano cosa sia il marketing digitale? Voglio dire&#8230; È il termine stesso a suggerirlo: prendi il marketing tradizionale fatto di volantini, brochure, e digitalizzalo con campagne di ricerca e campagne di advertising. Potresti mai dare adito ad una persona che stampa e distribuisce volantini e ti promette di decuplicare il tuo fatturato senza sapere di cosa ti occupi e quanti volantini intendi stampare e distribuire? Tenendo poi presente il fatto che la chiusura del lead dipende poi anche dalla tua capacità di convertirlo con una presentazione seria e credibile del prodotto o servizio che stai vendendo.</p>



<h2 class="wp-block-heading" id="h-facciamo-chiarezza-sul-marketing-digitale">Facciamo chiarezza sul marketing digitale</h2>



<h3 class="wp-block-heading" id="h-marketing-digitale-serio-vs-approcci-improvvisati">Marketing digitale serio vs approcci improvvisati</h3>



<p>Nel marketing digitale esistono diverse tipologie di campagne attuabili ma tutte si dividono fondamentalmente in due macro-categorie:</p>



<ul class="wp-block-list">
<li>Le campagne di ricerca</li>



<li>Le campagne di advertising</li>
</ul>



<h4 class="wp-block-heading" id="h-campagne-di-ricerca">Campagne di ricerca</h4>



<p>Le campagne di ricerca fanno parte di quella branca denominata &#8220;Marketing diretto&#8221;. Il tuo sito o la tua landing page compare sui motori di ricerca come risultato sponsorizzato nel momento in cui un utente cerca una delle parole chiave che hai utilizzato per definire la tua campagna di marketing. </p>



<h4 class="wp-block-heading" id="h-campagne-di-advertising">Campagne di advertising</h4>



<p>Le campagne di advertising fanno invece parte di quella branca denominata &#8220;Marketing indiretto&#8221;. In questo caso non c&#8217;è un interesse da parte di un utente nel ricercare un prodotto o servizio online. Questo tipo di campagne può essere visto come la digitalizzazione del volantinaggio. Quante volte ti è successo di andare su Facebook o su LinkedIn e vedere post sponsorizzati per la vendita di prodotti o servizi?</p>



<p>Certamente il marketing digitale ha dei vantaggi innegabili: </p>



<ul class="wp-block-list">
<li>Oggi la maggior parte delle persone cerca informazioni su internet con il proprio smartphone</li>



<li>Di questi la maggior parte utilizza regolarmente i social</li>
</ul>



<h3 class="wp-block-heading" id="h-cosa-fanno-le-big-tech-companies">Cosa fanno le big-tech companies?</h3>



<p>I grandi brand come Google e Facebook investono sui dati. Memorizzano qualsiasi interazione che hai compiuto con la pagina per creare un tuo profilo virtuale. Se cerchi su google o addirittura se stai parlando di animali è molto probabile che troverai inserzioni personalizzate su gadget per animali, cibi per animali. </p>



<p>I grandi brand ti conoscono forse meglio di quanto tu non conosca te stesso e queste informazioni sono oro colato per chi deve fare una campagna di marketing perché la può profilare su tutti gli utenti che hanno quegli specifici interessi.. Questo non potresti farlo con il volantinaggio. </p>



<p>Nel marketing digitale puoi anche settorializzare per posizione geografica ma soprattutto il risultato dipende fortemente dal budget che decidi di investire. </p>



<p>Distribuire 10.000 volantini ha una copertura e una risposta diversa del distribuirne un milione e alla base di questa differenza c&#8217;è un investimento economico diverso. </p>



<p>Ecco perché continuo a raccomandarvi di diffidare da chi si presenta con una <em>&#8220;soluzione magica&#8221;</em> già pronta senza sapere neanche chi siete. </p>



<p>Ma veniamo al punto centrale di questo articolo&#8230; </p>



<h2 class="wp-block-heading" id="h-perche-gli-ingegneri-sono-avvantaggiati-nel-marketing-digitale">Perché gli ingegneri sono avvantaggiati nel marketing digitale</h2>



<h3 class="wp-block-heading" id="h-metodo-dati-e-controllo-contro-la-fuffa">Metodo, dati e controllo contro la fuffa</h3>



<p>Avrete compreso che la corretta canalizzazione di una campagna di marketing richiede un approccio orientato alla lettura e comprensione dei dati. </p>



<p>Bene, chi possiede un&#8217;alta formazione tecnico-informatica parte da una posizione di vantaggio per diverse ragioni: </p>



<h5 class="wp-block-heading" id="h-modelli">Modelli</h5>



<ul class="wp-block-list">
<li>Un ingegnere è abituato a pensare per modelli, ipotesi e verifiche. Questo modus operandi si adatta perfettamente al marketing data-driven, dove ogni azione deve poter essere misurata, testata e ottimizzata nel tempo. </li>
</ul>



<h5 class="wp-block-heading" id="h-nessun-supporto-tecnico">Nessun supporto tecnico</h5>



<ul class="wp-block-list">
<li>Laddove un marketer tradizionale ha bisogno del supporto di un tecnico per integrare un pixel di tracciamento, impostare una chiamata API o creare uno script di conversione, un ingegnere può farlo autonomamente, riducendo tempi, costi e margini di errore. </li>
</ul>



<h5 class="wp-block-heading" id="h-conoscenza-approfondita-dei-principali-strumenti-informatici">Conoscenza approfondita dei principali strumenti informatici</h5>



<ul class="wp-block-list">
<li>La conoscenza dei database, di linguaggi come Python o strumenti di data analysis (BigQuery, Data Studio, Grafana, ecc.) permettono di costruire pipeline personalizzate per l&#8217;analisi di campagne, ottimizzare i funnel, monitorare in tempo reale le performance e attivare alert automatici. Inoltre l&#8217;intelligenza artificiale oggi può porre automaticamente delle correzioni basate sui dati analizzati. Ad esempio è possibile utilizzare le API di meta per aggiustare automaticamente il &#8220;tiro&#8221; di alcune campagne per farle performare meglio. </li>
</ul>



<h5 class="wp-block-heading" id="h-corretto-dimensionamento-delle-risorse">Corretto dimensionamento delle risorse</h5>



<ul class="wp-block-list">
<li>Un ingegnere sa come dimensionare correttamente l&#8217;ambiente in cui girano landing page, CRM; sistemi di lead scoring o di email automation e questo è un aspetto veramente cruciale quando si gestiscono campagne ad alto traffico. Il rischio, altrimenti è quello di lavorare con un sistema sottodimensionato che brucia lead perché non è in grado di servire tutte le richieste in ingresso. </li>
</ul>



<h5 class="wp-block-heading" id="h-analisi-per-ottimizzazione-delle-risorse">Analisi per ottimizzazione delle risorse</h5>



<ul class="wp-block-list">
<li>L&#8217;ottimizzazione di budget e risorse è una priorità condivisa da chi progetta sistemi in ambito ingegneristico e da chi gestisce campagne digitali: test A/B, attribuzione dei costi, performance ROI, tutto richiede la stessa logica di efficienza e controllo. </li>
</ul>



<h5 class="wp-block-heading" id="h-integrazione-di-ai">Integrazione di AI</h5>



<ul class="wp-block-list">
<li>Un ingegnere sa integrare chatbot basati su intelligenza artificiale che permettono di dialogare in linguaggio naturale 24 ore su 24, 7 giorni su 7 con tutte le persone che vogliono maggiori informazioni sul prodotto in tempo reale, senza latenze.</li>
</ul>



<h5 class="wp-block-heading" id="h-piattaforme-su-misura">Piattaforme su misura</h5>



<ul class="wp-block-list">
<li>Mentre molti marketer si affidano completamente a piattaforme preconfezionate, l&#8217;ingegnere può costruire strumenti taylor made, perfettamente aderenti alle esigenze del business, evitando vincoli e costi nascosti. </li>
</ul>



<h2 class="wp-block-heading" id="h-conclusione">Conclusione</h2>



<p>Nell&#8217;epoca in cui viviamo, dove l&#8217;informazione e i dati sono la vera ricchezza ma dove la competenza vera è rara, distinguere chi fa marketing con serietà da chi costruisce illusioni è una responsabilità di tutti: imprenditori, tecnici, consulenti e professionisti del settore. </p>



<p>Il marketing digitale non è una formula magica, né un insieme di strumenti da “attivare e dimenticare”: è proprio questa consapevolezza che permette di non cadere nelle trappole del marketing digitale metodo fuffa. Il mio consiglio è molto semplice: prima di affidarvi al primo che capita e che promette risultati eclatanti, fate domande, analizzate i numeri e verificate i fatti, perché il primo campanello d&#8217;allarme è nascosto proprio dietro la sua promessa. E se vi sentite in difficoltà nel valutare proposte o offerte digitali, confrontatevi con chi ha una formazione tecnica: potrebbe farvi risparmiare tempo, risorse e, soprattutto, disillusioni. </p>
<p>L'articolo <a href="https://renor.it/blog/marketing-business-digitale/marketing-digitale-distinguere-metodo-dalla-fuffa/">Marketing digitale metodo fuffa: metodo, dati e realtà</a> proviene da <a href="https://renor.it">RENOR &amp; Partners S.r.l.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Sexy secondo algoritmo: la nuova estetica creata da chi ci osserva</title>
		<link>https://renor.it/blog/intelligenza-artificiale-algoritmi/sexy-secondo-algoritmo-la-nuova-estetica-creata-da-chi-ci-osserva/</link>
		
		<dc:creator><![CDATA[Simone Renzi]]></dc:creator>
		<pubDate>Fri, 06 Jun 2025 15:07:40 +0000</pubDate>
				<category><![CDATA[Intelligenza Artificiale & Algoritmi]]></category>
		<category><![CDATA[AI]]></category>
		<category><![CDATA[algoritmo]]></category>
		<category><![CDATA[arte generativa]]></category>
		<category><![CDATA[attrazione]]></category>
		<category><![CDATA[bellezza]]></category>
		<category><![CDATA[cultura visuale]]></category>
		<category><![CDATA[dati]]></category>
		<category><![CDATA[Deep Learning]]></category>
		<category><![CDATA[desiderio]]></category>
		<category><![CDATA[donna generata da AI]]></category>
		<category><![CDATA[estetica]]></category>
		<category><![CDATA[estetica digitale]]></category>
		<category><![CDATA[femminilità]]></category>
		<category><![CDATA[fotografia digitale]]></category>
		<category><![CDATA[immaginario collettivo]]></category>
		<category><![CDATA[immagine AI]]></category>
		<category><![CDATA[intelligenza artificiale]]></category>
		<category><![CDATA[modelli estetici]]></category>
		<category><![CDATA[modelli generati da AI]]></category>
		<category><![CDATA[Monica Bellucci]]></category>
		<category><![CDATA[oggettività]]></category>
		<category><![CDATA[prompt AI]]></category>
		<category><![CDATA[Reti neurali]]></category>
		<category><![CDATA[sex appeal]]></category>
		<category><![CDATA[sexy]]></category>
		<category><![CDATA[simmetria]]></category>
		<category><![CDATA[società e bellezza]]></category>
		<category><![CDATA[soggettività]]></category>
		<category><![CDATA[visione artificiale]]></category>
		<guid isPermaLink="false">https://renor.it/?p=724</guid>

					<description><![CDATA[<p>Questa donna non esiste. Eppure non riesci a smettere di guardarla. È l’effetto del sexy secondo algoritmo, una nuova forma di attrazione costruita dall’intelligenza artificiale a partire dai nostri stessi dati. Questo sarà un articolo poco tecnico, per chi si avvicina o vuole sapere qualcosa di più sull&#8217;intelligenza artificiale. Nel giro di pochi anni l’AI [&#8230;]</p>
<p>L'articolo <a href="https://renor.it/blog/intelligenza-artificiale-algoritmi/sexy-secondo-algoritmo-la-nuova-estetica-creata-da-chi-ci-osserva/">Sexy secondo algoritmo: la nuova estetica creata da chi ci osserva</a> proviene da <a href="https://renor.it">RENOR &amp; Partners S.r.l.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading" id="h-questa-donna-non-esiste-eppure-non-riesci-a-smettere-di-guardarla">Questa donna non esiste. Eppure non riesci a smettere di guardarla. </h2>



<p>È l’effetto del sexy secondo algoritmo, una nuova forma di attrazione costruita dall’intelligenza artificiale a partire dai nostri stessi dati. Questo sarà un articolo poco tecnico, per chi si avvicina o vuole sapere qualcosa di più sull&#8217;intelligenza artificiale. Nel giro di pochi anni l’AI ha imparato a generare immagini di donne talmente realistiche, seducenti e perfettamente composte da confondersi con modelle vere, dando forma a una nuova bellezza artificiale. Ma come fa una macchina, priva di emozioni, desideri o esperienza sensoriale, a <em>capire</em> cosa significa ‘essere sexy’ al punto da generare effettivamente un&#8217;immagine che evochi questo status? Se vuoi approfondire, per capire come funzionano i modelli generativi di immagini, vedi DALL·E, un algoritmo sviluppato da OpenAI capace di generare immagini a partire da descrizioni testuali <a href="https://it.wikipedia.org/wiki/DALL-E">clicca qui</a>.</p>



<h2 class="wp-block-heading" id="h-la-risposta-e-nei-dati">La risposta è nei dati</h2>



<p>L&#8217;AI non desidera&#8230; Calcola; e per farlo ha visto milioni di immagini, dai ritratti rinascimentali ai selfie su Instagram, dalle copertine dei primi Playboy alle fotografie di moda. Interessante anche il progetto <a href="https://it.wikipedia.org/wiki/StyleGAN">StyleGAN</a>. Ogni curva, ogni posa, ogni sguardo, sono stati scomposti in vettori, metriche, pesi e correlazioni statistiche. Quando chiedi all&#8217;AI di creare una foto di una donna sexy, l&#8217;algoritmo non inventa nulla, si limita unicamente a ricomporre il desiderio medio globale. Il risultato finale è una donna generata da AI che incarna il compromesso statistico del desiderio collettivo.</p>



<p>La foto che otteniamo è pertanto una media di tratti, proporzioni fisiche, grandezza di seno, trucco, ecc. che rientrano nella media del desiderio medio delle persone nel mondo. </p>



<p>Questo ovviamente solleva un problema di natura filologica&#8230;</p>



<h2 class="wp-block-heading" id="h-chi-decide-cose-e-sexy-e-cosa-no">Chi decide cose è sexy e cosa no?</h2>



<p><em>&#8220;<strong>La bellezza è soggettiva</strong>&#8220;</em> quanti di voi non hanno mai sentito questa frase? La si dice talmente tante volte che ormai la si ritiene lapalissiana, vera a prescindere. </p>



<p>Io non sono d&#8217;accordo! Perché se la bellezza fosse davvero soggettiva, allora dovremmo accettare anche l&#8217;idea che una persona universalmente riconosciuta bella possa essere definita brutta. E invece no. Esistono dei limiti, anche alla soggettività.</p>



<p>Prendiamo la nostra Monica Bellucci all&#8217;apice della sua bellezza</p>



<figure class="wp-block-image size-full"><img loading="lazy" decoding="async" width="674" height="1000" src="https://renor.it/wp-content/uploads/2025/06/image.webp" alt="Monica Bellucci" class="wp-image-725" style="aspect-ratio:16/9;object-fit:contain" srcset="https://renor.it/wp-content/uploads/2025/06/image.webp 674w, https://renor.it/wp-content/uploads/2025/06/image-202x300.webp 202w" sizes="auto, (max-width: 674px) 100vw, 674px" /></figure>



<p>Se la bellezza fosse soggettiva ciò significherebbe che nel mondo dovrebbe esistere qualcuno capace di ritenere che alla Bellucci gli si possa dare l&#8217;appellativo di &#8220;Brutta&#8221;. </p>



<p>Comprendo che possano esserci persone che, vuoi per preferenze personali, vuoi per antipatie, possano <strong>preferire</strong> altri tipi di bellezza. C&#8217;è chi può preferire una bionda, c&#8217;è chi può preferire un seno più piccolo o ancora più grande, ma definire come &#8220;Brutta&#8221; la Bellucci può essere solo segno di invidia (se pronunciato da donne) o di antipatia (se pronunciato da maschi) ma in realtà entrambi sanno che Monica Bellucci è tutt&#8217;altro che brutta. </p>



<p>Con questo ragionamento ne ricavo che la soggettività dell’estetica esiste con alcuni limiti, soprattutto quando entra in gioco un’estetica algoritmica. Abbiamo portato l&#8217;esempio della Bellucci ma avremmo potuto parlare di Angelina Jolie, di Cindy Crawford, di Naomi Campbell, di Charlize Theron, come per altri punti di riferimento estetici maschili come Gabriel Garko, Paul Newman, Alain Delon, Henry Cavill, ecc. ecc. L&#8217;estetica vera è secondo me qualcosa di oggettivo: il &#8220;bello&#8221; è bello per definizione.</p>



<p>C&#8217;è poi anche una ragione statistica&#8230; Se il 99% della popolazione mondiale identifica in una persona il senso estetico, allora si può dire che quella persona conserva delle <strong>caratteristiche estetiche</strong> oggettive. </p>



<h2 class="wp-block-heading" id="h-la-bellezza-secondo-l-ai">La bellezza secondo l&#8217;AI</h2>



<p>Chi decide dunque cosa è sexy quando a crearla è una macchina che ci guarda? Siamo noi che lo decidiamo. Siamo noi ad educare l&#8217;algoritmo, e l&#8217;AI non fa altro che restituirci uno specchio: ci mostra i tratti di ciò che è statisticamente ritenuto più sexy dalla maggior parte del mondo. Una donna generata da AI è un ritratto collettivo del nostro gusto inconscio. In questo senso, il sexy secondo algoritmo non è una creazione autonoma della macchina, ma una proiezione matematica delle nostre preferenze aggregate.</p>



<p>La bellezza, dicevano, è negli occhi di chi guarda. Ma oggi quegli occhi sono digitali e imparano in fretta!</p>



<p>Sexy secondo algoritmo è un viaggio nell’intelligenza artificiale e bellezza, fatto di prompt, reti neurali e desideri che non sappiamo più distinguere dalla realtà.</p>



<p>E tu? Pensi davvero che la bellezza sia soggettiva? Oppure l&#8217;intelligenza artificiale ha svelato qualcosa che non vogliamo ammettere?</p>



<p>Perché questa donna non esiste, ma ci seduce comunque.</p>
<p>L'articolo <a href="https://renor.it/blog/intelligenza-artificiale-algoritmi/sexy-secondo-algoritmo-la-nuova-estetica-creata-da-chi-ci-osserva/">Sexy secondo algoritmo: la nuova estetica creata da chi ci osserva</a> proviene da <a href="https://renor.it">RENOR &amp; Partners S.r.l.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>I progetti che ci piacciono</title>
		<link>https://renor.it/blog/marketing-business-digitale/i-progetti-che-ci-piacciono/</link>
		
		<dc:creator><![CDATA[Simone Renzi]]></dc:creator>
		<pubDate>Wed, 04 Jun 2025 23:36:48 +0000</pubDate>
				<category><![CDATA[Marketing, Business & Digitale]]></category>
		<category><![CDATA[ambienti estremi]]></category>
		<category><![CDATA[calcolo dissipazione]]></category>
		<category><![CDATA[camion frigoriferi]]></category>
		<category><![CDATA[catena del freddo]]></category>
		<category><![CDATA[celle frigorifere]]></category>
		<category><![CDATA[compute module 4]]></category>
		<category><![CDATA[condensa elettronica]]></category>
		<category><![CDATA[dissipatore passivo]]></category>
		<category><![CDATA[dissipazione termica]]></category>
		<category><![CDATA[elettronica e freddo]]></category>
		<category><![CDATA[elettronica industriale]]></category>
		<category><![CDATA[gel isolante]]></category>
		<category><![CDATA[gel poliuretanico]]></category>
		<category><![CDATA[hardware industriale]]></category>
		<category><![CDATA[isolamento termico]]></category>
		<category><![CDATA[laboratorio elettronico]]></category>
		<category><![CDATA[microcontrollore]]></category>
		<category><![CDATA[monitoraggio temperatura]]></category>
		<category><![CDATA[progettazione embedded]]></category>
		<category><![CDATA[progettazione hardware]]></category>
		<category><![CDATA[progettazione robusta]]></category>
		<category><![CDATA[progetti ingegneristici]]></category>
		<category><![CDATA[protezione umidità]]></category>
		<category><![CDATA[raspberry pi]]></category>
		<category><![CDATA[sensore umidità]]></category>
		<category><![CDATA[stress test elettronico]]></category>
		<category><![CDATA[sviluppo dispositivi embedded]]></category>
		<category><![CDATA[temperatura CPU]]></category>
		<category><![CDATA[test termici]]></category>
		<guid isPermaLink="false">https://renor.it/?p=714</guid>

					<description><![CDATA[<p>Per un nostro cliente stiamo sviluppando un dispositivo da installare all&#8217;interno di celle frigorifere e camion refrigerati, con il compito di monitorare costantemente temperatura e umidità per garantire il mantenimento della catena del freddo. Un progetto che, sulla carta, potrebbe sembrare piuttosto semplice: un microcontrollore, un sensore per rilevare temperatura e umidità, è uno script [&#8230;]</p>
<p>L'articolo <a href="https://renor.it/blog/marketing-business-digitale/i-progetti-che-ci-piacciono/">I progetti che ci piacciono</a> proviene da <a href="https://renor.it">RENOR &amp; Partners S.r.l.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Per un nostro cliente stiamo sviluppando un dispositivo da installare all&#8217;interno di celle frigorifere e camion refrigerati, con il compito di monitorare costantemente temperatura e umidità per garantire il mantenimento della catena del freddo. </p>



<p>Un progetto che, sulla carta, potrebbe sembrare piuttosto semplice: un microcontrollore, un sensore per rilevare temperatura e umidità, è uno script Python che invia i dati al cloud a intervalli regolari.<br>Perfetto no? No proprio! Se lo realizzassimo così, avrebbe vita molto breve. Come si suol dire&#8230; Durerebbe <em>&#8220;da Natale a Santo Stefano&#8221;.</em></p>



<p>Perché? Il motivo è presto detto: elettronica ed umidità non sono mai andate d&#8217;accordo e nelle celle frigorifere industriali le temperature possono facilmente scendere sotto i -20°C. Un bel freddino insomma&#8230;</p>



<h2 class="wp-block-heading">Soluzioni di primo impatto?</h2>



<p>La prima azione concreta è stata quella di cercare sul mercato componenti hardware pensati espressamente per ambienti ostili, in grado di operare in un range termico particolarmente esteso. </p>



<p>Una delle opzioni più interessanti è il Compute Module 4 in versione Extended Temperature, recentemente introdotto dalla Raspberry Foundation. Questo modulo è certificato per funzionare in un intervallo che va da -40°C fino a +85°C.<br>Al superamento della soglia superiore, entra in funzione un meccanismo automatico di riduzione del clock, utile per contenere l&#8217;innalzamento termico e mantenere il sistema stabile, sacrificando però la velocità di elaborazione. </p>



<h2 class="wp-block-heading">Problema già risolto dunque?</h2>



<p>In parte si, abbiamo affrontato e risolto il tema della temperatura, ma quello dell&#8217;umidità resta ancora aperto. Per proteggere l&#8217;elettronica in modo efficace da condensa, infiltrazioni e agenti esterni, serve un accorgimento in più.</p>



<p>La soluzione adottata consiste nell&#8217;immergere l&#8217;intera circuiteria in un gel isolante elettrico, più precisamente un gel poliuretanico bicomponente a bassa viscosità, concepito per sigillare e proteggere scatole di derivazione, connettori e PCB da acqua, umidità, polveri e altri fattori ambientali critici. </p>



<p>A prima vista sembra una soluzione definitiva: basta acquistare il giusto bicomponente, applicarlo e il problema dell&#8217;umidità sembrerebbe risolto.<br>Ma anche qui, la realtà è ben diversa&#8230;</p>



<h2 class="wp-block-heading">Risolto un problema se ne ripresenta un altro</h2>



<p>Nel momento in cui abbiamo risolto il problema dell&#8217;umidità, si è ripresentato sotto nuova veste quello della gestione termica. </p>



<p>Già, perché il gel isolante, oltre a schermare dall&#8217;umidità è anche un ottimo isolante termico. Questo significa che, una volta immersa l&#8217;elettronica nel gel, lo scambio di calore con l&#8217;esterno diventa estremamente inefficiente. </p>



<p>Anche se il dispositivo si trova in un ambiente a -20°C, la temperatura della CPU tende comunque a salire rapidamente, perché il calore generato non riesce a dissiparsi in modo efficace. </p>



<p>Per evitare che il sistema vada incontro a surriscaldamento e throttling termico, è necessario introdurre un ulteriore elemento ingegneristico. </p>



<h2 class="wp-block-heading">Il dissipatore passivo</h2>



<p>Per risolvere in modo efficace il problema della dissipazione termica all&#8217;interno del gel isolante, è necessario integrare un dissipatore passivo progettato ad hoc. </p>



<p>Questo dissipatore deve essere montato direttamente a contatto con il SoC, accoppiato mediante pasta termoconduttiva per garantire una trasmissione ottimale del calore; parzialmente immerso nel gel, ma con una superficie a diretto contatto con l&#8217;ambiente esterno, in modo da favorire la cessione del calore all&#8217;aria fredda della cella frigorifera. </p>



<p>Questa soluzione ci consente di trasferire il calore generato dal SoC verso l&#8217;esterno, aggirando l&#8217;effetto isolante del gel. Ma prima di procedere è fondamentale porsi alcune domande ingegneristiche chiave, indispensabili per dimensionare correttamente il sistema: </p>



<ul class="wp-block-list">
<li>A quale temperatura desideriamo mantenere il SoC durante il funzionamento? L&#8217;obiettivo è evitare sia la formazione di condensa (che si verifica a temperature troppo basse), sia il superamento della soglia critica di 85°C, che attiverebbe il thermal throttling. </li>



<li>Quale deve essere la superficie di contatto tra dissipatore e CPU per garantire un trasferimento di calore efficace senza scendere eccessivamente di temperatura? Questo valore dipende dalla potenza termica generata, dal materiale utilizzato per il dissipatore e dalla differenza di temperatura tra SoC e ambiente esterno. </li>



<li>Quanta potenza dissipa effettivamente il SoC di un Compute Module 4 in condizioni di pieno carico? In base ai nostri test, la dissipazione termica a pieno regime è di circa 6 watt. Questo dato è fondamentale per calcolare correttamente la superficie del dissipatore necessaria per mantenere il sistema entro i limiti termici desiderati. </li>
</ul>



<p>Solo dopo aver risposto con precisione a queste domande è possibile passare alla fase successiva: il calcolo termico vero e proprio, che ci permetterà di dimensionare correttamente l&#8217;interfaccia dissipante e di garantire la stabilità del dispositivo anche in condizioni ambientali estreme. </p>



<h2 class="wp-block-heading">Dimensionamento della superficie a contatto col SoC</h2>



<p>Sebbene il <strong>Compute Module 4 Extended Temperature (CM4ET)</strong> sia certificato per operare in un range che arriva fino a <strong>-40 °C</strong>, è opportuno evitare che il <strong>die</strong> lavori a temperature eccessivamente basse durante il pieno carico, per scongiurare il rischio di <strong>formazione di condensa</strong> nelle immediate vicinanze dell’elettronica.</p>



<p>Quando il CM4ET è sotto pieno carico, dissipa approssimativamente <strong>6 watt</strong> di potenza termica. Questo calore deve essere trasferito dal die del SoC all’ambiente esterno, ovvero l’aria fredda della cella frigorifera.</p>



<p>Ma attenzione: anche qui serve equilibrio.</p>



<ul class="wp-block-list">
<li>Se il <strong>dissipatore</strong> è <strong>troppo efficiente</strong>, c’è il rischio che il die scenda sotto i <strong>-20 °C</strong>, cosa da evitare per evitare fenomeni di condensazione localizzata.</li>



<li>Se invece il <strong>dissipatore è insufficiente</strong>, ovvero il calore prodotto dalla CPU è superiore a quello che il dissipatore riesce a smaltire, la temperatura salirà progressivamente fino a raggiungere gli <strong>85 °C</strong>, soglia oltre la quale entra in gioco il <strong>thermal throttling</strong>.</li>
</ul>



<p>L’obiettivo è quindi mantenere il SoC in un range termico sicuro e stabile. Una <strong>temperatura target di circa -5 °C</strong> è ragionevole, considerando che l’ambiente esterno può arrivare fino a <strong>-22 °C</strong>.</p>



<p>Per ottenere questo equilibrio, dobbiamo dimensionare correttamente la <strong>superficie di contatto del dissipatore</strong>. L’analisi si basa sulla conduzione stazionaria del calore, modellata dalla seguente equazione:</p>



<p><img loading="lazy" decoding="async" src="https://renor.it/wp-content/ql-cache/quicklatex.com-1f2248a50cb345dc4cb9b11b95cbf3cc_l3.png" class="ql-img-inline-formula quicklatex-auto-format" alt="&#81;&#32;&#61;&#32;&#102;&#114;&#97;&#99;&#123;&#107;&#32;&#99;&#100;&#111;&#116;&#32;&#65;&#32;&#99;&#100;&#111;&#116;&#32;&#68;&#101;&#108;&#116;&#97;&#32;&#84;&#125;&#123;&#76;&#125;" title="Rendered by QuickLaTeX.com" height="17" width="230" style="vertical-align: -4px;"/></p>



<p>dove:</p>



<ul class="wp-block-list">
<li><img loading="lazy" decoding="async" src="https://renor.it/wp-content/ql-cache/quicklatex.com-2c758bec4c272382411b95fc0e7ee250_l3.png" class="ql-img-inline-formula quicklatex-auto-format" alt="&#81;" title="Rendered by QuickLaTeX.com" height="16" width="14" style="vertical-align: -4px;"/> è la potenza termica trasferita (in watt),</li>



<li><img loading="lazy" decoding="async" src="https://renor.it/wp-content/ql-cache/quicklatex.com-3422b6bb5c160593658b7c39425d9880_l3.png" class="ql-img-inline-formula quicklatex-auto-format" alt="&#107;" title="Rendered by QuickLaTeX.com" height="12" width="9" style="vertical-align: 0px;"/> è la conducibilità termica del materiale (in W/m·K),</li>



<li><img loading="lazy" decoding="async" src="https://renor.it/wp-content/ql-cache/quicklatex.com-25b206f25506e6d6f46be832f7119ffa_l3.png" class="ql-img-inline-formula quicklatex-auto-format" alt="&#65;" title="Rendered by QuickLaTeX.com" height="13" width="13" style="vertical-align: 0px;"/> è l’area della sezione trasversale (in m²),</li>



<li><img loading="lazy" decoding="async" src="https://renor.it/wp-content/ql-cache/quicklatex.com-66a9f474fc3c52efdfb0ba6a70199ee8_l3.png" class="ql-img-inline-formula quicklatex-auto-format" alt="&#76;" title="Rendered by QuickLaTeX.com" height="12" width="12" style="vertical-align: 0px;"/> è lo spessore del materiale (in m),</li>



<li><img loading="lazy" decoding="async" src="https://renor.it/wp-content/ql-cache/quicklatex.com-1a6805cecadefe654fa92cfe022289cd_l3.png" class="ql-img-inline-formula quicklatex-auto-format" alt="&#68;&#101;&#108;&#116;&#97;&#32;&#84;" title="Rendered by QuickLaTeX.com" height="12" width="57" style="vertical-align: 0px;"/> è la differenza di temperatura tra i due lati (in K).</li>
</ul>



<p>Risolvendo l’equazione per l’area A:</p>



<p><img loading="lazy" decoding="async" src="https://renor.it/wp-content/ql-cache/quicklatex.com-75f67fc1cdefe9bc536b8d5e5810a479_l3.png" class="ql-img-inline-formula quicklatex-auto-format" alt="&#65;&#32;&#61;&#32;&#102;&#114;&#97;&#99;&#123;&#80;&#32;&#99;&#100;&#111;&#116;&#32;&#76;&#125;&#123;&#107;&#32;&#99;&#100;&#111;&#116;&#32;&#68;&#101;&#108;&#116;&#97;&#32;&#84;&#125;" title="Rendered by QuickLaTeX.com" height="17" width="230" style="vertical-align: -4px;"/></p>



<p>Questa formula ci consente di calcolare l’<strong>area minima necessaria</strong> affinché, dissipando la potenza <img loading="lazy" decoding="async" src="https://renor.it/wp-content/ql-cache/quicklatex.com-650eb7688af6737ac325425b5c9a5982_l3.png" class="ql-img-inline-formula quicklatex-auto-format" alt="&#80;" title="Rendered by QuickLaTeX.com" height="12" width="14" style="vertical-align: 0px;"/>, la differenza di temperatura tra il die e l’ambiente sia pari a <img loading="lazy" decoding="async" src="https://renor.it/wp-content/ql-cache/quicklatex.com-1a6805cecadefe654fa92cfe022289cd_l3.png" class="ql-img-inline-formula quicklatex-auto-format" alt="&#68;&#101;&#108;&#116;&#97;&#32;&#84;" title="Rendered by QuickLaTeX.com" height="12" width="57" style="vertical-align: 0px;"/>.</p>



<p>Inserendo i valori noti:</p>



<ul class="wp-block-list">
<li><img loading="lazy" decoding="async" src="https://renor.it/wp-content/ql-cache/quicklatex.com-8f9d0df112260e98ffa0fdfb87dfe3a2_l3.png" class="ql-img-inline-formula quicklatex-auto-format" alt="&#80;&#32;&#61;&#32;&#54;&#44;&#87;" title="Rendered by QuickLaTeX.com" height="16" width="73" style="vertical-align: -4px;"/></li>



<li><img loading="lazy" decoding="async" src="https://renor.it/wp-content/ql-cache/quicklatex.com-3f2d8ddf38e2b39170edb810a14890d5_l3.png" class="ql-img-inline-formula quicklatex-auto-format" alt="&#76;&#32;&#61;&#32;&#48;&#123;&#44;&#125;&#48;&#48;&#54;&#55;&#53;&#44;&#109;" title="Rendered by QuickLaTeX.com" height="17" width="117" style="vertical-align: -4px;"/></li>



<li><img loading="lazy" decoding="async" src="https://renor.it/wp-content/ql-cache/quicklatex.com-e28e11959016ffa97c16e806bceddb6a_l3.png" class="ql-img-inline-formula quicklatex-auto-format" alt="&#107;&#32;&#61;&#32;&#50;&#48;&#53;&#44;&#87;&#47;&#109;&middot;&#75;" title="Rendered by QuickLaTeX.com" height="19" width="126" style="vertical-align: -5px;"/> (conducibilità dell’alluminio puro)</li>



<li><img loading="lazy" decoding="async" src="https://renor.it/wp-content/ql-cache/quicklatex.com-d4be30e7907f71dd5ed61f74a9865659_l3.png" class="ql-img-inline-formula quicklatex-auto-format" alt="&#68;&#101;&#108;&#116;&#97;&#32;&#84;&#32;&#61;&#32;&#49;&#55;&#44;&#75;" title="Rendered by QuickLaTeX.com" height="17" width="123" style="vertical-align: -4px;"/> (cioè da -5 °C a -22 °C)</li>
</ul>



<p>otteniamo:</p>



<p><img loading="lazy" decoding="async" src="https://renor.it/wp-content/ql-cache/quicklatex.com-18885a94bb40cf6b8eb0c1a5164bdd1a_l3.png" class="ql-img-inline-formula quicklatex-auto-format" alt="&#65;&#32;&#61;&#32;&#102;&#114;&#97;&#99;&#123;&#54;&#32;&#99;&#100;&#111;&#116;&#32;&#48;&#123;&#44;&#125;&#48;&#48;&#54;&#55;&#53;&#125;&#123;&#50;&#48;&#53;&#32;&#99;&#100;&#111;&#116;&#32;&#49;&#55;&#125;&#32;&#61;&#32;&#49;&#123;&#44;&#125;&#49;&#54;&#50;&#32;&#99;&#100;&#111;&#116;&#32;&#49;&#48;&#94;&#123;&#45;&#53;&#125;&#44;&#116;&#101;&#120;&#116;&#123;&#109;&#125;&#94;&#50;&#32;&#61;&#32;&#109;&#97;&#116;&#104;&#98;&#102;&#123;&#49;&#49;&#123;&#44;&#125;&#54;&#50;&#44;&#109;&#109;&#94;&#50;&#125;" title="Rendered by QuickLaTeX.com" height="41" width="582" style="vertical-align: -4px;"/></p>



<p>Questa è la <strong>superficie minima teorica</strong> del dissipatore a contatto diretto con il SoC necessaria per mantenere la temperatura nei limiti desiderati.</p>



<p>Naturalmente, questo valore è ideale e calcolato in condizioni perfettamente statiche; nella pratica, <strong>è consigliabile considerare un margine di sicurezza</strong>, sia per tolleranze meccaniche sia per l’effetto di strati intermedi (come il gel isolante o le interfacce in plastica).</p>



<h2 class="wp-block-heading">Realizzazione del modello 3D del dissipatore</h2>



<p>Per motivi legati a vincoli contrattuali con il cliente, non è possibile mostrare immagini o schemi del progetto. Tuttavia, posso fornire alcune informazioni utili sul dimensionamento finale. </p>



<p>Alla fine del processo di modellazione e produzione, la superficie di contatto utile del dissipatore è risultata pari a circa 13 mm². Un valore leggermente superiore rispetto al minimo teorico calcolato, docuto a limitazioni meccaniche legate alla realizzazione CNC. </p>



<p>Questa superficie rientra comunque in un margine accettabile, sufficiente per evitare che la temperatura del SoC scenda troppo sotto i valori desiderati, prevenendo così la formazione di condensa. </p>



<p>Per ottimizzare ulteriormente il trasferimento termico, il dissipato è stato posizionato nella parte inferiore del contenitore, con la maggior parte della sua superficie al di sotto della plastica dell&#8217;enclosure. In pratica, solo una piccola parte è a contatto diretto con l&#8217;aria fredda della cella frigorifera essendo separato da essa da uno strato di plastica da 2 mm. </p>



<p>Va sempre ricordato poi che esiste una differenza sostanziale tra calcoli teorici e comportamento reale in esercizio: i primi servono a dare una base progettuale solida, ma è solo con la sperimentazione diretta che si verifica l&#8217;effettiva affidabilità della soluzione. Nel nostro caso, entro i margini previsti, la progettazione si è dimostrata efficace. </p>



<h2 class="wp-block-heading">Test</h2>



<p>Per validare il progetto ho effettuato un test sperimentale casalingo, inserendo l&#8217;intero dispositivo all&#8217;interno del congelatore domestico, impostato alla temperatura più bassa disponibile. Purtroppo non è stato possibile raggiungere i -22°C delle celle industriali ma solo i -17°C, ma la prova ha comunque fornito dati molto utili per valutare il comportamento termico in condizioni reali. </p>



<p>Il testo è stato strutturato su una durata di 60 minuti, con campionamento ogni secondo e dopo la stabilizzazione in idle. <br>Durante il test abbiamo monitorato:</p>



<ul class="wp-block-list">
<li>La temperatura del SoC</li>



<li>La temperatura interna all&#8217;enclosure tramite un sensore I2C</li>



<li>La temperatura sulla superficie esterna del dissipatore, misurata tramite una termocoppia posizionata tra il dissipatore stesso e la plastica dell&#8217;enclosure. </li>
</ul>



<p>Dopo circa 30 minuti, tutte le temperature si erano già stabilizzate. </p>



<p>In fase di idle, la temperatura massima della CPU ha raggiunto i 12,5°C. A questo punto, una volta constatata la stabilizzazione, ho avviato lo stress test e fatto partire il cronometro per i successivi 60 minuti. </p>



<p>Al termine del test sotto carico, i valori rilevati sono stati i seguenti: </p>



<ul class="wp-block-list">
<li>Temperatura massima della CPU: 38,7°C</li>



<li>Temperatura interna all&#8217;enclosure: -1.3°C</li>



<li>Temperatura sulla superficie esterna dello scambiatore: -11,4°C</li>
</ul>



<figure class="wp-block-image"><img decoding="async" src="https://lh7-rt.googleusercontent.com/docsz/AD_4nXe46OuitIfCuSBnthk_5aCCCSvHsf6rDIB3HpNv4cWcYKOhkyWRb-Qp6NqvYV_p_yV6zLkfxHUp2IRrjB-_RTZFUaKFXpBxoJWgqAL5VAbSgOUXTf_W1XSjkGGl1zCy3EtRJd-LIQ?key=kyUELbgsfh6G37D0pACCEA" alt=""/></figure>



<h2 class="wp-block-heading">Conclusione</h2>



<p>I dati ottenuti confermano che la CPU lavora entro un range termico sicuro, la temperatura operativa non scende sotto i livelli critici per la condensa, l&#8217;elettronica risulta protetta anche in condizioni ambientali estreme, il sistema si dimostra stabile e bilanciato con un&#8217;efficace gestione passiva della dissipazione termica. La configurazione scelta è quindi idonea per un funzionamento continuativo, anche in ambienti refrigerati spinti, senza rischio di guasti, condensazione o throttling termico. </p>



<p>Questi sono i progetti che ci appassionano davvero. Quelli che ti costringono a ragionare, a metterti alla prova, a cercare soluzioni fuori dagli schemi. Progetti che non si risolvono con una libreria importata o un sensore standard, ma che richiedono ingegno, sperimentazione e multidisciplinarità che spazia tra elettronica, fisica, termodinamica e progettazione meccanica. </p>



<p>Sono proprio queste sfide a lasciarti, ogni volta, con un bagaglio tecnico e culturale più ricco, che finisce per tornarti utile nei contesti più inaspettati. <br>E alla fine, quando tutto funziona come deve, la soddisfazione è doppia!</p>
<p>L'articolo <a href="https://renor.it/blog/marketing-business-digitale/i-progetti-che-ci-piacciono/">I progetti che ci piacciono</a> proviene da <a href="https://renor.it">RENOR &amp; Partners S.r.l.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>L&#8217;AI che sa tutto di te</title>
		<link>https://renor.it/blog/intelligenza-artificiale-algoritmi/lai-che-sa-tutto-di-te/</link>
		
		<dc:creator><![CDATA[Simone Renzi]]></dc:creator>
		<pubDate>Fri, 30 May 2025 17:29:36 +0000</pubDate>
				<category><![CDATA[Intelligenza Artificiale & Algoritmi]]></category>
		<category><![CDATA[AI generativa]]></category>
		<category><![CDATA[analisi comportamentale]]></category>
		<category><![CDATA[analisi profilo]]></category>
		<category><![CDATA[analisi SWOT]]></category>
		<category><![CDATA[autoanalisi]]></category>
		<category><![CDATA[carriera]]></category>
		<category><![CDATA[ChatGPT]]></category>
		<category><![CDATA[deep search]]></category>
		<category><![CDATA[enneatipo]]></category>
		<category><![CDATA[futuro del lavoro]]></category>
		<category><![CDATA[GPT-4]]></category>
		<category><![CDATA[intelligenza artificiale]]></category>
		<category><![CDATA[investigazione AI]]></category>
		<category><![CDATA[MBTI]]></category>
		<category><![CDATA[openAI]]></category>
		<category><![CDATA[profiling AI]]></category>
		<category><![CDATA[prompt engineering]]></category>
		<category><![CDATA[reputazione online]]></category>
		<category><![CDATA[ricerca automatizzata]]></category>
		<category><![CDATA[scouting commerciale]]></category>
		<category><![CDATA[selezione personale]]></category>
		<category><![CDATA[strumenti HR]]></category>
		<category><![CDATA[strumenti per recruiter]]></category>
		<category><![CDATA[valutazione candidati]]></category>
		<guid isPermaLink="false">https://renor.it/?p=703</guid>

					<description><![CDATA[<p>Oggi scopriamo come l&#8217;intelligenza artificiale possa restituire, tramite una &#8220;Deep Search&#8221;, in pochi minuti, una panoramica completa, ordinata e professionale su chiunque: competenze, carriera, presenza online, punti di forza e criticità, in modo automatizzato e senza dover perdere ore in ricerche manuali. Introduzione Fino a ieri, per ottenere un profilo dettagliato su una persona, che [&#8230;]</p>
<p>L'articolo <a href="https://renor.it/blog/intelligenza-artificiale-algoritmi/lai-che-sa-tutto-di-te/">L&#8217;AI che sa tutto di te</a> proviene da <a href="https://renor.it">RENOR &amp; Partners S.r.l.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Oggi scopriamo come l&#8217;intelligenza artificiale possa restituire, tramite una &#8220;Deep Search&#8221;, in pochi minuti, una panoramica completa, ordinata e professionale su chiunque: competenze, carriera, presenza online, punti di forza e criticità, in modo automatizzato e senza dover perdere ore in ricerche manuali. </p>



<h2 class="wp-block-heading">Introduzione</h2>



<p>Fino a ieri, per ottenere un profilo dettagliato su una persona, che si trattasse di un potenziale partner, un candidato, un investitore o un competitor, dovevi svolgere ricerche che potevano richiedere ore tra LinkedIn, Google, articoli, Curriculum, social network, database aziendali, ecc. Oggi, grazie all&#8217;Intelligenza Artificiale Generativa e in particolare alla funzione &#8220;Deep Search&#8221; presente su ChatGPT e altri brand, è possibile automatizzare questo processo in modo sorprendentemente efficace. </p>



<p>Questo articolo ti spiega passo dopo passo come funziona questa tecnologia, quali vantaggi offre rispetto alle ricerche tradizionali, quali accortezze adottare per ottenere risultati utili e come integrarla nei propri flussi di lavoro che attualmente (maggio 2025) non possono essere automatizzati.</p>



<h2 class="wp-block-heading">Cos&#8217;è Deep Search</h2>



<p>Deep Search è un insieme di tecniche di prompt engineering e contestualizzazione che permettono di ottenere da ChatGPT un&#8217;analisi dettagliata e multidimensionale su un soggetto (persona, azienda, o qualsiasi altra chiave di ricerca), generando una risposta strutturata che include, nel caso di persone ad esempio, aspetti biografici, comportamentali, psicologici, professionali e comunicativi. </p>



<p>Ad esempio a partire da un prompt tipo: </p>



<p><em>&#8220;Analizza Mario Rossi (mariorossi.com)&#8221;</em></p>



<p>Può restituire: una sintesi del profilo professionale, i punti di forza e di debolezza, il tipo MBTI (Myers-Briggs), l&#8217;enneatipo psicologico, lo stile decisionale, un&#8217;analisi SWOT, il tono comunicativo prevalente, un pitch da presentare a investitori, una stima della reputazione online percepita. </p>



<p>Tutto ciò viene generato in base a informazioni note nella base di dati del modello, inferenze basate su pattern di comportamento comuni e coerenza interna con il prompt iniziale. </p>



<p>È evidente che un&#8217;analisi di questo tipo risulti possibile soltanto laddove esista materiale reperibile online da cui l&#8217;intelligenza artificiale possa attingere informazioni. In ogni caso, tale attività non costituisce una violazione della privacy della persona, proprio perché si fonda esclusivamente si dati di dominio pubblico già disponibili in rete. </p>



<h3 class="wp-block-heading">Differenza tra prompt semplice e Deep Search contestuale</h3>



<p>Nel mondo dell&#8217;intelligenza artificiale generativa, non tutti i prompt sono uguali. Un prompt semplice è una richiesta diretta, spesso formulata in una sola frase, che restituisce una risposta istantanea ma generalmente superficiale. Al contrario, il <strong>Deep Search contestuale</strong> rappresenta un approccio molto più raffinato e potente: si basa su una conversazione guidata, stratificata, in cui l&#8217;utente costruisce il contesto pezzo dopo pezzo, orientando l&#8217;AI verso un&#8217;analisi profonda e coerente. È come la differenza tra chiedere &#8220;Chi è Mario Rossi?&#8221; e domandare &#8220;Costruisci un profilo professionale e psicologico di Mario Rossi, CEO nel settore fintech, analizzandone punti di forza, debolezze, stile decisionale e impatto comunicativo&#8221;. La seconda modalità, attivabile comunque selezionando l&#8217;apposito switch, è detta appunto Deep Search, e non si limita a elencare fatti, ma interpreta, connette e deduce, offrendo una sintesi complessa che unisce biografia, attitudini e potenziale evolutivo. È la forma più vicina a un&#8217;intervista immaginaria condotta con metodo e intelligenza. </p>



<h3 class="wp-block-heading">Il concetto di inferenza a partire da parziali</h3>



<p>Uno degli aspetti più affascinanti dell&#8217;intelligenza artificiale di ultima generazione è la sua capacità di inferire informazioni complesse anche a partire da dati minimi o incompleti. Questo processo, noto come <strong>inferenza da dati parziali</strong>, si fonda sull&#8217;abilità del modello di riconoscere pattern ricorrenti all&#8217;interno di vasti insiemi di conoscenze già acquisite durante l&#8217;addestramento. In altre parole, l&#8217;AI non ha bisogno di sapere &#8220;tutto&#8221; per ricostruire un quadro verosimile: bastano pochi indizi, un nome, un ruolo, una società, per attivare un meccanismo deduttivo capace di generare una rappresentazione coerente e strutturata della persona o del contesto in esame. Non si tratta di fantasia, ma di plausibilità costruita su logiche statistiche e relazioni probabilistiche tra elementi di informazione. </p>



<p>Questo rende l&#8217;intelligenza artificiale non solo uno strumento consultivo, ma un sintetizzatore cognitivo che è in grado di simulare una conoscenza approfondita anche quando il punto di partenza è estremamente frammentario. </p>



<h3 class="wp-block-heading">Come ChatGPT combina fonti note, pattern e logica deduttiva</h3>



<p>Cominciamo col dire che a differenza dei prompt tradizionali che si basano unicamente sulle informazioni memorizzate nel modello, la funzione Deep Search di ChatGPT sfrutta un componente aggiuntivo estremamente potente: la navigazione in tempo reale su internet. Quando si attiva il Deep Search, l&#8217;AI accede direttamente al web attraverso Bing, cercando fonti aggiornate e pertinenti per costruire una risposta fondata non solo su interenze statistiche, ma anche su dati attuali, dichiarazioni ufficiali, profili social, articoli di stampa e fonti autorevoli. Questo le permette di aggiornare e ragginare continuamente il profilo analizzato, incorciando fonti note, pattern ricorrenti e logica deduttiva. Il risultato è una rappresentazione profondamente contestualizzata, che unisce l&#8217;immediatezza dell&#8217;intelligenza generativa con la precisione della ricerca documentale su web, mantenendo un equilibri tra deduzione e verifica. È questa sinergia tra AI e Web Crawling intelligente che rende il Deep Search uno strumento senza precedenti per ottenere informazioni strategiche su persone, aziende o fenomeni in tempo reale. </p>



<h2 class="wp-block-heading">In quali contesti può tornare utile fare un Profilo AI</h2>



<p>L&#8217;intelligenza Artificiale non ha sentimenti e si limita a fornire analisi oggettive rispetto alle informazioni che trova online. Tra i contesti in cui può tornare utile troviamo: </p>



<h3 class="wp-block-heading">Quando la usiamo a livello personale</h3>



<p>L&#8217;analisi tramite Deep Search può rivelarsi estremamente preziosa a livello personale. Chiedere all&#8217;intelligenza artificiale una valutazione netrua e contestualizzata del proprio profilo, permette di osservare sé stessi con uno sguoardo esterno, asettico e senza emotività alcuna. Questo tipo di autoriflessione assistita può aiutare a mettere in luce punti di forza spesso sottovalutati, ma soprattutto a identificare con chiarezza le aree di miglioramento, gli atteggiamenti disfunzionali o i limiti comportamentali che ostacolano la crescita personale o professionale. È come tenere uno specchio davanti alla propria figura, ma con l&#8217;obiettività analitica di uno strumento che non giudica: osserva, elabora e propone spunti costruttivi. </p>



<p>Certamente bisogna essere pronti a ricevere anche delle critiche, che potrebbero mettere in luce aspetti poco valorizzati o addirittura fragilità che si tende a ignorare.  In buona sostanza bisogna pensare che un&#8217;analisi condotta da un sistema che non è influenzato da affetti non restituisce un giudizio, ma un qualcosa che può tornarci utile per evolvere. Serve lucidità, apertura mentale e senso di autocritica.</p>



<h3 class="wp-block-heading">Quando la usiamo nella fase intermedia di colloqui di lavoro</h3>



<p>Nel processo di selezione per ruoli ingegneristici, dove il recruiting si articola in più fasi, l&#8217;introduzione del Deep Search può rappresentare un valido supporto nella fase intermedia del percorso. Dopo l&#8217;analisi curriculare e il primo colloquio conoscitivo, e prima del colloquio tecnico è possibile inserire una fase di analisi approfondita tramite intelligenza artificiale. In questo momento il recruiter può fornire a ChatGPT le informazioni già emerse durante il colloquio (come risposte fornite, atteggiamenti osservati, impressioni preliminari), arricchendole con una ricerca aggiornata sul web. Il modello è così in grado di restituire una valutazione neutra, contestuale e ragionata del candidato, evidenziandone la coerenza tra immagine online e comunicazione personale, le competenze trasversali potenzialmente non dichiarate, lo stile relazionale e la compatibilità culturale con l&#8217;azienda. Questo approccio non sostituisce il giudizio umano, ma lo affianca con una lente analitica oggettiva, utile per prendere decisioni più informate e complete. </p>



<h3 class="wp-block-heading">Quando la vogliamo usare per applicazioni in ambito investigativo, legale o accademico</h3>



<p>Oltre all&#8217;utilizzo in ambito personale, HR e commerciale, la funzione di Deep Search trova applicazioni interessanti anche in contesti investigativi, legali e accademici. Nel settore investigativo, può essere impiegata per costruire profili preliminari su soggetti di interesse, ricostruendo connessioni, attività pregresse, tracce digitali e comportamenti pubblicamente documentati, il tutto senza accedere ad archivi riservati o violare la privacy. In ambito legale, può supportare gli avvocati o i consulenti tecnici nella raccolta contestuale di informazioni pubbliche su controparti, testimoni, esperti o aziende coinvolte in procedimenti, fornendo un quadro sintetico ma strutturato che agevola l&#8217;impostazione delle controparti, testimoni, esperti o aziende coinvolte in procedimenti, fornendo un quadro sintetico ma strutturato che agevola l&#8217;impostazione delle strategie difensive o negoziali. Sul versante accademico, invece, il Deep Search si rivela utile per analizzare rapidamente il profilo di autori, studiosi o ricercatori, generare panoramiche bibliografiche di base o confrontare approcci teorici tra scuole di pensiero. Naturalmente in tutti questi casi è fondamentale ricordare che l&#8217;AI si limita a rielaborare informazioni pubblicamente accessibili, restituendo interpretazioni plausibili e ordinate, ma non certificazioni né prove giuridicamente valide. È uno strumento di supporto e orientamento, non un sostituto delle fonti ufficiali. </p>



<h2 class="wp-block-heading">Posso chiedere altro?</h2>



<p>Certamente si, una volta effettuata la ricerca è possibile richiedere qualsiasi altro tipo di informazione deducibile dalla ricerca profonda effettuata. </p>



<p>Ad esempio: <em>&#8220;Forniscimi un&#8217;analisi SWOT di Mario rossi&#8221;</em>. </p>



<p>Il modello elaborerà quindi punti di forza, debolezza, opportunità e minacce, in relazione al contesto professionale, alla posizione attuale e alle competenze dichiarate o dedotte. Ma non ci si ferma qui: si può proseguire chiedendo una valutazione del tipo di leadership, una simulazione di colloquio comportamentale, un pitch da presentare a potenziali investitori, oppure un&#8217;analisi di compatibilità culturale con una determinata azienda. </p>



<p>Questo rende il Deep Search non un semplice strumento informativo, ma un ambiente di dialogo strategico, dove ogni informazione diventa il punto di partenza per una nuova inferenza, una nuova visione, un nuovo scenario di utilizzo, completamente personalizzabile in base agli obiettivi di chi lo utilizza. </p>



<h2 class="wp-block-heading">Conclusioni</h2>



<p>L&#8217;introduzione del Deep Search nelle interazioni con l&#8217;AI rappresenta un salto di qualità nell&#8217;uso quotidiano dei modelli generativi. Non si tratta più di semplici risposte a domande puntuali, ma di vere e proprie analisi strutturate, condate su un mix di ricerca web in tempo reale, inferenza deduttiva e modellazione cognitiva. Che si tratti di selezione del personale, scouting commerciale, indagini conoscitive, autoanalisi o supporto accademico, Deep Search consente di accorciare i tempi, aumentare la profondità e ampliare la prospettiva con cui si osservano individui e contesti. Come ogni strumento potente, richiede un uso consapevole, responsabile e integrato nel quadro etico e normativo vigente. Ma per chi sa porre le domande giuste e ha il coraggio di ascoltare anche le risposte più scomode, l&#8217;AI può diventare un alleato straordinario nella comprensione del mondo e di sé stessi.</p>



<p>[starbox]</p>
<p>L'articolo <a href="https://renor.it/blog/intelligenza-artificiale-algoritmi/lai-che-sa-tutto-di-te/">L&#8217;AI che sa tutto di te</a> proviene da <a href="https://renor.it">RENOR &amp; Partners S.r.l.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>SpectraScan Gluten: il rilevatore tascabile di glutine per celiaci</title>
		<link>https://renor.it/blog/hardware-maker-innovazione/spectrascan-gluten-il-rilevatore-tascabile-di-glutine-per-celiaci/</link>
		
		<dc:creator><![CDATA[Simone Renzi]]></dc:creator>
		<pubDate>Sun, 25 May 2025 22:12:16 +0000</pubDate>
				<category><![CDATA[Hardware, Maker & Innovazione]]></category>
		<category><![CDATA[analizzatore alimenti]]></category>
		<category><![CDATA[celiachia]]></category>
		<category><![CDATA[cibo sicuro per celiaci]]></category>
		<category><![CDATA[contaminazione da glutine]]></category>
		<category><![CDATA[dieta gluten free]]></category>
		<category><![CDATA[dispositivi per celiaci]]></category>
		<category><![CDATA[glutine]]></category>
		<category><![CDATA[glutine nei cibi]]></category>
		<category><![CDATA[innovazione alimentare]]></category>
		<category><![CDATA[ppm glutine]]></category>
		<category><![CDATA[rilevatore glutine]]></category>
		<category><![CDATA[ristorazione e celiachia]]></category>
		<category><![CDATA[sensore glutine]]></category>
		<category><![CDATA[senza glutine]]></category>
		<category><![CDATA[sicurezza alimentare]]></category>
		<category><![CDATA[SpectraScan Gluten]]></category>
		<category><![CDATA[spettroscopia NIR]]></category>
		<category><![CDATA[strumenti per celiaci]]></category>
		<category><![CDATA[tecnologia per la salute]]></category>
		<category><![CDATA[test glutine]]></category>
		<guid isPermaLink="false">https://renor.it/?p=554</guid>

					<description><![CDATA[<p>Da circa sette anni convivo con la celiachia, una condizione che mi è stata diagnosticata dopo un lungo periodo di malessere diffuso e inspiegabile. I sintomi erano continui e debilitanti: gonfiore addominale, meteorismo persistente, reflusso acido al punto da togliermi la voce, fiato corto e disturbi intestinali frequenti. Come accade a molti, le prime risposte [&#8230;]</p>
<p>L'articolo <a href="https://renor.it/blog/hardware-maker-innovazione/spectrascan-gluten-il-rilevatore-tascabile-di-glutine-per-celiaci/">SpectraScan Gluten: il rilevatore tascabile di glutine per celiaci</a> proviene da <a href="https://renor.it">RENOR &amp; Partners S.r.l.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<p>Da circa sette anni convivo con la <strong>celiachia</strong>, una condizione che mi è stata diagnosticata dopo un lungo periodo di malessere diffuso e inspiegabile. I sintomi erano continui e debilitanti: <strong>gonfiore addominale</strong>, <strong>meteorismo persistente</strong>, <strong>reflusso acido</strong> al punto da togliermi la voce, <strong>fiato corto</strong> e <strong>disturbi intestinali frequenti</strong>. Come accade a molti, le prime risposte ricevute dai vari specialisti si sono limitate a cure palliative a base di gastroprotettori e procinetici. Ogni volta che sospendevo la terapia, bastavano pochi giorni per ritrovarmi punto e a capo.</p>



<p>A un certo punto ho deciso di rivolgermi al <strong>Prof. Antonino Gasbarrini</strong>, primario di Gastroenterologia al <strong>Policlinico Gemelli</strong> di Roma. Grazie a una valutazione completa, comprensiva di esami del sangue, test sierologici ed <strong>esame istologico su biopsia intestinale</strong>, è arrivata la diagnosi definitiva: <strong>celiachia conclamata</strong>.</p>



<p>Incredulo, ho dovuto accettare una nuova realtà: io, che per anni avevo mangiato pane, pasta e pizza senza problemi, avevo attivato, per una combinazione di fattori genetici e ambientali, la risposta autoimmune tipica della celiachia.</p>



<h2 class="wp-block-heading">Una pandemia silenziosa: oltre 80 milioni di celiaci nel mondo</h2>



<p>Secondo le stime più accreditate, nel mondo ci sono <strong>oltre 80 milioni di persone affette da celiachia</strong>, un numero superiore all’intera popolazione italiana. Se includiamo anche chi soffre di <strong>intolleranza al glutine non celiaca</strong>, la cifra complessiva raggiunge i <strong>500 milioni di individui</strong>. Un dato che conferma come il <strong>glutine</strong> sia diventato, per una fetta sempre più ampia della popolazione, <strong>un nemico invisibile ma reale</strong>.</p>



<p>Ma perché oggi si parla tanto di celiachia? In parte, la crescita apparente è legata al <strong>miglioramento dei test diagnostici</strong>: solo dagli anni ’80 sono disponibili esami sierologici affidabili come gli <strong>anticorpi anti-gliadina (AGA)</strong> e <strong>anti-endomisio (EMA)</strong>; e solo dagli anni 2000 si è diffuso l’uso degli <strong>anticorpi anti-transglutaminasi tissutale (tTG)</strong>, oggi considerati il gold standard per la diagnosi. Prima, molti pazienti celiaci venivano erroneamente classificati con “colon irritabile”, “intolleranza generica”, o non diagnosticati affatto.</p>



<p>Tuttavia, l’aumento non è solo statistico. Esistono fattori <strong>industriali e agricoli</strong> che hanno contribuito a un’esposizione maggiore al glutine. Le moderne varietà di grano sono state <strong>selezionate per contenere più glutine</strong>, al fine di migliorare elasticità, tenuta in cottura e resa nei processi industriali. Un esempio che toglie ogni dubbio? Chi ricorda la <strong>pasta degli anni ’90</strong> sa che bastava cuocerla un minuto in più per trovarsi con una buona colla per attaccare manifesti. Oggi, la pasta resta “al dente” molto più a lungo, e questo è merito (o colpa) di una <strong>presenza di glutine molto più elevata</strong> rispetto al passato. Nei soggetti geneticamente portati allo sviluppo della malattia celiaca questo aumenta notevolmente l&#8217;attivazione dei geni che portano alla malattia conclamata. Per parafrasare, sarebbe come se una persona è geneticamente soggetta a sviluppare il cancro ai polmoni e fuma tre pacchetti di sigarette al giorno. Questo stile di vita non fa altro che aumentare incredibilmente il rischio di sviluppare quella forma di cancro.</p>



<h2 class="wp-block-heading">Alla ricerca di una cura per la celiachia</h2>



<p>Chiunque riceva una diagnosi di <strong>celiachia</strong>, soprattutto se ha una minima familiarità con la tecnologia e Internet, compie quasi inevitabilmente lo stesso gesto: aprire Google e digitare frasi come <em>“cura definitiva per la celiachia”</em>, <em>“si può guarire dalla celiachia?”</em>, <em>“vaccino contro il glutine”</em>, oppure <em>“enzimi per mangiare alimenti con glutine senza star male”</em>.</p>



<p>È una reazione naturale: si cerca una via d’uscita, una soluzione, un rimedio che consenta di tornare a una vita normale, dove una pizza o un piatto di pasta non rappresentino un potenziale pericolo per la salute.</p>



<p>Purtroppo, ad oggi, <strong>non esiste una cura definitiva per la celiachia</strong>: l’unico trattamento efficace è la <strong>dieta rigorosamente priva di glutine</strong>, da seguire per tutta la vita. Tuttavia, la ricerca scientifica è molto attiva, e negli ultimi anni si sono moltiplicate le sperimentazioni su <strong>farmaci enzimatici</strong>, <strong>vaccini</strong> e <strong>terapie cellulari</strong> che potrebbero un giorno affiancare, o forse sostituire, la dieta gluten free.</p>



<p>Questa costante ricerca di soluzioni dimostra quanto sia diffusa, e spesso sottovalutata, la <strong>necessità di strumenti pratici, immediati e affidabili</strong> per rilevare il glutine negli alimenti prima di consumarli.</p>



<h2 class="wp-block-heading">Le strade della ricerca: farmaci in arrivo per la celiachia?</h2>



<p>Sebbene la celiachia oggi non abbia una cura definitiva, la comunità scientifica è al lavoro su diverse terapie sperimentali che potrebbero, in futuro, cambiare radicalmente la gestione della malattia. Dai farmaci inibitori, agli enzimi digestivi, passando per terapie cellulari e modulatori intestinali, le strade battute dalla ricerca sono numerose e in fase di sviluppo. </p>



<h3 class="wp-block-heading"><strong>ZED1227 – Inibitore della transglutaminasi 2</strong></h3>



<p>Uno dei candidati più promettenti è <strong>ZED1227</strong>, un farmaco orale che blocca l’enzima <strong>transglutaminasi 2 (TG2)</strong>, centrale nell’attivazione della risposta autoimmune al glutine. Ha <strong>completato con successo la Fase 2a</strong> degli studi clinici, dimostrando di poter prevenire i danni alla mucosa intestinale nei soggetti celiaci.</p>



<p><em>Se, e sottolineiamo </em><strong><em>se</em></strong><em>,</em><em> la Fase 3 confermerà l’efficacia, potrebbe arrivare sul mercato non prima di </em><strong><em>5 anni</em></strong><em>.</em></p>



<h3 class="wp-block-heading"><strong>Pillola a base di anticorpi del tuorlo d’uovo</strong></h3>



<p>Questa pillola innovativa utilizza <strong>anticorpi estratti dal tuorlo d’uovo</strong> per legare il glutine direttamente nell’intestino, impedendone l’assorbimento e quindi la reazione immunitaria. Ha <strong>superato i test di sicurezza</strong>, e i primi studi clinici sull’efficacia inizieranno a breve.</p>



<p><em>Potrebbe diventare disponibile in circa </em><strong><em>4 anni</em></strong><em>, ma solo se supererà le successive fasi di sperimentazione.</em></p>



<h3 class="wp-block-heading"><strong>Terapia cellulare con linfociti T regolatori (Treg)</strong></h3>



<p>Un approccio più radicale prevede l’uso di <strong>linfociti T regolatori ingegnerizzati</strong>, capaci di ripristinare la tolleranza al glutine senza sopprimere l’intero sistema immunitario. Attualmente la terapia è ancora in fase <strong>preclinica su modelli animali</strong>, con risultati promettenti.</p>



<p><em>In caso di successo, si parla comunque di </em><strong><em>almeno 10 anni</em></strong><em> prima di una possibile applicazione clinica.</em></p>



<h3 class="wp-block-heading"><strong>Terapie enzimatiche (TAK-062, latiglutenasi)</strong></h3>



<p>Questi farmaci contengono <strong>enzimi che degradano il glutine</strong> nello stomaco prima che possa scatenare la risposta immunitaria. Sono pensati per essere assunti <strong>prima dei pasti</strong>. Il candidato TAK-062 è in <strong>Fase 1</strong>, mentre altre formulazioni sono più avanti.</p>



<p><em>Tempistiche stimate: </em><strong><em>7 anni</em></strong><em> prima di un eventuale lancio commerciale.</em></p>



<h3 class="wp-block-heading"><strong>Larazotide acetato – Barriera intestinale sotto controllo</strong></h3>



<p>Larazotide agisce sulle <strong>giunzioni strette</strong> dell’epitelio intestinale, riducendo la <strong>permeabilità intestinale</strong> e impedendo al glutine di superare la barriera e attivare il sistema immunitario. È già in <strong>Fase 3</strong>, con dati promettenti.</p>



<p><em>Se confermato, potrebbe essere disponibile entro </em><strong><em>4 anni</em></strong><em>.</em></p>



<p>Queste terapie non sono ancora approvate, ma alimentano la speranza in una futura <strong>gestione farmacologica della celiachia</strong>, che potrebbe affiancare, o forse un giorno sostituire, la rigida dieta senza glutine.</p>



<h2 class="wp-block-heading">Il sunto della situazione: tra attese, ignoranza e rischio quotidiano</h2>



<p>Se siete arrivati fin qui, avrete capito una cosa fondamentale: <strong>le cure per la celiachia sono ancora lontane</strong>. I farmaci in via di sviluppo promettono molto, ma sono ancora nella fase della sperimentazione clinica. E ogni promessa è accompagnata da un enorme “<strong>SE</strong>”: se funzioneranno, se saranno sicuri, se supereranno tutte le fasi, <strong>forse</strong> arriveranno sul mercato <strong>tra 4, 5, 10 anni</strong>.</p>



<p>Nel frattempo, per milioni di persone, l’unica soluzione concreta resta una sola: <strong>seguire una dieta completamente priva di glutine</strong>. Ed è qui che si apre un secondo, drammatico capitolo: <strong>quello della contaminazione accidentale</strong>.</p>



<p>A chi vive con la celiachia è capitato — troppe volte — di andare in un ristorante e, alla fatidica domanda “siete attrezzati per i celiaci?”, sentirsi rispondere con leggerezza:</p>



<p><strong>“Ma lei… quanto è celiaco?”</strong></p>



<p>Una frase di &#8220;pecoroni&#8221;, completamente inadatti al ruolo che svolgono, che suona come una pugnalata, ma soprattutto dimostra <strong>una pericolosa ignoranza</strong>. Perché la celiachia <strong>non ha gradi</strong>: non esiste il “poco” o il “tanto” celiaco. La celiachia è una <strong>condizione autoimmune sistemica</strong>: <strong>o sei celiaco, o non lo sei</strong>. Un solo errore, una sola contaminazione, può causare giorni, se non settimane di disturbi intestinali, infiammazione sistemica, carenze nutrizionali, stanchezza cronica. E nei soggetti più sensibili, le conseguenze possono essere <strong>gravissime</strong>.</p>



<p>Chi opera nel settore della <strong>ristorazione</strong> ha una responsabilità enorme. E con l’aumento esponenziale di <strong>intolleranze alimentari, allergie e patologie genetiche</strong> — dalla celiachia al <strong>favismo</strong> — non può più permettersi di ignorare queste condizioni.</p>



<p>Pensate a chi soffre di <strong>favismo</strong>, una malattia genetica causata da <strong>carenza dell’enzima G6PD</strong>, che rende i globuli rossi fragili allo stress ossidativo. Se una persona affetta da favismo ingerisce <strong>fave</strong> o derivati, può andare incontro a una <strong>crisi emolitica acuta</strong>: i globuli rossi si distruggono in massa (emolisi), portando, nei casi più gravi, a <strong>insufficienza renale, collasso cardiocircolatorio e morte</strong> se non si procede immediatamente ad una trasfusione.</p>



<p><strong>Non è una questione di preferenze alimentari come i più sciocchi pensano. Non è una moda di mangiare senza glutine per il celiaco. È una questione di salute pubblica</strong>!</p>



<p>Serve formazione e consapevolezza comprovata, altrimenti niente licenza per somministrazione di cibi e bevande.</p>



<h2 class="wp-block-heading"><br><strong>Perché serve un rilevatore oggettivo: monitorare le contaminazioni è una necessità, non un lusso</strong></h2>



<p>Tornando al caso della celiachia, nel mondo reale, convivere con la celiachia significa dover <strong>affidare la propria salute a chi cucina per noi</strong>. Ma chi soffre di celiachia sa bene che entrare in un ristorante è spesso un vero <strong>atto di fiducia</strong>. Ci si affida alla buona volontà, alla formazione, e in molti casi, diciamolo, all’onestà del personale. Alcuni ristoratori preferiscono, <strong>coscienziosamente</strong>, rinunciare a un cliente celiaco per evitare rischi. Altri, purtroppo, <strong>forniscono rassicurazioni solo per guadagnare qualche euro in più</strong>, senza avere alcuna reale competenza su <strong>glutine, contaminazioni crociate e sicurezza alimentare</strong>.</p>



<p>Ed è proprio in queste situazioni che nasce il bisogno di uno strumento affidabile, oggettivo, rapido.</p>



<p>Non sorprende che le ricerche online di chi vive con la celiachia contengano sempre più spesso frasi come: <em>“come sapere se un alimento contiene glutine”</em>, <em>“analizzatore alimenti glutine”</em>, <em>“rilevatore glutine al ristorante”</em>.</p>



<p>Il bisogno è chiaro: si cerca <strong>un dispositivo tascabile</strong> in grado di analizzare il cibo direttamente a tavola, <strong>fornendo un risultato attendibile in pochi secondi</strong>, espresso in <strong>parti per milione (ppm)</strong>.</p>



<h3 class="wp-block-heading"><strong>Cosa significa “ppm” e perché è così importante per i celiaci?</strong></h3>



<p>L’unità di misura <strong>ppm</strong> (parti per milione) è comunemente utilizzata per esprimere concentrazioni <strong>estremamente basse</strong> di una sostanza all’interno di un’altra. Nel caso della celiachia, indica <strong>quanti milligrammi di glutine</strong> sono presenti in un chilogrammo di alimento.</p>



<p>Ad esempio:</p>



<ul class="wp-block-list">
<li><strong>20 ppm di glutine</strong> significano <strong>20 milligrammi di glutine per ogni chilo di cibo</strong></li>



<li>In termini percentuali, equivale a <strong>0,002% di concentrazione</strong></li>
</ul>



<p>È proprio questa la soglia che <strong>definisce un alimento “senza glutine” secondo la normativa europea ed internazionale</strong>.</p>



<p>Eppure, <strong>superare i 20 ppm può già scatenare una risposta immunitaria nei soggetti celiaci</strong>, con conseguenze anche gravi.</p>



<p>Ecco perché <strong>monitorare in modo oggettivo la presenza di glutine non è una fissazione da salutisti</strong>, ma una <strong>necessità clinica e pratica</strong>, soprattutto quando ci si trova in ambienti non controllati, come bar, ristoranti, mense o durante i viaggi.</p>



<h2 class="wp-block-heading"><br><strong>Lo stato attuale della tecnologia: sensori chimici, buoni ma (ancora) poco pratici</strong></h2>



<p>Ad oggi (maggio 2025), <strong>il mercato offre alcune soluzioni per rilevare il glutine negli alimenti</strong>, principalmente basate su <strong>test immunochimici</strong>. Questi dispositivi utilizzano <strong>anticorpi specifici per il glutine</strong>, integrati in capsule monouso contenenti reagenti chimici. Il funzionamento è semplice nella teoria: si inserisce un piccolo campione di alimento all’interno della capsula, si chiude il contenitore, il dispositivo macina il campione e lo mescola ai reagenti.</p>



<p>Se il glutine è presente, avviene una reazione che viene rilevata otticamente e tradotta in un <strong>risultato visivo</strong> (ad esempio, un’icona o un messaggio sul display).</p>



<p>Tuttavia, nonostante l’efficacia del principio immunologico, <strong>questi strumenti presentano alcune criticità pratiche</strong>, soprattutto per chi vorrebbe farne <strong>uso quotidiano</strong> o portarlo <strong>sempre con sé al ristorante</strong>.</p>



<ul class="wp-block-list">
<li><strong>Costo delle capsule monouso</strong>: ogni test richiede una capsula singola che costa circa <strong>4 euro</strong>. Questo significa che, per testare un primo piatto, un secondo e un contorno, il costo complessivo della verifica salirebbe a circa <strong>12 euro a pasto</strong>, senza contare eventuali assaggi, antipasti misti o dolci.</li>



<li><strong>Tempi di attesa</strong>: il processo chimico richiede tempo per completarsi. In media, <strong>il risultato arriva dopo 2-4 minuti</strong>, che possono diventare scomodi se si sta cenando fuori casa, magari in compagnia o in contesti veloci come mense e buffet.</li>
</ul>



<p>In sintesi, i dispositivi oggi disponibili sono <strong>scientificamente solidi</strong>, ma <strong>logisticamente e economicamente poco sostenibili</strong> per un utilizzo frequente. Servirebbe una soluzione <strong>più economica, veloce e riutilizzabile</strong>, in grado di rilevare il glutine <strong>senza consumabili monouso</strong> e con una <strong>risposta quasi immediata</strong>.</p>



<p>È proprio su questo bisogno concreto che si innesta il progetto <strong>SpectraScan Gluten</strong>, che approfondiremo nei prossimi paragrafi.</p>



<h2 class="wp-block-heading">Verso una soluzione ottica, riutilizzabile e accessibile</h2>



<p>Chi mi segue da tempo forse ricorderà la serie di articoli in cui parlavo del mio progetto sul <strong>divisore automatico per la raccolta differenziata</strong>, un sistema basato su <strong>intelligenza artificiale</strong>, <strong>computer vision</strong> e <strong>spettroscopia</strong> per identificare i materiali in tempo reale.</p>



<p>Proprio durante lo sviluppo di quel progetto, mi sono posto una domanda tanto semplice quanto importante:</p>



<p><strong>E se la spettroscopia potesse essere usata anche per identificare il glutine nei cibi?</strong></p>



<p>In effetti, il glutine è una composto, o meglio, un insieme di proteine; e come ogni composto chimico interagisce con la <strong>luce</strong> in modi specifici e misurabili. Da qui è nata l’idea di esplorare una tecnologia in grado di <strong>rilevare il glutine in modo ottico</strong>, senza ricorrere a reagenti chimici o capsule monouso, e soprattutto in <strong>pochi secondi</strong>.</p>



<p>Mi sono affidato a fonti scientifiche, pubblicazioni e, sì, anche a <strong>ChatGPT</strong>. Il risultato delle ricerche è stato sorprendente:</p>



<p><strong>la spettroscopia nel vicino infrarosso (NIR)</strong> può effettivamente essere utilizzata per <strong>rilevare il glutine</strong> all’interno di alimenti, specialmente quando associata a <strong>modelli chemometrici avanzati</strong> come la regressione PLS (Partial Least Squares).</p>



<p>Questa intuizione ha dato il via a quello che oggi è un progetto concreto, ambizioso e già in fase di sviluppo: <strong>SpectraScan Gluten</strong>, il primo <strong>rilevatore tascabile e riutilizzabile</strong> per la misura ottica del glutine nei cibi, progettato per i celiaci e pensato per essere utilizzato <strong>fuori casa, in autonomia e senza costi ricorrenti</strong>. Naturalmente non mi sbilancio prima di aver condotto delle prove concrete, però gli elementi teorici sono molto incoraggianti.</p>



<h2 class="wp-block-heading">SpectraScan Gluten: la tecnologia ottica che rileva il glutine in pochi secondi</h2>



<p>La <strong>spettroscopia NIR</strong> è una tecnica avanzata che analizza il modo in cui la luce interagisce con la materia. Ogni composto, incluso il glutine, assorbe e riflette la luce in maniera diversa a seconda della propria struttura chimica. Utilizzando un <strong>micro-spettrometro miniaturizzato</strong>, SpectraScan Gluten acquisisce lo <strong>spettro di riflettanza diffusa</strong> della superficie dell’alimento da analizzare.</p>



<p>A quel punto entra in gioco un <strong>modello matematico di tipo chemometrico</strong>, più precisamente una <strong>regressione PLS (Partial Least Squares)</strong>, che interpreta lo spettro e lo traduce in un dato numerico: la <strong>concentrazione di glutine</strong>, espressa in <strong>parti per milione (ppm)</strong>.</p>



<p>In questo modo, SpectraScan Gluten sarà in grado di rilevare in pochi secondi se un alimento contiene più o meno del limite critico di <strong>20 ppm</strong>, ovvero la soglia oltre la quale un alimento non può più essere considerato “senza glutine” secondo le normative internazionali.</p>



<p>Il tutto <strong>senza sostanze chimiche, senza capsule da smaltire</strong>, e con un dispositivo <strong>tascabile, leggero, semplice da usare</strong>, pensato per chi, come me e altri milioni di persone, vive la celiachia ogni giorno e vuole maggiore autonomia e sicurezza quando mangia <strong>fuori casa</strong>.</p>



<p>La spettroscopia NIR viene inoltre già utilizzata per valutare la freschezza degli alimenti. Questo è solamente un altro approccio di utilizzo. </p>



<h2 class="wp-block-heading">Una tecnologia aperta, ma tutelata: ecco come sarà condiviso il progetto</h2>



<p>Credo profondamente che l’innovazione debba essere <strong>accessibile e condivisa</strong>, soprattutto quando può migliorare concretamente la qualità della vita di milioni di persone.</p>



<p>Per questo motivo, <strong>la documentazione tecnica e i vari paper su cui si poggia la teoria alla base di  SpectraScan Gluten saranno resi pubblici</strong>, ma <strong>solo dopo l’immissione sul mercato del primo modello</strong>. La condivisione avverrà sotto una <strong>licenza di tipo BSL (Business Source License)</strong> o simile, che <strong>consente l’uso personale o di ricerca</strong>, ma <strong>impedisce ogni forma di utilizzo commerciale non autorizzato</strong>.</p>



<p>In altre parole, chiunque: sviluppatori, maker, associazioni, studenti, potrà <strong>studiare, replicare e persino migliorare il dispositivo per scopi non commerciali</strong>, ma <strong>non potrà venderlo</strong> o sfruttarlo a fini di lucro senza un accordo formale. Tanto per dire che non sono disposto a perdere ogni giorno ore di sonno, per far arrivare il primo produttore a rubare l&#8217;idea del prodotto per farsi ancora più ricco&#8230;</p>



<h3 class="wp-block-heading"><strong>Come funzionerà SpectraScan Gluten nella pratica?</strong></h3>



<p>Il funzionamento è semplice e pensato per l’uso quotidiano da parte dei celiaci.</p>



<p>Basta <strong>appoggiare il sensore su vari punti della superficie dell’alimento</strong> ed effettuare <strong>più scansioni</strong> per ottenere un quadro completo.</p>



<p>Essendo una tecnologia ottica basata su <strong>riflettanza NIR</strong>, la spettroscopia è <strong>sensibile solo ai primi millimetri della superficie</strong>: non può “vedere dentro” un alimento chiuso.</p>



<p>Se ad esempio volete controllare un <strong>raviolo ripieno</strong>, è fondamentale <strong>tagliarlo</strong> e analizzarne anche il contenuto interno. Questo piccolo gesto può fare la differenza tra un pasto sicuro e un errore pericoloso.</p>



<h3 class="wp-block-heading"><strong>Precisione e riutilizzabilità</strong></h3>



<p>SpectraScan Gluten è progettato per essere:</p>



<ul class="wp-block-list">
<li><strong>Riutilizzabile un numero virtualmente illimitato di volte</strong>, senza consumabili;</li>



<li><strong>Rapido</strong>: restituisce i risultati in pochi secondi;</li>



<li><strong>Preciso</strong>, con una sensibilità stimata di <strong>±2–3 ppm</strong> nel range più critico per i celiaci: <strong>tra 5 e 30 ppm</strong>.</li>
</ul>



<p>Questo significa poter rilevare in tempo reale se un alimento supera la soglia di sicurezza dei <strong>20 ppm</strong>, riconosciuta a livello europeo come limite massimo per poter definire un prodotto “senza glutine”.</p>



<p>Naturalmente come già detto potrà rilevare il contenuto di glutine nei primi 2 mm dell&#8217;alimento analizzato pertanto è chiaro che non verrà commercializzato come dispositivo medico ma come uno strumento di supporto informativo alla scelta alimentare e alle linee guida dell&#8217;Associazione Italiana Celiachia (AIC), ma potrà sicuramente fornire un&#8217;indicazione aggiuntiva per conferire una maggior tranquillità psicologica al celiaco che si appresta a consumare il pasto. <br></p>



<h2 class="wp-block-heading">Conclusioni: innovazione reale per chi vive la celiachia ogni giorno</h2>



<p>La <strong>spettroscopia NIR</strong>, finora riservata a laboratori e applicazioni industriali, può oggi essere portata nel quotidiano di milioni di persone celiache.</p>



<p>Con <strong>SpectraScan Gluten</strong> stiamo trasformando una tecnologia avanzata in uno <strong>strumento tascabile</strong>, preciso, rapido e <strong>accessibile</strong>, progettato per migliorare in modo concreto la <strong>sicurezza alimentare delle persone affette da celiachia</strong>.</p>



<p>Questo progetto non è solo una sfida tecnologica, ma un gesto di responsabilità verso una comunità che oggi vive con limitazioni, incertezza e rischi costanti ogni volta che si siede a tavola fuori casa.</p>



<p>Se sei un paziente, un genitore, un medico, uno sviluppatore, un divulgatore, un investitore, un giornalista o semplicemente qualcuno che crede nell’<strong>innovazione a impatto sociale</strong>, ti invito a seguire da vicino il percorso di <strong>SpectraScan Gluten</strong>.</p>



<p><strong>Nei prossimi mesi</strong> condividerò aggiornamenti, prototipi e risultati reali. E quando sarà il momento, renderò pubblica la documentazione per permettere ad altri di imparare, replicare e contribuire.</p>



<p>Vuoi ricevere aggiornamenti, scrivere un articolo o entrare in contatto per una partnership?</p>



<p>Scrivimi al mio indirizzo personale <a href="mailto:info@simonerenzi.com">info@simonerenzi.com</a> oppure all&#8217;indirizzo email aziendale <a href="mailto:info@renor.it">info@renor.it</a>.</p>



<p>[starbox]</p>
<p>L'articolo <a href="https://renor.it/blog/hardware-maker-innovazione/spectrascan-gluten-il-rilevatore-tascabile-di-glutine-per-celiaci/">SpectraScan Gluten: il rilevatore tascabile di glutine per celiaci</a> proviene da <a href="https://renor.it">RENOR &amp; Partners S.r.l.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>AI, CV e Spettroscopia per la Gestione dei rifiuti – Parte 2</title>
		<link>https://renor.it/blog/intelligenza-artificiale-algoritmi/ai-cv-e-spettroscopia-per-la-gestione-dei-rifiuti-parte-2/</link>
		
		<dc:creator><![CDATA[Simone Renzi]]></dc:creator>
		<pubDate>Mon, 19 May 2025 11:46:08 +0000</pubDate>
				<category><![CDATA[Intelligenza Artificiale & Algoritmi]]></category>
		<category><![CDATA[automazione]]></category>
		<category><![CDATA[braccio robotico]]></category>
		<category><![CDATA[elettronica]]></category>
		<category><![CDATA[innovazione]]></category>
		<category><![CDATA[meccatronica]]></category>
		<category><![CDATA[open-source]]></category>
		<category><![CDATA[prototipazione]]></category>
		<category><![CDATA[raccolta differenziata]]></category>
		<category><![CDATA[riciclo intelligente]]></category>
		<category><![CDATA[sostenibilità]]></category>
		<category><![CDATA[spettroscopia Raman]]></category>
		<category><![CDATA[tecnologia]]></category>
		<category><![CDATA[visione artificiale]]></category>
		<guid isPermaLink="false">https://renor.it/?p=526</guid>

					<description><![CDATA[<p>Automatizzare la raccolta differenziata: dalla teoria alla pratica con la meccatronica Nel precedente articolo ci eravamo lasciati con uno schema realistico della logica applicativa per la suddivisione automatizzata dei rifiuti. Ora è arrivato il momento di iniziare a capire concretamente come questo sistema possa diventare automatizzato. Entriamo quindi nell&#8217;affascinante mondo della meccatronica e della robotica. [&#8230;]</p>
<p>L'articolo <a href="https://renor.it/blog/intelligenza-artificiale-algoritmi/ai-cv-e-spettroscopia-per-la-gestione-dei-rifiuti-parte-2/">AI, CV e Spettroscopia per la Gestione dei rifiuti – Parte 2</a> proviene da <a href="https://renor.it">RENOR &amp; Partners S.r.l.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Automatizzare la raccolta differenziata: dalla teoria alla pratica con la meccatronica</h2>



<p>Nel precedente articolo ci eravamo lasciati con uno schema realistico della logica applicativa per la suddivisione automatizzata dei rifiuti. Ora è arrivato il momento di iniziare a capire concretamente come questo sistema possa diventare automatizzato. Entriamo quindi nell&#8217;affascinante mondo della meccatronica e della robotica.</p>



<p>Per risparmiare tempo nella divisione manuale dei rifiuti, immagino per prima cosa un contenitore in cui poter gettare liberamente i vari scarti. Da qui, ogni rifiuto dovrà essere trasferito automaticamente nella camera dove avverrà l&#8217;analisi mediante spettroscopia Raman.</p>



<p>Le soluzioni per trasportare i rifiuti possono essere diverse e qui si apre una scelta cruciale per il progetto: vogliamo puntare su un compromesso pratico o desideriamo poter gestire ogni singolo tipo di rifiuto con precisione assoluta? Se scegliamo la strada più semplice e accettiamo dei compromessi, ad esempio limitandoci a contenitori rigidi come cartoni e bottiglie, potrebbe bastare solamente un nastro trasportatore dotato di palette.</p>



<p>Se invece optiamo per una soluzione più versatile, che ci permetta di identificare e gestire qualsiasi oggetto indipendentemente dalla sua forma o dimensione, allora sarà necessario implementare un braccio robotico dotato di visione artificiale, in grado di riconoscere e selezionare ciascun elemento prima di posizionarlo sul nastro trasportatore.</p>



<p>Per questo progetto, anche al fine di creare un prodotto veramente eco-friendly, scegliamo proprio quest&#8217;ultima soluzione, decidendo però di escludere la gestione dell&#8217;umido, così da evitare ulteriori complicazioni tecniche come il lavaggio continuo del nastro trasportatore che richiederebbe anche l&#8217;accortezza di progettare l&#8217;elettronica con un indice di protezione da agenti atmosferici almeno IP65.</p>



<h2 class="wp-block-heading">Meccanica del dispositivo</h2>



<p>Immaginiamo di avere un secchio iniziale contenente diversi tipi di rifiuti. Un braccio robotico, equipaggiato con una telecamera, analizza visivamente i rifiuti, li identifica, li afferra e li colloca su un nastro trasportatore. Questo nastro trasporta ciascun oggetto all&#8217;interno di una camera oscura dove è posizionato il nostro spettroscopio Raman. Lo spettroscopio identifica il materiale e, in base al risultato ottenuto, attiva un selettore di percorso: la plastica finirà nel mastello della plastica, il vetro e il metallo nel rispettivo contenitore e la carta nel mastello dedicato alla carta.</p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://renor.it/wp-content/uploads/2025/05/schema3-1024x683.webp" alt="" class="wp-image-528"/></figure>



<h2 class="wp-block-heading">Una breve nota personale</h2>



<p>Quando ho iniziato a descrivere questo progetto, sembrava relativamente semplice e lineare. Tuttavia dopo un&#8217;attenta riflessione, si è rivelato tutt&#8217;altro che banale. È affascinante notare come un compito che nella vita quotidiana appare così immediato e semplice, richieda invece una combinazione complessa di conoscenze tecniche.</p>



<p>In questo percorso capiremo insieme come gestire queste sfide e trasformare un&#8217;idea iniziale in un prodotto finale realmente funzionante e utile, open-source e che tutti possono autonomamente costruire a patto di avere i macchinari necessari alla creazione delle parti che serviranno a dar vita al prodotto. </p>



<p>Nel prossimo articolo tratteremo la progettazione e la stampa 3D dei vari componenti che andranno a comporre il nostro elemento di trasporto.</p>



<p>[starbox]</p>
<p>L'articolo <a href="https://renor.it/blog/intelligenza-artificiale-algoritmi/ai-cv-e-spettroscopia-per-la-gestione-dei-rifiuti-parte-2/">AI, CV e Spettroscopia per la Gestione dei rifiuti – Parte 2</a> proviene da <a href="https://renor.it">RENOR &amp; Partners S.r.l.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>AI, CV e Spettroscopia per la Gestione dei rifiuti &#8211; Parte 1</title>
		<link>https://renor.it/blog/intelligenza-artificiale-algoritmi/ai-cv-e-spettroscopia-per-la-gestione-dei-rifiuti-parte-1/</link>
		
		<dc:creator><![CDATA[Simone Renzi]]></dc:creator>
		<pubDate>Mon, 19 May 2025 10:03:42 +0000</pubDate>
				<category><![CDATA[Intelligenza Artificiale & Algoritmi]]></category>
		<category><![CDATA[automazione]]></category>
		<category><![CDATA[computer vision]]></category>
		<category><![CDATA[GitHub]]></category>
		<category><![CDATA[Google Cloud Vision]]></category>
		<category><![CDATA[innovazione]]></category>
		<category><![CDATA[intelligenza artificiale]]></category>
		<category><![CDATA[materiali]]></category>
		<category><![CDATA[meccatronica]]></category>
		<category><![CDATA[modellazione 3D]]></category>
		<category><![CDATA[OCR]]></category>
		<category><![CDATA[progetto open-source]]></category>
		<category><![CDATA[prototipazione]]></category>
		<category><![CDATA[raccolta differenziata]]></category>
		<category><![CDATA[Reti neurali]]></category>
		<category><![CDATA[riciclo intelligente]]></category>
		<category><![CDATA[sostenibilità ambientale]]></category>
		<category><![CDATA[spettroscopia Raman]]></category>
		<category><![CDATA[stampa 3D]]></category>
		<category><![CDATA[tecnologia]]></category>
		<guid isPermaLink="false">https://renor.it/?p=514</guid>

					<description><![CDATA[<p>Anche voi trovate noiosa la raccolta differenziata? Scommetto che è capitato anche a voi: dopo una cena tra amici o un pranzo in famiglia, arriva il momento di sistemare tutto, e improvvisamente la raccolta differenziata è lì che ti attende facendoti perdere tempo. Carta da una parte, plastica dall&#8217;altra, vetro e metallo in un altro [&#8230;]</p>
<p>L'articolo <a href="https://renor.it/blog/intelligenza-artificiale-algoritmi/ai-cv-e-spettroscopia-per-la-gestione-dei-rifiuti-parte-1/">AI, CV e Spettroscopia per la Gestione dei rifiuti &#8211; Parte 1</a> proviene da <a href="https://renor.it">RENOR &amp; Partners S.r.l.</a>.</p>
]]></description>
										<content:encoded><![CDATA[
<h2 class="wp-block-heading">Anche voi trovate noiosa la raccolta differenziata?</h2>



<p>Scommetto che è capitato anche a voi: dopo una cena tra amici o un pranzo in famiglia, arriva il momento di sistemare tutto, e improvvisamente la raccolta differenziata è lì che ti attende facendoti perdere tempo. Carta da una parte, plastica dall&#8217;altra, vetro e metallo in un altro mastello, umido in quello più piccolo&#8230; Un compito che diventa spesso noioso specialmente quando il volume dei rifiuti da dividere cresce notevolmente.</p>



<p>Da qui la domanda&#8230; Esiste un modo per rendere tutto questo più semplice, veloce e addirittura automatico? La tecnologia oggi può darci una mano concreta per gestire meglio questa attività quotidiana facendoci risparmiare tempo e fatica?</p>



<h2 class="wp-block-heading">Come nasce un progetto tecnologico: dall&#8217;idea al prodotto finale</h2>



<p>In questo periodo, con la grande mole di lavoro che mi ritrovo a gestire, sarà difficile trovare abbastanza tempo da dedicare a questo progetto. Tuttavia, ho deciso che sfrutterò quei pochi momenti liberi che mi restano la sera dopo cena per portarlo avanti e condividerlo con voi passo dopo passo. </p>



<p>Al di là dell&#8217;utilità intrinseca di questo progetto, ciò che maggiormente mi interessa, è mostrarvi come, partendo da un&#8217;idea iniziale, si arrivi concretamente al prodotto finale. Voglio farvi vedere quali sono le fasi coinvolte nella realizzazione di un progetto che a parole può apparire semplice a prima vista, ma che in realtà è estremamente complesso, perché richiede competenze trasversali ben oltre il semplice sviluppo di codice. </p>



<p>Per completare questo lavoro, infatti, è necessario avere conoscenze approfondite in diversi ambiti: dalla modellazione 3D alla stampa 3D, dalla prototipazione all&#8217;elettronica, fino a competenze in fisica, matematica e soprattutto intelligenza artificiale. </p>



<p>In questo articolo (e in quelli che seguiranno) cercherò di guidarvi lungo tutto questo percorso, condividendo con voi le sfide, gli ostacoli e le soluzioni che incontrerò strada facendo. Sarà un modo interessante per scoprire insieme come un&#8217;idea innovativa possa trasformarsi in qualcosa di realmente funzionante e la condivideremo con un progetto open-source sul mio canale GitHub. </p>



<h2 class="wp-block-heading">Valutiamo le prime criticità</h2>



<p>Tutti noi facciamo affidamento sui nostri sensi per esplorare e interpretare ciò che ci circonda. Quando riceviamo un oggetto tra le mani, possiamo osservarlo, toccarlo, annusarlo o perfino colpirlo leggermente per ascoltare il suono che produce. A volte arriviamo persino ad assaggiarlo per coglierne il sapore. Possiamo vedere i nostri sensi come le porte che ci permettono di relazionarci con il mondo. </p>



<p>Immaginate di ricevere una bottiglia: vi basterà guardarla o tutt&#8217;al più stringerla tra le mani per capire immediatamente se è fatta di vetro o di plastica. Se invece vi dessero un barattolo di pelati, probabilmente notereste il caratteristico colore ferroso, comprendendo così che è realizzato in metallo e se così non fosse potreste stringerla per verificare che resti deformata, perché sapete che il metallo se compresso resta deformato a differenza della plastica che entro certi limiti torna nella sua posizione iniziale. </p>



<p>Tutto questo è possibile grazie all&#8217;esperienza cognitiva che abbiamo maturato nel corso della nostra vita. </p>



<p>Ma nel caso di una macchina&#8230; Come possiamo trasferire questa capacità di comprensione a una macchina? In che modo può imparare a identificare il materiale di cui è fatto un oggetto?</p>



<h2 class="wp-block-heading">Emuliamo i sensi</h2>



<p>Ci sono diversi approcci&#8230;</p>



<p>Uno dei più affascinanti è quello basato sulla Computer Vision, una tecnologia che emula il senso della vista umano.</p>



<p>Questo approccio consiste nell&#8217;utilizzare particolari reti neurali artificiali che vengono addestrate a riconoscere vari oggetti, materiali e forme. È esattamente lo stesso principio che permette, ad esempio alle moderne automobili a guida autonoma (senza citare marche famose) di spostarsi con sicurezza sulle nostre strade. </p>



<p>Queste vetture sono dotate di telecamere che analizzano continuamente, centinaia di volte al secondo, tutto ciò che le circonda: strade, segnali stradali, pedoni, altre automobili e potenziali ostacoli. La rete neurale, addestrata accuratamente per mesi o anni, permette al veicolo di identificare ogni oggetto e reagire correttamente: mantenersi all&#8217;interno della corsia di marcia, rispettare scrupolosamente i segnali stradali, gli stop, le precedenze, evitare collisioni e calcolare la più sicura via di fuga in caso di pericolo. </p>



<h2 class="wp-block-heading">Il primo ostacolo: non tutte le reti neurali sono facili da addestrare</h2>



<p>Se avete seguito fin qui il discorso, vi sarete sicuramente accorti di un dettaglio importante: poco fa abbiamo parlato di reti neurali addestrate per mesi, se non anni. E qui nasce il primo vero problema del nostro progetto. </p>



<p>La questione infatti non è affatto semplice. Non dobbiamo insegnare a una macchina a riconoscere un pedone, cioè qualcosa che ha una testa, due braccia e due gambe. Qui dobbiamo istruire una rete neurale a capire esattamente di che materiale è fatto un rifiuto. E la difficoltà aumenta se pensiamo che lo stesso prodotto, come ad esempio il latte, può essere confezionato in una bottiglia di plastica per una certa marca, in una bottiglia di vetro per un&#8217;altra, oppure in un Tetra Pak per un terza marca ancora. </p>



<p>Se volessimo addestrare una rete neurale a riconoscere con precisione tutti i materiali di confezionamento per ogni singolo alimento presente sul mercato, significherebbe raccogliere e catalogare decine di migliaia, se non centinaia di migliaia di campioni diversi. Occorrerebbe infatti passare in rassegna per più volte ciascuna marca e ciascuna variante di prodotto, generando enormi quantità di dati di addestramento. </p>



<p>È evidente che questa strada non è percorribile in modo pratico e sostenibile. Dobbiamo quindi cercare una soluzione più intelligente, flessibile e scalabile. Una soluzione che consenta alla rete neurale di &#8220;generalizzare&#8221; tutto ciò che può essere generalizzato, riconoscendo materiali e oggetti sulla base di caratteristiche generali piuttosto che specifiche per ciascun prodotto. </p>



<h2 class="wp-block-heading">Alcune idee di rinforzo</h2>



<p>Sebbene sia difficile per alcuni tipi di rifiuti procedere con l&#8217;addestramento di una rete neurale, possiamo comunque sottoporre l&#8217;immagine del rifiuto ad una rete neurale già addestrata. Google Cloud Vision ad esempio permette l&#8217;analisi delle immagini e nei casi in cui il materiale è visibilmente molto riconoscibile, può assegnare etichette generiche come: </p>



<ul class="wp-block-list">
<li>plastic</li>



<li>glass</li>



<li>metal</li>



<li>carboard</li>



<li>paper</li>
</ul>



<p>Il problema è che non è affidabile al 100%, non distingue varianti specifiche (Es. Tetra Pak vs. cartone semplice). Non legge materiali dalla texture o dal suono (cosa che farebbe un essere umano manipolando il prodotto).</p>



<p>C&#8217;è però una soluzione alternativa realistica. Un approccio più affidabile potrebbe essere quello di utilizzare Cloud Vision OCR per leggere il testo sull&#8217;etichetta del prodotto per poi cercare online le informazioni sul materiale (Bottiglia in PET, Packaging in Tetra Pak). </p>



<h2 class="wp-block-heading">Cominciamo a schematizzare</h2>



<p>Per evitare il rischio di dimenticare alcune cose cominciamo a buttar giù una mappa delle idee ed uno schema funzionale in modo da poterlo modificare man mano che andiamo avanti nel progetto. </p>



<figure class="wp-block-image size-large"><img decoding="async" src="https://renor.it/wp-content/uploads/2025/05/Sistema-di-gestione-rifiuti-1024x314.webp" alt="" class="wp-image-515"/></figure>



<figure class="wp-block-image size-full ticss-a21b03e6"><img loading="lazy" decoding="async" width="431" height="752" src="https://renor.it/wp-content/uploads/2025/05/Sistema-divisione-rifiuti-1-1.webp" alt="" class="wp-image-518" style="object-fit:cover" srcset="https://renor.it/wp-content/uploads/2025/05/Sistema-divisione-rifiuti-1-1.webp 431w, https://renor.it/wp-content/uploads/2025/05/Sistema-divisione-rifiuti-1-1-172x300.webp 172w" sizes="auto, (max-width: 431px) 100vw, 431px" /></figure>



<h2 class="wp-block-heading">Se questa soluzione non restituisce un risultato sicuro?</h2>



<p>È possibile che nonostante tutti gli sforzi non venga comunque restituito un risultato sicuro e definitivo. Come ci comportiamo?</p>



<ol class="wp-block-list">
<li>Possiamo mettere il prodotto in uno stato di verifica manuale (soluzione che non mi piace particolarmente)</li>



<li>Possiamo classificare il rifiuto come indifferenziato (anche questa soluzione non è particolarmente eco-friendly)</li>



<li>Possiamo cercare altri modi per comprendere il materiale del prodotto.</li>
</ol>



<p>Concentriamoci sulla terza soluzione.</p>



<h2 class="wp-block-heading">Quali altre possibilità ci sono per identificare un materiale?</h2>



<p>Un sistema sicuro, veloce e in tempo reale per identificare un materiale è certamente la spettroscopia, in particolare lo spettroscopio Raman. Questa rappresenta una delle tecniche più affidabili e precise per identificare il materiale, in particolare la composizione chimica di un oggetto, anche in forma solida, liquida o polimerica. </p>



<p>La spettroscopia Raman si basa sull&#8217;interazione di una luce laser con una particolare frequenza, con le vibrazioni molecolari del materiale. Quando il laser colpisce un campione, una piccola parte della luce viene diffusa in modo anomalo (effetto Raman), e questo spettro diffuso è caratteristico della struttura molecolare del materiale. </p>



<h2 class="wp-block-heading">Cosa può identificare uno spettroscopio Raman?</h2>



<p>Può identificare con successo Plastica, Vetro, Carta, Composti organici e inorganici e addirittura il Tetra Pak. Non può però identificare i metalli perché i metalli riflettono la luce e non hanno pertanto segnali Raman. Questo può non essere un problema perché per esclusione, se un materiale non è tra quelli elencati è sicuramente in metallo. </p>



<p>Ci sono però delle difficoltà anche qui&#8230; Uno spettroscopio Raman può costare, a seconda della qualità, da qualche migliaio di euro a decine di migliaia di euro. A questo però c&#8217;è una soluzione&#8230; Costruirci un nostro spettroscopio di Raman. Vedremo questa parte in seguito in una serie di articoli dedicati. </p>



<p>Aggiorniamo pertanto i nostri schemi&#8230;</p>



<figure class="wp-block-image size-full ticss-a21f80fc"><img loading="lazy" decoding="async" width="465" height="479" src="https://renor.it/wp-content/uploads/2025/05/Sistema-divisione-rifiuti-2.webp" alt="" class="wp-image-521" srcset="https://renor.it/wp-content/uploads/2025/05/Sistema-divisione-rifiuti-2.webp 465w, https://renor.it/wp-content/uploads/2025/05/Sistema-divisione-rifiuti-2-291x300.webp 291w" sizes="auto, (max-width: 465px) 100vw, 465px" /></figure>



<p>Sembrerebbe che in questo modo abbiamo correttamente gestito la logica applicativa del sistema. Abbiamo compreso per sommi capi come dobbiamo muoverci.  </p>



<p>C&#8217;è ora tutta la parte di trasporto e divisione dei rifiuti che andremo a trattare nel prossimo articolo.</p>



<p>[starbox]</p>
<p>L'articolo <a href="https://renor.it/blog/intelligenza-artificiale-algoritmi/ai-cv-e-spettroscopia-per-la-gestione-dei-rifiuti-parte-1/">AI, CV e Spettroscopia per la Gestione dei rifiuti &#8211; Parte 1</a> proviene da <a href="https://renor.it">RENOR &amp; Partners S.r.l.</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
