<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Ide on Melabit</title>
    <link>https://static.233.196.69.159.clients.your-server.de/it/tags/ide/</link>
    <description>Recent content in Ide on Melabit</description>
    <generator>Hugo</generator>
    <language>it</language>
    <lastBuildDate>Wed, 21 Jan 2026 18:00:00 +0000</lastBuildDate>
    <atom:link href="https://static.233.196.69.159.clients.your-server.de/it/tags/ide/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Sorpresa Antigravity</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2026/01/21/sorpresa-antigravity/</link>
      <pubDate>Wed, 21 Jan 2026 18:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2026/01/21/sorpresa-antigravity/</guid>
      <description>&lt;p&gt;Lo confesso, quando ho &lt;a href=&#34;https://melabit.com/it/2025/12/15/fotocopiato/&#34;&gt;cominciato ad usare Antigravity&lt;/a&gt; avevo molte riserve, perché il nuovo editor &lt;em&gt;rivoluzionario&lt;/em&gt; prodotto da Google mi sembrava solo uno dei tanti cloni di &lt;a href=&#34;https://code.visualstudio.com/&#34;&gt;VS Code&lt;/a&gt; di Microsoft.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;Ma appena ho iniziato ad usare le funzioni &lt;em&gt;agentiche&lt;/em&gt; di Google Antigravity ho dovuto ricredermi, perché c&amp;rsquo;è davvero del buono.&lt;/p&gt;&#xA;&lt;p&gt;Certo, ci sono anche tanti limiti, ma sono gli stessi di tutti gli altri modelli linguistici di grandi dimensioni (LLM, &lt;em&gt;Large Language Model&lt;/em&gt;), che funzionano bene se li guidi passo passo in quello che devono fare, ma che hanno anche poca fantasia e vanno in affanno se gli sottoponi dei problemi nuovi e appena appena complicati.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2026-01-21-sorpresa-antigravity/Gemini_Generated_Image_nu8qhynu8qhynu8q.jpg&#34; alt=&#34;&#34;&gt;&#xA;&amp;ndash; &lt;em&gt;Immagine generata da &lt;a href=&#34;https://gemini.google.com&#34;&gt;Google Gemini&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;editor-e-ide&#34;&gt;Editor e IDE&lt;/h4&gt;&#xA;&lt;p&gt;Google Antigravity è una &lt;a href=&#34;https://en.wikipedia.org/wiki/Integrated_development_environment&#34;&gt;IDE (Integrated Development Environment)&lt;/a&gt;, in italiano un &lt;em&gt;ambiente di sviluppo integrato&lt;/em&gt;, cioè è un editor con funzionalità aggiuntive che aiutano a scrivere e a correggere il codice.&lt;/p&gt;&#xA;&lt;p&gt;Essendo un derivato da VS Code ne riprende tutti gli aspetti positivi e negativi, primo fra tutti il fatto di essere basato su &lt;a href=&#34;https://www.electronjs.org/&#34;&gt;Electron&lt;/a&gt;, un framework multipiattaforma molto comodo per gli sviluppatori ma anche molto avido di risorse e di spazio su disco.&lt;/p&gt;&#xA;&lt;p&gt;Infatti, come avevo già notato nell&amp;rsquo;&lt;a href=&#34;https://melabit.com/it/2025/12/15/fotocopiato/&#34;&gt;ultimo articolo&lt;/a&gt;, una volta installato Google Antigravity occupa sul mio Mac la bellezza di 700 MB (696.6 MB per la precisione), un pelo di più dello stesso VS Code (683.9 MB) e qualcosa meno del &lt;em&gt;padre&lt;/em&gt; Windsurf (718.7 MB). Tanto per fare un confronto, i miei due editor preferiti, TextMate e BBEdit, occupano rispettivamente 40 e 65 MB.&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;Sulle funzionalità di editing del codice e di supporto allo sviluppo c&amp;rsquo;è poco da dire. Sono identiche a quelle di VS Code e possono essere estese a dismisura tramite le più di 8.500 estensioni disponibili sull&amp;rsquo;&lt;a href=&#34;https://open-vsx.org/&#34;&gt;Open VSX Registry&lt;/a&gt;, un database di estensioni specifico per gli editor derivati da VS Code.&lt;/p&gt;&#xA;&lt;p&gt;In teoria si potrebbero usare le &lt;a href=&#34;https://marketplace.visualstudio.com/&#34;&gt;estensioni di VS Code&lt;/a&gt;, ma Microsoft da qualche mese &lt;a href=&#34;https://freedium-mirror.cfd/https://medium.com/@S3CloudHub/microsoft-quietly-blocked-cursor-from-using-its-vscode-extension-heres-the-line-of-code-that-40d65f14ef0f&#34;&gt;ha bloccato&lt;/a&gt; l&amp;rsquo;uso del marketplace di VS Code a tutti gli altri editor derivati (fra cui Cursor, Windsurf o Antigravity). Alla faccia dei principi dell&amp;rsquo;&lt;a href=&#34;https://code.visualstudio.com/&#34;&gt;open source&lt;/a&gt;&amp;hellip;&lt;/p&gt;&#xA;&lt;h4 id=&#34;funzioni-agentiche&#34;&gt;Funzioni &lt;em&gt;agentiche&lt;/em&gt;&lt;/h4&gt;&#xA;&lt;p&gt;Ma cos&amp;rsquo;è l&amp;rsquo;&lt;a href=&#34;https://www.ibm.com/think/topics/agentic-ai&#34;&gt;Intelligenza Artificiale ad agenti&lt;/a&gt; (o &lt;em&gt;agentica&lt;/em&gt;)? È un sistema di IA in grado di agire in modo autonomo, raggiungendo obiettivi complessi con una minima supervisione umana e senza dover essere istruito in modo dettagliato e ben definito.&lt;/p&gt;&#xA;&lt;p&gt;È un po&amp;rsquo; come il sogno dei cuochi dilettanti: avere a disposizione un robot in grado di guardare cosa c&amp;rsquo;è in frigorifero e nella dispensa e di preparare da solo un pranzo completo dopo avergli spiegato vagamente cosa vogliamo.&lt;/p&gt;&#xA;&lt;p&gt;Ma è anche il sogno dei programmatori da bar, i &lt;em&gt;vibe coders&lt;/em&gt;, quelli che vorrebbero poter chiedere all&amp;rsquo;IA di programmare una applicazione &amp;ldquo;fatta così e cosà&amp;rdquo;, andare a mangiare una pizza e trovare tutto pronto  al ritorno, compreso il porting per le principali piattaforme e un sito di e-commerce dove venderla.&lt;/p&gt;&#xA;&lt;h4 id=&#34;mettere-antigravity-alla-prova&#34;&gt;Mettere Antigravity alla prova&lt;/h4&gt;&#xA;&lt;p&gt;Finora tutti questi esperimenti non è che ci abbiano fatto una &lt;a href=&#34;https://freedium-mirror.cfd/https://ninza7.medium.com/anthropic-gave-an-ai-a-job-the-results-were-hilarious-and-terrifying-e85a204b06f4&#34;&gt;grande figura&lt;/a&gt; ma, come ci &lt;a href=&#34;https://it.wikipedia.org/wiki/Mai_dire_mai_%28film%29&#34;&gt;insegna Sean Connery&lt;/a&gt;, mai dire mai. E allora vediamo come funzionano nella pratica le funzioni agentiche integrate in Google Antigravity.&lt;/p&gt;&#xA;&lt;p&gt;Per provarle, ho chiesto al programma di eseguire alcuni compiti specifici, spaziando da cose semplici fino ad un compito particolarmente complesso, cercando di lasciarlo libero di decidere cosa fare e intervenendo solo quando era davvero necessario. Ho scelto compiti vicini alle esigenze di ricercatore, ma credo che i risultati siano lo stesso molto significativi.&lt;/p&gt;&#xA;&lt;p&gt;Ecco come è andata.&lt;/p&gt;&#xA;&lt;h5 id=&#34;prima-di-iniziare&#34;&gt;Prima di iniziare&lt;/h5&gt;&#xA;&lt;p&gt;Prima di iniziare ho finto di usare Antigravity per la prima volta, cancellando con &lt;a href=&#34;https://freemacsoft.net/appcleaner/&#34;&gt;AppCleaner&lt;/a&gt; tutti i file generati dall&amp;rsquo;applicazione. Ho eseguito di nuovo la procedura di &lt;em&gt;onboarding&lt;/em&gt;, decidendo di &lt;code&gt;Start fresh&lt;/code&gt;, senza importare la configurazione da VS Code o da Windsurf, e di usare la modalità &lt;code&gt;Review driven development&lt;/code&gt;, senza modificare le opzioni di default.&lt;/p&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2026-01-21-sorpresa-antigravity/agent-mode.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;Per quanto riguarda le estensioni, non ne installo nessuna, perché preferisco decidere da solo cosa mi serve.&lt;/p&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2026-01-21-sorpresa-antigravity/extensions.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;Dimenticavo: la versione di Antigravity che ho usato per scrivere questo articolo è la 1.11.17 ma, vista la velocità dello sviluppo, è possibile che alcuni aspetti dell&amp;rsquo;interfaccia e del funzionamento del programma siano già cambiati al momento della pubblicazione dell&amp;rsquo;articolo.&lt;/p&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2026-01-21-sorpresa-antigravity/version.png&#34; alt=&#34;&#34;&gt;&lt;h5 id=&#34;compito-1-estrazione-di-dati-dalle-immagini&#34;&gt;Compito #1: Estrazione di dati dalle immagini&lt;/h5&gt;&#xA;&lt;p&gt;Cominciamo con una cosa semplice, ma molto importante quando si ha a che fare con dei vecchi articoli scientifici: estrarre i dati dalle immagini. Il mio obiettivo è verificare se è possibile istruire l&amp;rsquo;IA di Antigravity ad estrarre da solo i dati dalle figure di &lt;a href=&#34;https://link.springer.com/article/10.1007/s13762-025-06837-z&#34;&gt;questo articolo&lt;/a&gt; appena pubblicato, di cui non sono per niente orgoglioso (per usare un eufemismo), ma che i &lt;em&gt;referee&lt;/em&gt;, sorprendentemente, hanno accettato quasi senza fiatare.&lt;/p&gt;&#xA;&lt;div style = &#34;border-style: solid; border-width: 0px 0px 0px 12px; border-color: #03a87c; background-color: #defef6; padding: 1em; color:black; font-size:100%;&#34;&gt;&#xA;&lt;p&gt;Oggi, in base ai principi della &lt;a href=&#34;https://www.nature.com/collections/prbfkwmwvz&#34;&gt;riproducibilità dei risultati ottenuti&lt;/a&gt;, è diventato normale condividere tutti i dati di un articolo scientifico tramite dei &lt;em&gt;repository&lt;/em&gt; pubblici come &lt;a href=&#34;https://zenodo.org&#34;&gt;Zenodo&lt;/a&gt;, &lt;a href=&#34;https://osf.io&#34;&gt;OSF&lt;/a&gt;, &lt;a href=&#34;https://dataverse.org/&#34;&gt;Dataverse&lt;/a&gt; o magari &lt;a href=&#34;https://github.com/&#34;&gt;GitHub&lt;/a&gt;. Ma fino a pochi anni fa i dati originali erano di fatto accessibili solo attraverso le figure negli articoli, ed è proprio per questo che è fondamentale poterli estrarre dalle immagini.&lt;/p&gt;&#xA;&lt;p&gt;Ci sono parecchi programmi dedicati all&amp;rsquo;estrazione dei dati dalle figure (come &lt;a href=&#34;https://akhuettel.github.io/engauge-digitizer/&#34;&gt;questo&lt;/a&gt;, &lt;a href=&#34;https://www.digitizeit.xyz/&#34;&gt;questo&lt;/a&gt; o &lt;a href=&#34;https://cran.r-project.org/web/packages/metaDigitise/vignettes/metaDigitise.html&#34;&gt;questo&lt;/a&gt;), ma richiedono di essere guidati dall&amp;rsquo;utente, che al minimo deve definire la posizione degli assi X ed Y e i limiti delle coordinate da estrarre. Alcuni programmi riescono a funzionare automaticamente, ma solo se hanno a che fare con tipi ben definiti di immagini.&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;/br&gt;&#xA;&lt;p&gt;Prima di cominciare, creo una nuova directory dove salvo i grafici scaricati dalla &lt;a href=&#34;https://link.springer.com/article/10.1007/s13762-025-06837-z&#34;&gt;pagina web&lt;/a&gt; dell&amp;rsquo;articolo, proprio come farebbe un collega che volesse ripetere il mio esperimento. Già che ci sono, ci metto anche il file PDF dell&amp;rsquo;articolo, che mi servirà più avanti.&lt;/p&gt;&#xA;&lt;div style = &#34;border-style: solid; border-width: 0px 0px 0px 12px; border-color: #03a87c; background-color: #defef6; padding: 1em; color:black; font-size:100%;&#34;&gt;&#xA;&lt;p&gt;&lt;strong&gt;NOTA.&lt;/strong&gt; Tutte le domande riportate qui sotto sono state copiate senza correggere gli errori di battitura e la sintassi zoppicante, causati (anche) alla voglia di vedere rapidamente cosa veniva fuori. Tutto sommato questi errori sono utili, perché dimostrano che questi sistemi riescono a comprendere le nostre richieste anche quando la forma non è perfetta.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;/br&gt;&#xA;&lt;p&gt;Scelgo di usare &lt;code&gt;Gemini 3 Pro (High)&lt;/code&gt;, che in questo momento è il modello più potente presente in Antigravity, e per prima cosa gli chiedo di orientarsi nel contenuto della directory.&lt;/p&gt;&#xA;&#xA;&lt;details class=&#34;question&#34; open&gt;&#xA;    &lt;summary class=&#34;question&#34;&gt;&#xA;        Prompt&#xA;    &lt;/summary&gt;&#xA;    &lt;div class=&#34;question&#34;&gt;&#xA;        &#xA;In the current directory you will find a pdf file, a couple of folders and some inages in png or webp format. Is all this right?&#xA;&lt;div&gt;&#xA;&lt;/details&gt;&#xA;&#xA;&lt;p&gt;Gemini ci pensa un paio di secondi e poi mi conferma che è tutto corretto. Molto bene, allora&lt;/p&gt;&#xA;&#xA;&lt;details class=&#34;question&#34; open&gt;&#xA;    &lt;summary class=&#34;question&#34;&gt;&#xA;        Prompt&#xA;    &lt;/summary&gt;&#xA;    &lt;div class=&#34;question&#34;&gt;&#xA;        &#xA;Now open the file containing &#34;Fig1&#34; in the filename. This is an histogram showing the concentration of several chemical species in two kinds of Shungite, type Z (darker bars) and type B (lighter bars). Could you extract the values of concentration from the images? Please produce a table with the name of each chemical species and the associated concentrations for the Type Z and Type B material. Export the table as a csv file named &#34;gemini-fig1.csv&#34; and as a markdown file &#34;gemini-fig1.md&#34;&#xA;&lt;div&gt;&#xA;&lt;/details&gt;&#xA;&#xA;&lt;p&gt;Questa è l&amp;rsquo;immagine con cui ha a che fare Gemini&lt;/p&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2026-01-21-sorpresa-antigravity/13762_2025_6837_Fig1_HTML.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;Nonostante io sia stato volutamente vago sul nome del file, Gemini la trova senza problemi e e dopo una ventina di secondi produce i due file richiesti. La tabella generata da Gemini è questa&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Chemical Species&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type Z (Concentration %)&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type B (Concentration %)&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;SiO2&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;41&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;52&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;C&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;33&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;16&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Al2O3&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;11&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;16&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Fe2O3&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;5&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;3&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;FeO&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;3&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;2&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;TiO2&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;0.2&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;1&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;MnO&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;0.1&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;0.2&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;S&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;1.2&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;0.5&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;MgO&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;0.5&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;1.5&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Na2O&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;1.5&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;1.2&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;CaO&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;0.5&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;2&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;K2O&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;1&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;2&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;H2O&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;2&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;1.5&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;minor elements&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;0.5&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;0.5&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;Confrontandola con la tabella &lt;em&gt;vera&lt;/em&gt;, che contiene i valori di concentrazione realmente misurati&lt;/p&gt;&#xA;&lt;table&gt;&#xA;  &lt;thead&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Species&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type_Z&lt;/th&gt;&#xA;          &lt;th style=&#34;text-align: left&#34;&gt;Type_B&lt;/th&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/thead&gt;&#xA;  &lt;tbody&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;SiO2&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;40.8&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;52&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;C&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;33.4&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;16.3&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Al2O3&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;10.6&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;15.8&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Fe2O3&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;4.7&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;3.2&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;FeO&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;3.5&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;1.9&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;TiO2&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;0.4&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;0.9&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;MnO&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;0.14&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;0.12&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;S&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;1.1&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;0.6&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;MgO&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;0.3&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;1.6&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Na2O&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;1.6&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;1.2&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;CaO&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;0.4&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;2.3&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;K2O&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;1&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;2.2&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;H2O&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;1.6&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;1.4&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;      &lt;tr&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;Other&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;0.46&lt;/td&gt;&#xA;          &lt;td style=&#34;text-align: left&#34;&gt;0.48&lt;/td&gt;&#xA;      &lt;/tr&gt;&#xA;  &lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p&gt;si nota subito che tutti i valori estratti dalla figura sono molto vicini a quelli reali, con approssimazioni minime e sempre minori dello 0,5%.&lt;/p&gt;&#xA;&lt;p&gt;Sono davvero impressionato dal risultato: Antigravity ha fatto tutto in pochi secondi e senza nessun intervento da parte mia, a parte la preparazione dei file e la scrittura del prompt. È vero che anche i normali chatbot come ChatGPT o Claude possono fare le stesse cose, ma Antigravity ci permette di lavorare direttamente sul nostro computer e con i nostri file, senza dover trasferire niente su e giù per l&amp;rsquo;interfaccia web del chatbot.&lt;/p&gt;&#xA;&lt;p&gt;Compito superato a pieni voti.&lt;/p&gt;&#xA;&lt;h5 id=&#34;compito-2-riproduzione-di-grafici&#34;&gt;Compito #2: Riproduzione di grafici&lt;/h5&gt;&#xA;&lt;p&gt;Per motivi non rilevanti qui, ho partecipato poco &amp;ndash; e più che altro in modo critico &amp;ndash; alla stesura dell&amp;rsquo;&lt;a href=&#34;https://link.springer.com/article/10.1007/s13762-025-06837-z&#34;&gt;articolo&lt;/a&gt; menzionato nel Compito #1. In particolare, non mi sono occupato come al solito di preparare i grafici, che invece sono stati realizzati da una collega in &lt;a href=&#34;https://www.mathworks.com/products/matlab.html&#34;&gt;Matlab&lt;/a&gt;, un sistema di calcolo molto amato dagli ingegneri. I quali hanno ragione, perché con Matlab si possono fare con poco sforzo dei calcoli molto complicati. Ma produrre dei grafici di qualità non è certo il suo forte.&lt;/p&gt;&#xA;&lt;p&gt;Vediamo allora se riesco a far ricreare a Gemini 3 Pro l&amp;rsquo;istogramma del Compito #1, utilizzando la libreria &lt;a href=&#34;https://ggplot2.tidyverse.org/&#34;&gt;ggplot2&lt;/a&gt; di &lt;code&gt;R&lt;/code&gt;.&lt;/p&gt;&#xA;&#xA;&lt;details class=&#34;question&#34; open&gt;&#xA;    &lt;summary class=&#34;question&#34;&gt;&#xA;        Prompt&#xA;    &lt;/summary&gt;&#xA;    &lt;div class=&#34;question&#34;&gt;&#xA;         &#xA;Now generate the R code to recreate the same graph, using ggplot2 and whenever possible the functions available in the tidyverse.&#xA;&lt;div&gt;&#xA;&lt;/details&gt;&#xA;&#xA;&lt;p&gt;Dopo un po&amp;rsquo; lo script è pronto e viene salvato automaticamente nella directory del progetto. Gli do una rapida occhiata e mi sembra a posto. Apro il terminale integrato in Antigravity ed eseguo lo script come mi viene suggerito,&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Rscript recreate_fig1.R&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;e, a parte i colori invertiti, la figura è identica all&amp;rsquo;originale.&lt;/p&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2026-01-21-sorpresa-antigravity/recreated_fig1.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;Voglio essere chiaro su questo punto: io non ho toccato nemmeno una virgola del codice generato in Antigravity da Gemini (e non lo farò nemmeno in seguito), il quale quindi riesce da solo a ricreare in &lt;code&gt;R&lt;/code&gt; una copia quasi perfetta dell&amp;rsquo;originale, &lt;em&gt;leggendo&lt;/em&gt; i dati presenti nella figura e riconoscendo tutti gli elementi di contorno del grafico, come le etichette degli assi X e Y, le scale numeriche o la legenda.&lt;/p&gt;&#xA;&lt;p&gt;Conosco abbastanza bene R e avrei potuto ottenere lo stesso risultato in poco tempo, ma non c&amp;rsquo;è dubbio che anche in casi come questo Antigravity può essere un valido aiuto per chi è a digiuno di programmazione.&lt;/p&gt;&#xA;&lt;p&gt;Io comunque sono incontentabile e chiedo a Gemini di invertire i colori&lt;/p&gt;&#xA;&#xA;&lt;details class=&#34;question&#34; open&gt;&#xA;    &lt;summary class=&#34;question&#34;&gt;&#xA;        Prompt&#xA;    &lt;/summary&gt;&#xA;    &lt;div class=&#34;question&#34;&gt;&#xA;        &#xA;Sorry, but the colors are inverted. Type Z is light grey and Type B is dark grey. Please switch the colors so that they are identical to the original. Save the new R code as `Rscript recreate_fig1-1.R`&#xA;&lt;div&gt;&#xA;&lt;/details&gt;&#xA;&#xA;&lt;p&gt;Eseguo il nuovo script e ora i colori sono quelli corretti. Noto con piacere che anche il nome del file &lt;code&gt;png&lt;/code&gt; generato è stato aggiornato, cosa che rende più facile confrontare i diversi file prodotti da Gemini.&lt;/p&gt;&#xA;&lt;p&gt;Di nuovo, sono davvero molto impressionato. Gemini ha fatto tutto perfettamente e io non ho dovuto correggere nemmeno una riga del codice.&lt;/p&gt;&#xA;&lt;p&gt;Era un lavoro facile, non c&amp;rsquo;è dubbio, ma rimane comunque un risultato molto interessante. Anche perché stiamo parlando di un linguaggio specialistico come &lt;code&gt;R&lt;/code&gt;, che non ha certo la mole di esempi su cui addestrarsi che hanno linguaggi molto più diffusi, come Python o JavaScript.&lt;/p&gt;&#xA;&lt;p&gt;Anche questo compito mi pare superato a pieni voti.&lt;/p&gt;&#xA;&lt;h5 id=&#34;compito-3-generazione-di-nuovi-grafici&#34;&gt;Compito #3: Generazione di nuovi grafici&lt;/h5&gt;&#xA;&lt;p&gt;Gemini è riuscito a ricreare perfettamente l&amp;rsquo;istogramma dell&amp;rsquo;&lt;a href=&#34;https://link.springer.com/article/10.1007/s13762-025-06837-z&#34;&gt;articolo&lt;/a&gt;, ma vorrei verificare se ci sono delle rappresentazioni alternative più efficaci.&lt;/p&gt;&#xA;&lt;p&gt;Lascio di nuovo la palla a Gemini 3 Pro, che tira fuori due idee interessanti, un grafico &lt;em&gt;Lollipop&lt;/em&gt; e un &lt;em&gt;Dumbell plot&lt;/em&gt;, che però per varie ragioni non mi soddisfano più di tanto. Provo a fargli fare delle modifiche, Gemini esegue sempre tutto a puntino ma il risultato non migliora.&lt;/p&gt;&#xA;&lt;p&gt;Alla fine, mi convinco che il grafico più equilibrato è il solito istogramma, ma questa volta con gli assi X e Y scambiati e colori molto diversi per i due tipi di materiale.&lt;/p&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2026-01-21-sorpresa-antigravity/alternative_fig1_horizontal_bar.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;Dato che, come ho già detto, sono incontentabile, prendo una figura molto più complicata dal solito articolo,&lt;/p&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2026-01-21-sorpresa-antigravity/concentrazione_metalli3.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;e gli faccio ripetere il lavoro di generazione dei grafici equivalenti usando &lt;code&gt;R&lt;/code&gt; e &lt;code&gt;ggplot2&lt;/code&gt;. Gemini si mette subito all&amp;rsquo;opera e capisce da solo che la concentrazione dei vari elementi al giorno 0 vale per entrambi i tipi di materiale, una cosa che non è banale da capire guardando solo il grafico.&lt;/p&gt;&#xA;&#xA;&lt;details class=&#34;answer&#34; open&gt;&#xA;    &lt;summary class=&#34;answer&#34;&gt;&#xA;        Risposta&#xA;    &lt;/summary&gt;&#xA;    &lt;div class=&#34;answer&#34;&gt;&#xA;        &#xA;For Day 0 (&#34;untreated sample&#34;), I assigned the same concentration value to both Type Z and Type B in the dataset. This format suggests that both treatments start from the same baseline, which will make plotting lines easier in R.&#xA;&lt;div&gt;&#xA;&lt;/details&gt;&#xA;&#xA;&lt;p&gt;Vi risparmio i dettagli, dico solo che Gemini fa tutto quello che gli chiedo, e produce con poco sforzo diversi tipi di visualizzazioni diverse dei dati presenti nell&amp;rsquo;immagine qui sopra, come questa &lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2026-01-21-sorpresa-antigravity/fig4_heatmap.png&#34;&gt;heatmap&lt;/a&gt; o questo &lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2026-01-21-sorpresa-antigravity/fig4_sankey_grid_bold.png&#34;&gt;Sankey plot&lt;/a&gt;. I grafici prodotti non mi soddisfano al 100%, ma comunque dimostrano che Gemini è in grado di eseguire anche i compiti richiesti da utenti incontentabili come il sottoscritto.&lt;/p&gt;&#xA;&lt;p&gt;Gemini riesce anche a capire da solo che, se gli chiedo di mettere i grafici prodotti in due colonne, una per ciascuno dei due materiali studiati, quello che voglio davvero sono quelle che nel gergo di R si chiamano &lt;code&gt;facet&lt;/code&gt;. Sembra una cosa sciocca, ma significa che queste rappresentazioni più complesse diventano alla portata anche di chi sa cosa vuole, ma non sa come esprimerlo in modo preciso.&lt;/p&gt;&#xA;&lt;p&gt;Va detto, però ,che per quanto sia comodo (e anche divertente) chiedere e osservare Gemini mentre lavora, quando si arriva alle modifiche più fini si perde molto più tempo a scrivere le domande e ad aspettare le risposte che a lavorare direttamente sul codice. E questo è un dettaglio da tenere in conto.&lt;/p&gt;&#xA;&lt;p&gt;Diciamo che questo compito merita la sufficienza.&lt;/p&gt;&#xA;&lt;h5 id=&#34;compito-4-interazione-con-il-codice-e-il-sistema-operativo&#34;&gt;Compito #4: Interazione con il codice e il sistema operativo&lt;/h5&gt;&#xA;&lt;p&gt;Vediamo ora se Gemini 3 Pro integrato in Antigravity è in grado di eseguire delle operazioni basilari di gestione dei file e delle cartelle. Tutti gli esempi valgono per macOS, su cui ho fatto tutte le prove, ma anche per le varie incarnazioni di Linux e di BSD Unix.&lt;/p&gt;&#xA;&lt;p&gt;Per prima cosa gli chiedo di mettere ordine nei file generati finora, spostando gli script in R nella directory &lt;code&gt;code&lt;/code&gt;, i file dati in &lt;code&gt;data&lt;/code&gt; e i grafici podotti in &lt;code&gt;output&lt;/code&gt;. Gemini 3 Pro ci pensa un po&amp;rsquo; su e poi crea un semplice script di shell per eseguire quanto richiesto. Fa anche un errore, se ne accorge e mi chiede di autorizzarlo a correggerlo. Molto, molto bene.&lt;/p&gt;&#xA;&lt;p&gt;Ma quello che mi piace ancora di più è che aggiorna da solo tutto il codice già scritto con i nuovi percorsi dei vari file.&lt;/p&gt;&#xA;&lt;p&gt;Gli chiedo allora di aggiungere a ciascuno script in &lt;code&gt;R&lt;/code&gt; il mio solito preambolo, che crea un ambiente R ben definito. Gli do un esempio tratto da uno dei miei vecchi script. ma per il resto gli lascio mano libera. Gemini fa tutto a puntino e aggiorna di nuovo da solo tutti i percorsi dei file creati finora. Davvero impressionante!&lt;/p&gt;&#xA;&lt;p&gt;Gemini si comporta in modo ineccepibile anche con la conversione dei &lt;code&gt;tab&lt;/code&gt;, da due spazi a quattro spazi, come piace a me. Anzi, si accorge persino che deve farlo evitando errori di formattazione nel codice. Meglio di un &lt;em&gt;linter&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Passo infine al &lt;em&gt;versioning&lt;/em&gt; con &lt;code&gt;git&lt;/code&gt; che è sempre utile quando un progetto diventa appena complicato.&lt;/p&gt;&#xA;&#xA;&lt;details class=&#34;question&#34; open&gt;&#xA;    &lt;summary class=&#34;question&#34;&gt;&#xA;        Prompt&#xA;    &lt;/summary&gt;&#xA;    &lt;div class=&#34;question&#34;&gt;&#xA;        &#xA;Could you now initialize a local `git` repository for this project? Versioning is very useful as soon as a project starts to become complicated.&#xA;&lt;div&gt;&#xA;&lt;/details&gt;&#xA;&#xA;&lt;p&gt;Va tutto a meraviglia, Gemini crea il &lt;em&gt;repository&lt;/em&gt; richiesto, fa un primo &lt;em&gt;commit&lt;/em&gt; e aggiunge anche un file &lt;code&gt;.gitignore&lt;/code&gt; sensato. Ovviamente posso interrogarlo per chiedere lo &lt;em&gt;status&lt;/em&gt; del repository o per eseguire tutte le altre operazioni con &lt;code&gt;git&lt;/code&gt; che sono abituato ad eseguire dal Terminale.&lt;/p&gt;&#xA;&lt;p&gt;Devo ammettere che ho un po&amp;rsquo; paura a far fare tutte queste cose ad un sistema &lt;em&gt;agentico&lt;/em&gt;, ma in ogni caso il risultato è perfetto.&lt;/p&gt;&#xA;&lt;p&gt;Anche in questo caso vale quello che ho scritto alla fine del Compito precedente: chi conosce bene i comandi di &lt;code&gt;git&lt;/code&gt; fa molto più in fretta a lavorare nel Terminale che a chiedere a Gemini. Però è altrettanto vero che per il normale ricercatore (ma anche per il normale utente) a digiuno di Terminale e sistemi di &lt;em&gt;versioning&lt;/em&gt;, usare un sistema ad agenti come questo può essere un ottimo modo per interagire a basso livello con il codice senza dover studiare pagine e pagine di documentazione.&lt;/p&gt;&#xA;&lt;p&gt;In ogni caso, un altro compito superato a pieni voti.&lt;/p&gt;&#xA;&lt;h5 id=&#34;compito-5-analisi-statistica-dei-dati&#34;&gt;Compito #5: Analisi statistica dei dati&lt;/h5&gt;&#xA;&lt;p&gt;Qui non la faccio lunga, anche perché sulla analisi statistica Antigravity/Gemini 3 Pro è un po&amp;rsquo; scarso.&lt;/p&gt;&#xA;&lt;p&gt;Se lo lascio libero di fare quello che preferisce, tira fuori cose senza senso, come creare delle matrici di correlazione fra le concentrazioni dei diversi metalli pesanti o cercare di confrontare le &amp;ldquo;differenze di efficacia&amp;rdquo; dei due materiali. Non è un compito facile, lo ammetto, ma dimostra &amp;ndash; se ci fosse ancora bisogno di dimostrarlo &amp;ndash; che questi sistemi &lt;em&gt;intelligenti&lt;/em&gt; sono molto utili quando gli si dice con precisione cosa fare, ma non riescono a lavorare da soli quando l&amp;rsquo;utente non ha una idea chiara su cosa vuole ottenere.&lt;/p&gt;&#xA;&lt;p&gt;Infatti, quando gli spiego per benino con che tipo di dati ho a che fare e cosa voglio ottenere,&lt;/p&gt;&#xA;&#xA;&lt;details class=&#34;question&#34; open&gt;&#xA;    &lt;summary class=&#34;question&#34;&gt;&#xA;        Prompt&#xA;    &lt;/summary&gt;&#xA;    &lt;div class=&#34;question&#34;&gt;&#xA;        &#xA;The two types of shungite, type Z and type B, are different materials and they are used independently. In other words, the experiments made using type Z material is completely independent from the experiment with type B, so the two materials cannot be directly compared. This means that the stat_difference_boxplot has little sense, and the same is true for the correlation matrix which photographs a single day (I guess day 0 for only one type of material), while we are interested to time series. Therefore you should try to use some statistical analysis able to deal with time series.&#xA;&lt;div&gt;&#xA;&lt;/details&gt;&#xA;&#xA;&lt;p&gt;Gemini ci pensa su per un po&amp;rsquo;, fa degli errori ma riesce a correggerli da solo e alla fine tira fuori un modellino che dimostra come il materiale di tipo Z assorbe i metalli pesanti più rapidamente del materiale di tipo B. Se ci fossero più dati a disposizione, avrebbe senso ragionare un po&amp;rsquo; sul modello, ma per ora può bastare.&lt;/p&gt;&#xA;&lt;p&gt;Difficile dare un voto qui, diciamo non classificato.&lt;/p&gt;&#xA;&lt;h5 id=&#34;compito-6-estrazione-di-tabelle-dai-file-pdf&#34;&gt;Compito #6: Estrazione di tabelle dai file PDF&lt;/h5&gt;&#xA;&lt;p&gt;Qui entrarre in un territorio ostile. Estrarre automaticamente il contenuto delle tabelle contenute nei file PDF sembra una cosa banale, e invece è un argomento su cui si sono arrovellati centinaia e centinaia di ricercatori, e io fra questi. Il problema principale è che il formato PDF è orientato a gestire l&amp;rsquo;aspetto grafico della pagina, ma non &lt;em&gt;sa&lt;/em&gt; nulla del suo contenuto.&lt;/p&gt;&#xA;&lt;p&gt;Per le mie prove, ho chiesto ad Antigravity di aprire il file PDF di uno degli &lt;a href=&#34;https://protezionecivile.regione.puglia.it/annali-idrologici-parte-i-documenti-dal-1921-al-2021&#34;&gt;Annali Idrologici della Regione Puglia&lt;/a&gt; e di estrarre i dati di temperatura minima e massima misurati in alcune stazioni meteorologiche pugliesi. I dati giornalieri ora sono &lt;a href=&#34;https://reteidrometeo.protezionecivile.puglia.it/polarisopen/gis/map&#34;&gt;disponibili sul web&lt;/a&gt;, ma gli Annali in PDF rimangono una risorsa fondamentale, perché contengono i dati di temperatura e precipitazione (e altro) misurati in tutte le circa 150 stazioni della rete meteorologica pugliese a partire dal 1921, permettendo così di &lt;a href=&#34;https://iopscience.iop.org/article/10.1088/1742-6596/1065/19/192005&#34;&gt;analizzare&lt;/a&gt; com&amp;rsquo;è &lt;a href=&#34;https://www.sciencedirect.com/science/article/abs/pii/S0048969719344067&#34;&gt;cambiato il clima della regione&lt;/a&gt; nell&amp;rsquo;ultimo secolo.&lt;/p&gt;&#xA;&lt;p&gt;Il problema di estrarre i dati da questi file PDF l&amp;rsquo;ho &lt;a href=&#34;https://presentations.copernicus.org/EGU23/EGU23-15072_presentation.pdf&#34;&gt;risolto anni fa&lt;/a&gt; attraverso una combinazione di script in &lt;code&gt;R&lt;/code&gt; e &lt;code&gt;AWK&lt;/code&gt;, ma la procedura è lunga e complessa perché bisogna correggere a mano le tante incongruenze contenute nelle tabelle.&lt;sup id=&#34;fnref:4&#34;&gt;&lt;a href=&#34;#fn:4&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;4&lt;/a&gt;&lt;/sup&gt; Alla fine, per estrarre i dati di un singolo anno ci vogliono un paio di ore di lavoro attento, che non è male vista la complessità dell&amp;rsquo;analisi, ma che sarebbe molto utile riuscire a delegare all&amp;rsquo;IA.&lt;/p&gt;&#xA;&lt;p&gt;E allora provo a farlo fare a Gemini 3 Pro, scrivendo un prompt bello lungo dove gli spiego per filo e per segno cosa fare&lt;/p&gt;&#xA;&#xA;&lt;details class=&#34;question&#34; open&gt;&#xA;    &lt;summary class=&#34;question&#34;&gt;&#xA;        Prompt&#xA;    &lt;/summary&gt;&#xA;    &lt;div class=&#34;question&#34;&gt;&#xA;        &#xA;    &#xA;    &lt;p&gt;Open &lt;code&gt;annale2013.pdf&lt;/code&gt; and go to page 6, where you will find a pair of data tables with measured precipitations [sic! sarebbe dovuto essere &amp;ldquo;temperatures&amp;rdquo;] for two weather stations. The data is arranged in pairs of columns, and each pair corresponds to a month, &lt;code&gt;G&lt;/code&gt; for &lt;code&gt;gennaio&lt;/code&gt; (january), &lt;code&gt;F&lt;/code&gt; for &lt;code&gt;febbraio&lt;/code&gt; (february), etc,. until &lt;code&gt;D&lt;/code&gt; or &lt;code&gt;dicembre&lt;/code&gt; (december).&lt;/p&gt;&#xA;    &lt;p&gt;As for the pairs, the first column is the minimum temperature and the second column is the maximum temperature.&lt;/p&gt;&#xA;    &lt;p&gt;Each row represents a different day.&lt;/p&gt;&#xA;    &lt;p&gt;At the end of each table there are some summary data, &lt;code&gt;Medie&lt;/code&gt;, &lt;code&gt;Med.mens.&lt;/code&gt; and &lt;code&gt;Med.norm&lt;/code&gt; that you can skip.&lt;/p&gt;&#xA;    &lt;p&gt;Missing data can be marked by either one or more &lt;code&gt;&amp;gt;&lt;/code&gt; or &lt;code&gt;&amp;lt;&lt;/code&gt; signs, or by &lt;code&gt;=&lt;/code&gt; or be simply blank. In some tables there are extraneuous signs that you can skip outright.&lt;br&gt;&#xA;    Read the table and generate two different csv files, one for the maximum temperature and one for the minimum temperature, following this example&lt;/p&gt;&#xA;    &lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Date,Altamura,Andretta&#xA;    2007-01-01,13.4, 7.7,&#xA;    2007-01-02,15.7, 9.7,&#xA;    2007-01-03, 7.1, 2.7,&#xA;    2007-01-04, 9.5, 7.0,&#xA;    &lt;/code&gt;&lt;/pre&gt;&lt;p&gt;The header contains the date in ISO format, YYYY-MM-DD, and the name of the weather station which is written in bold at the top of each table, just under the months. All other information in thsi area, eg., &lt;code&gt;(Te)&lt;/code&gt;, &lt;code&gt;Bacino&lt;/code&gt; etc. is not useful and can be skipped.&lt;/p&gt;&#xA;    &#xA;&#xA;&lt;div&gt;&#xA;&lt;/details&gt;&#xA;&#xA;&lt;p&gt;Gemini prova e riprova a risolvere il problema con Python, ma i suoi script producono un sacco di errori e saltano parecchi giorni con dati validi. Del resto non è un problema facile, ci ho buttato il sangue io stesso per mesi, per cui gli do un aiutino.&lt;/p&gt;&#xA;&lt;p&gt;Ma a questo punto Gemini va in errore e non c&amp;rsquo;è verso di andare avanti.&lt;/p&gt;&#xA;&lt;p&gt;La cosa migliore sarebbe ricominciare da zero, ma nel frattempo ho raggiunto il &lt;code&gt;quota limit for Gemini 3 Pro (High)&lt;/code&gt; e dovrei aspettare diversi giorni prima di poter continuare.&lt;/p&gt;&#xA;&lt;p&gt;Non se ne parla, preferisco cambiare modello e passo a &lt;code&gt;Gemini 3 Flash&lt;/code&gt; di cui tutti parlano in questo momento. Gemini 3 Flash si mette al lavoro e mi propone un piano di lavoro che sembra sensato, ma che alla prova dei fatti produce, come ammette lui stesso, una &lt;em&gt;jumbled mess&lt;/em&gt; (un pasticcio confuso) perché ci sono &lt;em&gt;extraneous characters and unclear formatting&lt;/em&gt; (caratteri estranei e formattazione poco chiara).&lt;/p&gt;&#xA;&lt;p&gt;Gli suggerisco di usare la libreria &lt;code&gt;pdftools&lt;/code&gt; di R, che ho usato io stesso e che dà risultati infinitamente migliori dei tool analoghi per Python e alla fine, bingo!, Gemini ce la fa e produce un file dati corretto al 100%.&lt;/p&gt;&#xA;&lt;p&gt;Lo so, per essere davvero utile dovrei fargli ripetere il processo per tutte le stazioni e per parecchi anni diversi, ma per ora mi accontento, anche perché non voglio sprecare tutta la mia quota in questa attività. In ogni caso il risultato raggiunto con &lt;code&gt;Gemini 3 Flash&lt;/code&gt; è molto promettente e merita di essere approfondito come si deve.&lt;/p&gt;&#xA;&lt;p&gt;Va detto, invece, che con &lt;code&gt;Claude Sonnet 4.5 (Thinking)&lt;/code&gt; non c&amp;rsquo;è verso di fargli fare qualcosa di buono. Prova e riprova, raggiungo il limite di quota anche per questo modello  e mi devo fermare.&lt;/p&gt;&#xA;&lt;p&gt;Votazione? Gemini 3 Flash prende il massimo, mentre Gemini 3 Pro andrebbe riprovato nelle stesse condizioni del modello minore. Claude Sonnet 4.5, infine, prende un non classificato&lt;/p&gt;&#xA;&lt;h5 id=&#34;compito-7-programmazione-di-un-microcontroller&#34;&gt;Compito #7: Programmazione di un microcontroller&lt;/h5&gt;&#xA;&lt;p&gt;Un altro campo in cui le funzioni &lt;em&gt;agentiche&lt;/em&gt; di Google Antigravity potrebbero dimostrarsi molto interessanti e la programmazione dei microcontroller, come Arduino, Raspberry Pi Pico o ESP32. Ci sono letteralmente una marea di questi oggettini, e non per niente facile orientarsi fra i tanti modelli diversi e, ancora di più, fra le migliaia di sensori e moduli che gli si possono collegare.&lt;/p&gt;&#xA;&lt;p&gt;In questo caso specifico, un sistema di IA che produca velocemente del codice funzionante potrebbe essere davvero utile.&lt;/p&gt;&#xA;&lt;p&gt;Per le mie prove decido di usare un &lt;a href=&#34;https://www.arduino.cc/pro/hardware-product-nicla-vision/&#34;&gt;Nicla Vision&lt;/a&gt;, che di fatto è un Arduino con una videocamera incorporata. Il Nicla Vision è un vero gioiellino, che non costa poco ma che vale tutti i soldi spesi. Ma è anche un oggetto poco diffuso rispetto ai normali microcontroller, per cui se Antigravity riesce a programmarlo correttamente, riuscirà di sicuro a fare altrettanto con i normali Arduino, Pi Pico o ESP32.&lt;/p&gt;&#xA;&lt;p&gt;Torno quindi ad usare &lt;code&gt;Gemini 3 Flash&lt;/code&gt; e gli chiedo se conosce il Nicla Vision. Gli do anche il link alla pagina web del prodotto per aiutarlo ad orientarsi. Gemini mi conferma di sapere bene di cosa sto parlando, per cui possiamo partire può partire.&lt;/p&gt;&#xA;&lt;p&gt;Per programmare questi oggettini, io ho sempre e solo usato &lt;a href=&#34;https://www.arduino.cc/en/software/&#34;&gt;Arduino IDE&lt;/a&gt; e &lt;a href=&#34;https://thonny.org/&#34;&gt;Thonny&lt;/a&gt; e non so se Gemini può gestire il microcontroller direttamente dall&amp;rsquo;editor. Quando glielo chiedo, Gemini risponde con un comando molto semplice&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;% ls /dev/tty.usbmodem* /dev/cu.usbmodem* 2&amp;gt;/dev/null || echo &amp;#34;No usbmodem devices found&amp;#34;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;che permette di controllare che il Nicla Vision sia collegato al Mac. Una volta che l&amp;rsquo;ha trovato, verifica se sono installate le librerie Python necessarie per comunicare con il microcontroller e, dato che non ci sono, mi propone di installarle. Giustamente mi dà anche la possibilità di scegliere se farlo a livello globale o in un &lt;code&gt;virtual environment&lt;/code&gt;, e non c&amp;rsquo;è bisogno di dire che scelgo la seconda opzione.&lt;/p&gt;&#xA;&lt;p&gt;Gemini prepara anche un piccolo script di test che fa lampeggiare il LED (il classico Hello World dell&amp;rsquo;IoT) e, quando gli confermo che tutto funziona, proclama soddisfatto&lt;/p&gt;&#xA;&#xA;&lt;details class=&#34;answer&#34; open&gt;&#xA;    &lt;summary class=&#34;answer&#34;&gt;&#xA;        Risposta&#xA;    &lt;/summary&gt;&#xA;    &lt;div class=&#34;answer&#34;&gt;&#xA;        &#xA;I&#39;m ready to start writing more complex code for your project. What would you like to build first?&#xA;&lt;div&gt;&#xA;&lt;/details&gt;&#xA;&#xA;&lt;p&gt;Fin qui Gemini non fa nulla di più di quello che avrei potuto fare io stesso con &lt;a href=&#34;https://brew.sh/&#34;&gt;Homebrew&lt;/a&gt; e &lt;a href=&#34;https://github.com/conda/conda&#34;&gt;Conda&lt;/a&gt;. Ma per riuscirci avrei dovuto consultare pagine e pagine di documentazione sparsa per il web. Qui invece riesco a configurare tutto in pochi minuti, e per di più imparo tante cose utili.&lt;/p&gt;&#xA;&lt;p&gt;Dato che Gemini era così ansioso di rendersi utile, gli ho chiesto di scrivere un piccolo programma che sfrutta il Nicla Vision per scattare delle foto ad intervalli prestabiliti e inviarle al Mac tramite Wi-Fi. Risultato? Ha funzionato tutto al primo colpo.&lt;/p&gt;&#xA;&lt;p&gt;E Gemini non si è nemmeno offeso quando gli ho detto papale papale che non mi fidavo a dargli in pasto la password del mio Wi-Fi, anzi ha proposto una soluzione alternativa più sicura. Ma io sono malfidato, e alla fine ho usato l&amp;rsquo;hotspt del mio iPhone con una password usa e getta.&lt;/p&gt;&#xA;&lt;p&gt;Anche l&amp;rsquo;ultimo compito è superato a pieni voti.&lt;/p&gt;&#xA;&lt;h4 id=&#34;lasciare-una-traccia&#34;&gt;Lasciare una traccia&lt;/h4&gt;&#xA;&lt;p&gt;&lt;del&gt;Una cosa seccante di Antigravity è che non dispone di una funzione per esportare un &lt;code&gt;log&lt;/code&gt; completo di quello che si fa, con le domande fatte e le risposte del modello, e magari anche i suoi &lt;em&gt;pensieri&lt;/em&gt;.&lt;/del&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Correzione.&lt;/strong&gt; Mi sbagliavo, l&amp;rsquo;abbreviazione da tastiera &lt;strong&gt;CMD&lt;/strong&gt; (⌘)-&lt;strong&gt;E&lt;/strong&gt; consente di aprire l&amp;rsquo;&lt;code&gt;Agent Manager&lt;/code&gt;, una finestra separata di Antigravity che, fra le altre cose, consente di vedere l&amp;rsquo;intera storia di quello che ha fatto Antigravity, compresi i suoi &lt;em&gt;pensieri&lt;/em&gt;. Il problema è che non c&amp;rsquo;è una voce di menu specifica per l&amp;rsquo;Agent Manager (o almeno, io non l&amp;rsquo;ho trovata) e l&amp;rsquo;abbreviazione da tastiera è visibile solo all&amp;rsquo;avvio del programma.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Correzione #2.&lt;/strong&gt; Si può aprire l&amp;rsquo;Agent Manager direttamente dalla barra degli strumenti di Antigravity: la voce corrispondente si trova proprio accanto alle icone che permettono di modificare il layout dell’applicazione e di effettuare delle ricerche. Non so perché non me ne sia accorto prima, ma è anche vero che tutti gli altri comandi della barra degli strumenti sono rappresentati da icone; per questo non è immediato riconoscere quella voce come un comando anziché come una semplice stringa, come avviene per il nome dell’applicazione che occupa il centro della barra degli strumenti.&lt;/p&gt;&#xA;&lt;p&gt;In ogni caso, dopo ogni operazione volta, Antigravity mi permette di leggere un &lt;code&gt;Walkthrough&lt;/code&gt; dettagliato di ciò che ha fatto  e, facendo click con il tasto destro sul Tab relativo,&lt;/p&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2026-01-21-sorpresa-antigravity/walkthrough.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;mi accorgo che posso &lt;em&gt;rivelare&lt;/em&gt; il file nel Finder. Quando lo faccio, compare una cartella con un gran numero di file Markdown, con nomi standard come &lt;code&gt;implementation_plan&lt;/code&gt;, &lt;code&gt;task&lt;/code&gt;,  o &lt;code&gt;walkthrough&lt;/code&gt; seguiti dal suffisso &lt;code&gt;resolved&lt;/code&gt; e da un numero progressivo&lt;/p&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2026-01-21-sorpresa-antigravity/agent-files.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;che dovrebbero rappresentare la &lt;em&gt;storia&lt;/em&gt; di tutto quello che faccio con il sistema agentico.&lt;/p&gt;&#xA;&lt;p&gt;Da quanto vedo, ogni volta che chiedo qualcosa ad uno degli &lt;em&gt;agenti&lt;/em&gt; integrati, Antigravity genera tre file contenenti: (1) quello che deve fare, &lt;code&gt;task&lt;/code&gt;, (2) il piano di lavoro, &lt;code&gt;implementation_plan&lt;/code&gt; e (3) una sintesi di quello che ha fatto, &lt;code&gt;walkthrough&lt;/code&gt;. A prima vista, non è facile mettere in relazione fra loro questi file, ma il meccanismo merita di essere approfondito. Per la cronaca, tutti i file in questione si trovano in una directory contenuta all&amp;rsquo;interno di  &lt;code&gt;~/.gemini/antigravity/brain/&lt;/code&gt;, ma la directory principale &lt;code&gt;~/.gemini/antigravity/&lt;/code&gt; contiene parecchie altre directory con file di configurazione, codice generato e altro.&lt;/p&gt;&#xA;&lt;h4 id=&#34;conclusioni&#34;&gt;Conclusioni&lt;/h4&gt;&#xA;&lt;p&gt;Da quello che ho scritto è chiaro che usare Antigravity mi è piaciuto. Ci sono casi in cui chi sa programmare rischia di essere &lt;a href=&#34;https://mastodon.social/@recantha/115829219381438249&#34;&gt;più rallentato che aiutato&lt;/a&gt;, ma in generale, e soprattutto per coloro che sanno usare Word, Excel e poco più, le funzioni &lt;em&gt;agentiche&lt;/em&gt; di Antigravity possono rivelarsi un aiuto davvero prezioso.&lt;/p&gt;&#xA;&lt;p&gt;Nel corso della mia vita di programmatore non-professionista sono passato dallo  scrivere il codice consultando i volumoni giganteschi di documentazione a cercare le risposte su &lt;a href=&#34;https://stackoverflow.com&#34;&gt;StackOverflow&lt;/a&gt;. Per come la vedo io, le funzioni &lt;em&gt;agentiche&lt;/em&gt; di Antigravity sono come uno &lt;a href=&#34;https://stackoverflow.com/&#34;&gt;StackOverflow&lt;/a&gt; con il turbo: non si limitano a presentare delle risposte alle nostre domande, ma le interpretano, ragionano su di esse e propongono soluzioni in modo quasi autonomo.&lt;/p&gt;&#xA;&lt;p&gt;Ma, proprio come su StackOverflow, bisogna sempre fare affidamento sulle proprie conoscenze e sulla propria esperienza per separare il grano dal loglio, le risposte utili e davvero funzionanti da quelle che valgono meno di niente.&lt;/p&gt;&#xA;&lt;p&gt;Non parliamo però per favore di &lt;em&gt;vibe coding&lt;/em&gt;, cioè di poter chiedere genericamente al programma di svolgere un dato compito, per poi andarsene in giro mentre Antigravity fa tutto da solo!&lt;sup id=&#34;fnref:5&#34;&gt;&lt;a href=&#34;#fn:5&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;5&lt;/a&gt;&lt;/sup&gt; Come si vede dagli esempi, se non si è molto precisi e non gli si spiega per bene cosa vogliamo, controllando poi passo passo ciò che Antigravity propone di fare, si rischia che l&amp;rsquo;intero processo fallisca o produca dei risultati sbagliati.&lt;/p&gt;&#xA;&lt;p&gt;Proprio come un tesista, una dottoranda, o un nuovo collega, Antigravity può darti una grossa mano se sai cosa vuoi e come lo vuoi ottenere, e se glielo spieghi per bene. Ma &lt;a href=&#34;https://bigthink.com/starts-with-a-bang/vibe-physics-ai-slop/&#34;&gt;fargli tirare fuori delle idee sue&lt;/a&gt;, non dico originali ma almeno sensate, per ora è solo fantascienza. O marketing.&lt;/p&gt;&#xA;&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;&#xA;&lt;hr&gt;&#xA;&lt;ol&gt;&#xA;&lt;li id=&#34;fn:1&#34;&gt;&#xA;&lt;p&gt;Già il solo fatto che Google utilizzasse, per un suo strumento di sviluppo, del codice prodotto da un concorrente diretto mi sembrava, diciamo così, piuttosto singolare.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:2&#34;&gt;&#xA;&lt;p&gt;È vero che TextMate e BBEdit non sono delle IDE vere e proprie (soprattutto TextMate), ma la differenza di dimensioni rimane lo stesso impressionante.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:3&#34;&gt;&#xA;&lt;p&gt;Io stesso ho sviluppato parecchi anni fa un programma in &lt;del&gt;C&lt;/del&gt;, no era in Python, che faceva tutto da solo, ma funzionava solo con le immagini di un tipo ben determinato di oscilloscopio digitale.&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:4&#34;&gt;&#xA;&lt;p&gt;La fantasia degli estensori delle tabelle meriterebbe un premio.&amp;#160;&lt;a href=&#34;#fnref:4&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:5&#34;&gt;&#xA;&lt;p&gt;Anche un guru della programmazione molto indaffarato come Linus Torvalds usa il vibe coding, ma sa perfettamente quello che vuole fargli fare. E comunque lo usa solo &lt;a href=&#34;https://itsfoss.com/news/linus-torvalds-vibe-coding/&#34;&gt;per i suoi giochetti&lt;/a&gt;, non certo per sviluppare il kernel di Linux.&amp;#160;&lt;a href=&#34;#fnref:5&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/div&gt;&#xA;</description>
    </item>
    <item>
      <title>Fotocopiato!</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2025/12/15/fotocopiato/</link>
      <pubDate>Mon, 15 Dec 2025 18:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2025/12/15/fotocopiato/</guid>
      <description>&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/SVCBA-pBgt0?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;    &lt;/div&gt;&#xA;&#xA;&lt;p&gt;Il video qui sopra è la presentazione ufficiale di &lt;a href=&#34;https://antigravity.google/&#34;&gt;Google Antigravity&lt;/a&gt;, una IDE (&lt;em&gt;Integrated Development Environment&lt;/em&gt;) che non è solo una semplice IDE ma è &amp;ldquo;&lt;em&gt;un nuovo modo di lavorare per questa prossima era dell&amp;rsquo;intelligenza agentica&lt;/em&gt;&amp;rdquo;. Che non ho ancora ben capito cosa significa, ma che suona tanto intelligente e al passo con i tempi.&lt;/p&gt;&#xA;&lt;p&gt;E allora vediamo cos&amp;rsquo;è questo &amp;ldquo;&lt;em&gt;nuovo modo di lavorare&lt;/em&gt;&amp;rdquo; nel quale gli agenti &amp;ldquo;&lt;em&gt;ti aiutano a decollare&lt;/em&gt;&amp;rdquo;. Una espressione che in altri tempi avrebbe significato ben altro.&lt;/p&gt;&#xA;&lt;p&gt;Scarico l&amp;rsquo;ultima versione disponibile di Google Antigravity, la 1.11.17 per la cronaca, che una volta installata occupa la bellezza di 700 MB. Una volta superate le solite schermate di &lt;em&gt;onboarding&lt;/em&gt; ed essermi autenticato tramite il mio account Gmail, ecco cosa viene fuori&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-12-15-fotocopiato/google-antigravity.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-12-15-fotocopiato/google-antigravity.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Praticamente &lt;a href=&#34;https://code.visualstudio.com/&#34;&gt;VS Code&lt;/a&gt; di Microsoft, con in più il tool &lt;em&gt;agentico&lt;/em&gt; &lt;code&gt;Antigravity&lt;/code&gt;, che non so ancora bene a cosa possa servire e, soprattutto, se serve davvero.&lt;/p&gt;&#xA;&lt;p&gt;Del resto, me lo avevano praticamente detto durante l&amp;rsquo;onboarding, quando è comparsa questa schermata dove mi veniva proposto di configurare l&amp;rsquo;editor da zero oppure di importare la configurazione da VS Code. O da Windsurf.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-12-15-fotocopiato/google-antigravity-setup.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-12-15-fotocopiato/google-antigravity-setup.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Windsurf?&lt;/p&gt;&#xA;&lt;p&gt;Sì, &lt;a href=&#34;https://windsurf.com/&#34;&gt;Windsurf&lt;/a&gt;, un editor derivato da &lt;a href=&#34;https://cursor.com/&#34;&gt;Cursor&lt;/a&gt;,&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt; che a sua volta derivava dal solito VS Code.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-12-15-fotocopiato/windsurf.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-12-15-fotocopiato/windsurf.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;La somiglianza (per usare un eufemismo) diventa evidente quando li si mette uno accanto all&amp;rsquo;altro, Antigravity a sinistra e Windsurf a destra.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-12-15-fotocopiato/side-by-side.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-12-15-fotocopiato/side-by-side.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Identici.&lt;/p&gt;&#xA;&lt;p&gt;Insomma, l&amp;rsquo;IDE rivoluzionaria, il &amp;ldquo;&lt;em&gt;nuovo modo di lavorare per questa prossima era dell&amp;rsquo;intelligenza agentica&lt;/em&gt;&amp;rdquo; che &amp;ldquo;&lt;em&gt;ti aiuta a decollare&lt;/em&gt;&amp;rdquo;, non è altro che un clone di un editor che a sua volta era già il clone di un altro editor che a sua volta era il clone&amp;hellip;&lt;/p&gt;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/Rm_aUj4B4dU?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;    &lt;/div&gt;&#xA;&#xA;&lt;p&gt;Basta &lt;a href=&#34;https://levelup.gitconnected.com/the-2-4b-clone-how-three-companies-carved-up-one-startup-in-72-hours-36039524a9bb&#34;&gt;approfondire un po&amp;rsquo;&lt;/a&gt; per scoprire che Google ha speso 2.4 miliardi di dollari per acquisire il codice di Windsurf e per assumere i due fondatori, Varun Mohan e Douglas Chen, insieme ad una manciata di sviluppatori dell&amp;rsquo;azienda.&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt; Ma, per timore di interventi dell&amp;rsquo;antitrust, Google ha evitato di acquistare il prodotto vero e proprio o il marchio, per cui Windsurf continua ad esistere e ad essere sviluppato indipendentemente, provando a ripetere la storia di Davide contro Golia.&lt;/p&gt;&#xA;&lt;p&gt;Insomma, è un po&amp;rsquo; come se negli anni &amp;lsquo;80 Microsoft avesse assunto Steve Jobs e Steve Wozniak, con magari anche Bill Atkinson, Andy Hertzfeld e Susan Kare, prendendo con loro anche il codice del primo Macintosh. Per poi ripubblicarlo qualche mese dopo come Windows 1.0. E tutto ciò mentre Apple continuava tranquillamente a sviluppare lo stesso codice per il Mac originale.&lt;/p&gt;&#xA;&lt;p&gt;Ho l&amp;rsquo;impressione che quelli di Google abbiano usato qualcos&amp;rsquo;altro per decollare.&lt;/p&gt;&#xA;&lt;p&gt;Ma a parte le battute, gli &lt;em&gt;agenti&lt;/em&gt; presenti in Antigravity funzionano e sono utili nel corso dello sviluppo del codice? Non lo so nemmeno io, ed è quello che vedremo in diretta la prossima volta.&lt;/p&gt;&#xA;&lt;div class=&#34;footnotes&#34; role=&#34;doc-endnotes&#34;&gt;&#xA;&lt;hr&gt;&#xA;&lt;ol&gt;&#xA;&lt;li id=&#34;fn:1&#34;&gt;&#xA;&lt;p&gt;Chi è interessato alle polemiche nate dopo le ultime modifiche ai prezzi di Cursor può leggere &lt;a href=&#34;https://medium.com/@chrisdunlop_37984/wtf-is-cursor-doing-with-its-pricing-i-have-to-swap-at-this-rate-63681001a08e&#34;&gt;qui&lt;/a&gt;.&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:2&#34;&gt;&#xA;&lt;p&gt;L&amp;rsquo;articolo citato è a pagamento, ma può essere letto liberamente &lt;a href=&#34;https://freedium-mirror.cfd/https://levelup.gitconnected.com/the-2-4b-clone-how-three-companies-carved-up-one-startup-in-72-hours-36039524a9bb&#34;&gt;qui&lt;/a&gt;.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/div&gt;&#xA;</description>
    </item>
  </channel>
</rss>
