<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Articoli su aldolat.it</title>
    <link>https://www.aldolat.it/</link>
    <description>Ultimi articoli pubblicati su aldolat.it</description>
    <generator>Hugo -- gohugo.io</generator>
    <language>it</language>
    <managingEditor>Aldo Latino (aldolat@gmail.com)</managingEditor>
    <webMaster>Aldo Latino (aldolat@gmail.com)</webMaster>
    <copyright>Creative Commons BY-SA 4.0</copyright>
    <lastBuildDate>Sun, 14 Jun 2026 19:12:47 +0200</lastBuildDate>
    <atom:link href="https://www.aldolat.it/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Spostare in cima il pannello degli allegati di Thunderbird</title>
      <link>https://www.aldolat.it/posts/2026/spostare-pannello-allegati-thunderbird/</link>
      <pubDate>Sun, 19 Apr 2026 17:15:00 +0200</pubDate>
      <author>Aldo Latino (aldolat@gmail.com)</author>
      <guid>https://www.aldolat.it/posts/2026/spostare-pannello-allegati-thunderbird/</guid>
      <description>&lt;p&gt;Ci sono persone che si perdono gli allegati di un messaggio in Thunderbird perché non si accorgono della loro presenza in fondo al messaggio. Una possibile soluzione potrebbe essere quella di spostare questo pannello sotto l&#39;intestazione e sopra il corpo del messaggio, proprio come fanno Evolution e Outlook.&lt;/p&gt;&lt;p&gt;* * *&lt;/p&gt;&lt;p&gt;Non tutti apprezzano che Thunderbird mostri gli allegati in fondo al messaggio e una delle motivazioni addotte è che non si accorgono della loro presenza lì in basso, con tutte le conseguenze che ciò può comportare. Sarebbe ottimo dare agli utenti la possibilità di scegliere dove mostrarli e ricordo che diedi questo consiglio al gruppo di sviluppo di questo client, ma non se n&amp;rsquo;è fatto nulla. Ultimamente &lt;a href=&#34;https://www.reddit.com/r/Thunderbird/comments/1s2dm71/changing_the_position_of_the_attachments_list/&#34;&gt;su Reddit&lt;/a&gt; (ma anche in passato, se fate una ricerca) qualcuno ha chiesto come si possa fare questa modifica e ho voluto provarci. L&amp;rsquo;esito è abbastanza buono, anche se non perfetto: credo che per un uso generale possa andare bene. Questa è la situazione dei pannelli alla fine delle modifiche:&lt;/p&gt;&#xA;&lt;figure class=&#34;aligncenter&#34;&gt;&lt;a href=&#34;https://www.aldolat.it/images/2026/04/thunderbird-attachments-panel.webp&#34;&gt;&lt;img src=&#34;https://www.aldolat.it/images/2026/04/thunderbird-attachments-panel.webp&#34;&#xA;&#x9;&#x9;&#x9;alt=&#34;thunderbird-attachments-panel.webp&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&#xA;&#x9;&#x9;&#x9;&lt;p&gt;&lt;em&gt;Figura 1.&lt;/em&gt; Come appare Thunderbird spostando la barra degli allegati più in cima.&lt;/p&gt;&#xA;&#x9;&#x9;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;h2 id=&#34;abilitare-luso-dei-css&#34;&gt;Abilitare l’uso dei CSS&lt;/h2&gt;&#xA;&lt;p&gt;Anzitutto è necessario abilitare l&amp;rsquo;uso dei &lt;span class=&#34;allsc&#34;&gt;CSS&lt;/span&gt; in Thunderbird. Nelle impostazioni, scheda Generale, fare clic su Editor di configurazione e cercare:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;toolkit.legacyUserProfileCustomizations.stylesheets&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Impostare su &lt;code&gt;true&lt;/code&gt; il valore. Chiudere Thunderbird.&lt;/p&gt;&#xA;&lt;h2 id=&#34;gli-stili&#34;&gt;Gli stili&lt;/h2&gt;&#xA;&lt;p&gt;Nella cartella del proprio profilo Thunderbird, creare la directory &lt;code&gt;chrome&lt;/code&gt; e, al suo interno, creare il file &lt;code&gt;userChrome.css&lt;/code&gt;. Incollarvi queste regole:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-css&#34; data-lang=&#34;css&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;/******&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt; * Email reading&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt; */&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;#&lt;/span&gt;&lt;span class=&#34;nn&#34;&gt;messagepanebox&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;display&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;flex&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;!important&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;flex-direction&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;column&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;!important&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;#&lt;/span&gt;&lt;span class=&#34;nn&#34;&gt;singleMessage&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;order&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;!important&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;#&lt;/span&gt;&lt;span class=&#34;nn&#34;&gt;attachmentView&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;order&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;!important&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;#&lt;/span&gt;&lt;span class=&#34;nn&#34;&gt;messagepane&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;order&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;!important&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;flex&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;auto&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;!important&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;#&lt;/span&gt;&lt;span class=&#34;nn&#34;&gt;attachment-splitter&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;display&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;none&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;!important&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;/******&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt; * Email composing&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt; */&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;#&lt;/span&gt;&lt;span class=&#34;nn&#34;&gt;composeContentBox&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;display&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;grid&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;!important&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;grid-template-columns&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;nf&#34;&gt;var&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;(&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;--&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;contactsSplitter&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;-&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;width&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;,&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;222&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;px&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;)&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;auto&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;fr&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;!important&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;grid-template-rows&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;auto&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;auto&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;auto&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt;&lt;span class=&#34;n&#34;&gt;fr&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;!important&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;height&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;100&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;%&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;!important&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;#&lt;/span&gt;&lt;span class=&#34;nn&#34;&gt;contactsSidebar&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;grid-column&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;!important&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;grid-row&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;-1&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;!important&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;min-height&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;!important&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;overflow&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;hidden&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;!important&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;#&lt;/span&gt;&lt;span class=&#34;nn&#34;&gt;contactsSplitter&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;grid-column&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;!important&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;grid-row&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;o&#34;&gt;/&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;-1&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;!important&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;#&lt;/span&gt;&lt;span class=&#34;nn&#34;&gt;MsgHeadersToolbar&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;grid-column&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;!important&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;grid-row&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;1&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;!important&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;#&lt;/span&gt;&lt;span class=&#34;nn&#34;&gt;attachmentArea&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;grid-column&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;!important&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;grid-row&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;2&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;!important&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;#&lt;/span&gt;&lt;span class=&#34;nn&#34;&gt;FormatToolbox&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;grid-column&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;!important&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;grid-row&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;!important&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;#&lt;/span&gt;&lt;span class=&#34;nn&#34;&gt;messageArea&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;grid-column&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;3&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;!important&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;grid-row&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;4&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;!important&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;min-height&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;0&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;!important&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;overflow&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;hidden&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;!important&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;#&lt;/span&gt;&lt;span class=&#34;nn&#34;&gt;headersSplitter&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;display&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;none&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;!important&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;#&lt;/span&gt;&lt;span class=&#34;nn&#34;&gt;attachmentSplitter&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;display&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;none&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;!important&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;#&lt;/span&gt;&lt;span class=&#34;nn&#34;&gt;attachmentBucket&lt;/span&gt; &lt;span class=&#34;p&#34;&gt;{&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;max-height&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;mi&#34;&gt;120&lt;/span&gt;&lt;span class=&#34;kt&#34;&gt;px&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;!important&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    &lt;span class=&#34;k&#34;&gt;overflow-y&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt; &lt;span class=&#34;kc&#34;&gt;auto&lt;/span&gt; &lt;span class=&#34;cp&#34;&gt;!important&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;p&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Salvare e chiudere. Avviare Thunderbird: nelle email ricevute gli allegati dovrebbero vedersi sopra il testo del messaggio. Stesso discorso se provate a comporre un nuovo messaggio e ad allegarvi qualcosa.&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>Kernel 6.16 in arrivo su Arch Linux e i driver nVidia 390</title>
      <link>https://www.aldolat.it/posts/2025/kernel-6-16-in-arrivo/</link>
      <pubDate>Fri, 08 Aug 2025 08:26:23 +0200</pubDate>
      <author>Aldo Latino (aldolat@gmail.com)</author>
      <guid>https://www.aldolat.it/posts/2025/kernel-6-16-in-arrivo/</guid>
      <description>&lt;p class=&#34;dc3&#34;&gt;C&lt;span class=&#34;allsc&#34;&gt;ome già sapete&lt;/span&gt; &lt;a href=&#34;https://www.aldolat.it/tags/kernel/&#34;&gt;dai post precedenti&lt;/a&gt;, la&#xA;mia scheda video obsoleta non è supportata dai driver &lt;code&gt;nvidia&lt;/code&gt; presenti nei repo&#xA;ufficiali di Arch, motivo per cui devo rivolgermi al pacchetto&#xA;&lt;code&gt;nvidia-390xx-dkms&lt;/code&gt; presente in &lt;span class=&#34;allsc&#34;&gt;AUR&lt;/span&gt;. Questo significa&#xA;che, per ogni nuovo kernel rilasciato, bisogna vedere se questi driver&#xA;vecchissimi vengono compilati correttamente.&lt;/p&gt;&#xA;&lt;p&gt;Proprio l&amp;rsquo;altro ieri nella pagina &lt;span class=&#34;allsc&#34;&gt;AUR&lt;/span&gt; del pacchetto&#xA;&lt;a href=&#34;https://aur.archlinux.org/pkgbase/nvidia-390xx-utils#comment-1035176&#34;&gt;giunge la notizia&lt;/a&gt;&#xA;che il nuovo kernel &lt;code&gt;6.16&lt;/code&gt; è approdato in &lt;code&gt;testing&lt;/code&gt; e che quindi&#xA;a breve arriverà per tutti: funzionerà questo driver? Il buon @drankinatty ha&#xA;chiesto nella pagina del pacchetto se qualcuno poteva fare qualche test e la&#xA;domanda mi ha stuzzicato. Come posso farlo? L&amp;rsquo;unica cosa che mi è venuta in&#xA;mente era di provare in una macchina virtuale tra quelle che dedico ad Arch.&#xA;Sono sicuro che non è questo il metodo standard per questo tipo di prove ma alla&#xA;fine penso che possa essere sufficiente per il mio scopo.&lt;/p&gt;&#xA;&lt;p&gt;Quello che ho fatto nella macchina virtuale è stato semplicemente attivare i&#xA;repository &lt;code&gt;testing&lt;/code&gt; e procedere a un aggiornamento di sistema, compreso il&#xA;kernel versione &lt;code&gt;6.16&lt;/code&gt;. A seguire ho riavviato la macchina virtuale e quindi ho&#xA;scaricato il &lt;code&gt;PKGBUILD&lt;/code&gt; con:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git clone https://aur.archlinux.org/nvidia-390xx-utils.git&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;e l&amp;rsquo;ho compilato:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;makepkg -s&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;La compilazione è terminata con successo. Ho quindi installato i pacchetti&#xA;risultanti:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -U *.zst&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;che sono stati installati senza problemi. Speriamo davvero che questa volta non&#xA;sarà necessaria una &lt;em&gt;patch&lt;/em&gt;.&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>Rimuovere oggetti da PDF con Inkscape via terminale</title>
      <link>https://www.aldolat.it/posts/2025/rimuovere-oggetti-pdf-inkscape-terminale/</link>
      <pubDate>Wed, 06 Aug 2025 09:26:12 +0200</pubDate>
      <author>Aldo Latino (aldolat@gmail.com)</author>
      <guid>https://www.aldolat.it/posts/2025/rimuovere-oggetti-pdf-inkscape-terminale/</guid>
      <description>&lt;p&gt;Avete uno o mille PDF e in tutti ci sono uno o più livelli e oggetti che bisogna rimuovere. Una soluzione possibile è usare Inkscape, ma da terminale. In questo post racconto come, grazie a un piccolo script, siamo riusciti a portare a termine un&#39;operazione che altrimenti avrebbe richiesto un sacco di tempo.&lt;/p&gt;&lt;p&gt;* * *&lt;/p&gt;&lt;p class=&#34;dc3&#34;&gt;C&lt;span class=&#34;allsc&#34;&gt;i è capitato&lt;/span&gt; in questi giorni di mandare in stampa&#xA;presso un servizio specializzato online un &lt;span class=&#34;allsc&#34;&gt;PDF&lt;/span&gt; con&#xA;alcuni appunti. Così com&amp;rsquo;era, però, il file non veniva accettato perché&#xA;presentava uno sfondo giallo chiaro su tutte le pagine. O, per meglio dire, la&#xA;stampa sarebbe costata di più. Poiché non posso pubblicare lo screenshot di una&#xA;pagina reale, vi basti questa ricostruzione di fantasia che però rende l&amp;rsquo;idea di&#xA;cosa avevamo davanti:&lt;/p&gt;&#xA;&lt;figure class=&#34;aligncenter color nobg&#34;&gt;&lt;img src=&#34;https://www.aldolat.it/images/2025/08/pdf-bg.webp&#34;&#xA;&#x9;&#x9;&#x9;alt=&#34;Figura 1. Un esempio di pagina con lo sfondo giallo chiaro da rimuovere.&#34; width=&#34;690&#34; height=&#34;431&#34;&gt;&lt;figcaption&gt;&#xA;&#x9;&#x9;&#x9;&lt;p&gt;&lt;em&gt;Figura 1&lt;/em&gt;. Un esempio di pagina con lo sfondo giallo chiaro da rimuovere.&lt;/p&gt;&#xA;&#x9;&#x9;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;Il &lt;span class=&#34;allsc&#34;&gt;PDF&lt;/span&gt; è composto da 358 pagine: come fare per rimuovere&#xA;quello sfondo colorato, lasciando intatto tutto il resto?&lt;/p&gt;&#xA;&lt;p&gt;La prima soluzione che mi è venuta in mente era di estrarre singolarmente le&#xA;pagine dal &lt;span class=&#34;allsc&#34;&gt;PDF&lt;/span&gt; e darle in pasto a ImageMagick,&#xA;dicendogli di applicare una correzione dei livelli di colore in modo da&#xA;eliminare lo sfondo. Ma abbiamo scartato subito questa ipotesi perché il file&#xA;risultante, composto interamente da immagini raster, sarebbe stato enorme.&lt;/p&gt;&#xA;&lt;p&gt;Mi viene un&amp;rsquo;idea. Se i file sono vettoriali (cosa che ancora non sapevamo) e se&#xA;lo sfondo giallo chiaro sta su un suo livello separato o, per meglio dire, è un&#xA;oggetto separato da tutti gli altri, forse possiamo eliminarlo. Apriamo una&#xA;pagina con Inkscape e scopriamo che i file sono effettivamente vettoriali e che&#xA;lo sfondo è un oggetto separato, chiamato &lt;code&gt;path1&lt;/code&gt; (vedi fig. 2). Ma non solo:&#xA;scopriamo anche che i quadretti (che avremmo desiderato pure togliere) stanno&#xA;tutti assieme in un gruppo chiamato &lt;code&gt;g27514&lt;/code&gt;, quindi un facile obiettivo per la&#xA;rimozione di massa.&lt;/p&gt;&#xA;&lt;figure class=&#34;aligncenter color nobg&#34;&gt;&lt;img src=&#34;https://www.aldolat.it/images/2025/08/oggetti-inkscape-pag-62.webp&#34;&#xA;&#x9;&#x9;&#x9;alt=&#34;Figura 2. I due oggetti di pagina 62, indicati dalla freccia, contenenti lo sfondo e i quadretti. In Inkscape è attualmente aperto un file PDF composto da due pagine.&#34; width=&#34;690&#34; height=&#34;478&#34;&gt;&lt;figcaption&gt;&#xA;&#x9;&#x9;&#x9;&lt;p&gt;&lt;em&gt;Figura 2&lt;/em&gt;. I due oggetti di pagina 62, indicati dalla freccia, contenenti lo sfondo e i quadretti. In Inkscape è attualmente aperto un file PDF composto da due pagine.&lt;/p&gt;&#xA;&#x9;&#x9;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;Questi nomi di oggetti, per ovvie ragioni, non vengono mantenuti se apriamo con&#xA;Inkscape più pagine del &lt;span class=&#34;allsc&#34;&gt;PDF&lt;/span&gt;. Nella figura 2, ad esempio,&#xA;abbiamo aperto con Inkscape due pagine, cioè la 62 e la 63: come si vede&#xA;dall&amp;rsquo;immagine, lo sfondo della prima pagina (la 62) si chiama &lt;code&gt;path1&lt;/code&gt;, così come&#xA;il gruppo dei quadretti si chiama &lt;code&gt;g27514&lt;/code&gt;, ma non così dalla seconda pagina (la&#xA;63, vedi fig. 3) in poi, perché questi nomi sono, nel nostro caso, anche degli&#xA;&lt;span class=&#34;allsc&#34;&gt;ID&lt;/span&gt; che devono identificare univocamente un oggetto.&lt;/p&gt;&#xA;&lt;figure class=&#34;aligncenter color nobg&#34;&gt;&lt;img src=&#34;https://www.aldolat.it/images/2025/08/oggetti-inkscape-pag-63.webp&#34;&#xA;&#x9;&#x9;&#x9;alt=&#34;Figura 3. I due stessi oggetti ma di pagina 63, con nomi diversi rispetto alla pagina precedente.&#34; width=&#34;690&#34; height=&#34;478&#34;&gt;&lt;figcaption&gt;&#xA;&#x9;&#x9;&#x9;&lt;p&gt;&lt;em&gt;Figura 3&lt;/em&gt;. I due stessi oggetti ma di pagina 63, con nomi diversi rispetto alla pagina precedente.&lt;/p&gt;&#xA;&#x9;&#x9;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;Proviamo quindi a dividere il file &lt;span class=&#34;allsc&#34;&gt;PDF&lt;/span&gt; di 358 pagine in&#xA;tanti file quante sono le sue pagine e a verificare se gli &lt;span class=&#34;allsc&#34;&gt;ID&lt;/span&gt; dello sfondo e del gruppo vengono sempre mantenuti: sì, vengono&#xA;mantenuti! A qusto punto siamo pronti per mettere all&amp;rsquo;opera Inkscape, ma non per&#xA;via grafica, che comporterebbe un sacco di tempo e un incredibile mal di testa,&#xA;ma da terminale.&lt;/p&gt;&#xA;&lt;h2 id=&#34;estrazione-delle-pagine-dal-pdf&#34;&gt;Estrazione delle pagine dal pdf&lt;/h2&gt;&#xA;&lt;p&gt;La prima operazione è, quindi, quella di suddividere l&amp;rsquo;intero &lt;span class=&#34;allsc&#34;&gt;PDF&lt;/span&gt; in 358 file, cioè un file per ogni pagina:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pdftk input.pdf burst&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;rimozione-degli-oggetti&#34;&gt;Rimozione degli oggetti&lt;/h2&gt;&#xA;&lt;p&gt;Mettiamo ora mano alla creazione di uno script Bash semplicissimo che processi&#xA;tutti i &lt;span class=&#34;allsc&#34;&gt;PDF&lt;/span&gt; di una directory mediante Inkscape. Ci siamo&#xA;dovuti spulciare il manuale di Inkscape (&lt;code&gt;man inkscape&lt;/code&gt;) per capire quali&#xA;comandi (che lui chiama &lt;em&gt;actions&lt;/em&gt;) potevano fare al caso nostro. Quello che è&#xA;venuto fuori è questo script:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight wrap&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-bash&#34; data-lang=&#34;bash&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;cp&#34;&gt;#!/bin/bash&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c1&#34;&gt;# Script per rimuovere oggetti da un PDF tramite ID.&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OBJECT_TO_REMOVE1&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;path1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nv&#34;&gt;OBJECT_TO_REMOVE2&lt;/span&gt;&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;g27514&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;mkdir -p modified&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;for&lt;/span&gt; pdf in *.pdf&lt;span class=&#34;p&#34;&gt;;&lt;/span&gt; &lt;span class=&#34;k&#34;&gt;do&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Processo: &lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$pdf&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;12&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  inkscape --actions&lt;span class=&#34;o&#34;&gt;=&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;select-by-id:&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$OBJECT_TO_REMOVE1&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;13&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;  delete-selection;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;14&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;  select-by-id:&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$OBJECT_TO_REMOVE2&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;15&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;  delete-selection;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;16&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;  export-filename:modified/&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$pdf&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;17&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;s2&#34;&gt;  export-do&amp;#34;&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$pdf&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt; &amp;gt; /dev/null 2&amp;gt;&lt;span class=&#34;p&#34;&gt;&amp;amp;&lt;/span&gt;&lt;span class=&#34;m&#34;&gt;1&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;18&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;19&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;nb&#34;&gt;echo&lt;/span&gt; &lt;span class=&#34;s2&#34;&gt;&amp;#34;Completato: modified/&lt;/span&gt;&lt;span class=&#34;nv&#34;&gt;$pdf&lt;/span&gt;&lt;span class=&#34;s2&#34;&gt;&amp;#34;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;20&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;done&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Dopo aver definito gli &lt;span class=&#34;allsc&#34;&gt;ID&lt;/span&gt; dei due oggetti da rimuovere&#xA;(righe 4 e 5), lo script, per ogni &lt;span class=&#34;allsc&#34;&gt;PDF&lt;/span&gt; che trova, esegue&#xA;il comando &lt;code&gt;inkscape&lt;/code&gt; con alcune azioni in sequenza:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;seleziona il primo oggetto per &lt;span class=&#34;allsc&#34;&gt;ID&lt;/span&gt;;&lt;/li&gt;&#xA;&lt;li&gt;elimina l&amp;rsquo;oggetto selezionato;&lt;/li&gt;&#xA;&lt;li&gt;seleziona il secondo oggetto per &lt;span class=&#34;allsc&#34;&gt;ID&lt;/span&gt;;&lt;/li&gt;&#xA;&lt;li&gt;elimina l&amp;rsquo;oggetto selezionato;&lt;/li&gt;&#xA;&lt;li&gt;imposta il nome del file da esportare;&lt;/li&gt;&#xA;&lt;li&gt;esegue l&amp;rsquo;esportazione.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Infine, abbiamo anche reindirizzato l&amp;rsquo;output su &lt;code&gt;/dev/null&lt;/code&gt; per evitare di&#xA;vedere un sacco di righe inutili al nostro scopo e, una volta salvato il file,&#xA;stampa a video il messaggio di conclusione per quel singolo file.&lt;/p&gt;&#xA;&lt;p class=&#34;newpar&#34;&gt;Questo è il risultato di una pagina dopo l&amp;rsquo;esecuzione dello script:&lt;/p&gt;&#xA;&lt;figure class=&#34;aligncenter color nobg&#34;&gt;&lt;img src=&#34;https://www.aldolat.it/images/2025/08/pdf-nobg.webp&#34;&#xA;&#x9;&#x9;&#x9;alt=&#34;Figura 4. Un esempio di pagina senza lo sfondo giallo né i quadretti.&#34; width=&#34;690&#34; height=&#34;431&#34;&gt;&lt;figcaption&gt;&#xA;&#x9;&#x9;&#x9;&lt;p&gt;&lt;em&gt;Figura 4&lt;/em&gt;. Un esempio di pagina senza lo sfondo giallo né i quadretti.&lt;/p&gt;&#xA;&#x9;&#x9;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;h2 id=&#34;riunione-finale-delle-pagine-in-un-unico-file&#34;&gt;Riunione finale delle pagine in un unico file&lt;/h2&gt;&#xA;&lt;p&gt;Per riunire, alla fine, tutti i &lt;span class=&#34;allsc&#34;&gt;PDF&lt;/span&gt; basta dare:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pdftk modified/*.pdf cat output pdf_finale.pdf&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr class=&#34;decorative&#34;&gt;&#xA;&#xA;&lt;p&gt;Con poche righe di Bash e gli strumenti giusti, abbiamo risolto un problema&#xA;concreto in poco tempo: è stata necessaria un&amp;rsquo;ora per il mio vecchissimo PC per&#xA;fare questo lavoro. Il &lt;a href=&#34;https://www.aldolat.it/tags/terminale/&#34;&gt;terminale&lt;/a&gt;, ancora una volta, si&#xA;dimostra uno strumento insostituibile per chi lavora con tanti file. E ancora,&#xA;dopo vent&amp;rsquo;anni d&amp;rsquo;uso di Linux, riesco a meravigliarmi per quello che abbiamo a&#xA;disposizione!&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>L&#39;uno alternativo nel font EB Garamond</title>
      <link>https://www.aldolat.it/posts/2025/uno-alternativo-font-ebgaramond/</link>
      <pubDate>Sun, 29 Jun 2025 11:38:21 +0200</pubDate>
      <author>Aldo Latino (aldolat@gmail.com)</author>
      <guid>https://www.aldolat.it/posts/2025/uno-alternativo-font-ebgaramond/</guid>
      <description>&lt;p class=&#34;dci5&#34;&gt;C&lt;span class=&#34;allsc&#34;&gt;ome se ne&lt;/span&gt; sarà accorto chi ama la bellezza dei caratteri&#xA;tipografici, il font principale di questo sito, è l&amp;rsquo;&lt;em&gt;EB Garamond&lt;/em&gt;, il&#xA;meraviglioso carattere frutto del lavoro fatto da &lt;a href=&#34;http://www.georgduffner.at/ebgaramond/index.html&#34;&gt;Georg&#xA;Duffner&lt;/a&gt; e poi ripreso da&#xA;&lt;a href=&#34;https://github.com/octaviopardo/EBGaramond12&#34;&gt;Octavio Pardo&lt;/a&gt;, basandosi sullo&#xA;&lt;em&gt;Specimen&lt;/em&gt; composto nel 1592 da Conrad Berner, genero di Christian Egenolff e&#xA;suo successore presso la fonderia Egenolff-Berner, da cui quindi il nome «EB&#xA;Garamond». Attualmente questo font è disponibile in due versioni: quella di&#xA;Duffner e quella di Pardo. La prima è ancora in fase di lavorazione e per&#xA;poterla usare va compilata, mentre la seconda è più completa (anche se mancano&#xA;le dimensioni ottiche), presenta più stili ed è disponibile pronta all&amp;rsquo;uso. In&#xA;questo sito sto usando la versione di Pardo, versione che però non è del tutto&#xA;identica a quella di Duffner e presenta una differenza in particolare, cosa che&#xA;è oggetto di questo post.&lt;/p&gt;&#xA;&lt;hr class=&#34;decorative&#34;&gt;&#xA;&#xA;&lt;p&gt;Quando si usano i numeri minuscoli (o &amp;lsquo;saltellanti&amp;rsquo;), spessissimo l’&amp;lsquo;uno&amp;rsquo; non&#xA;appare nella sua forma cui tutti siamo abituati, ma è simile a una &amp;lsquo;i&amp;rsquo; in&#xA;maiuscoletto. Ecco un esempio:&lt;/p&gt;&#xA;&lt;table class=&#34;tabella-glifi&#34;&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th style=&#34;text-align: center&#34;&gt;Glifo&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th style=&#34;text-align: center&#34;&gt;Descrizione&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: center&#34;&gt;&lt;span class=&#34;sc&#34;&gt;i&lt;/span&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: center&#34;&gt;&amp;lsquo;i&amp;rsquo; in maiuscoletto&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: center&#34;&gt;&lt;span class=&#34;onesc&#34;&gt;1&lt;/span&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: center&#34;&gt;&amp;lsquo;uno&amp;rsquo; minuscolo classico&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: center&#34;&gt;1&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: center&#34;&gt;&amp;lsquo;uno&amp;rsquo; minuscolo alternativo&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: center&#34;&gt;&lt;span class=&#34;sc&#34;&gt;i&lt;/span&gt;&lt;span class=&#34;onesc&#34;&gt;1&lt;/span&gt;1&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: center&#34;&gt;tutti e tre i glifi in sequenza&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p class=&#34;table-caption&#34;&gt;&lt;span class=&#34;sc&#34;&gt;Tabella 1.&lt;/span&gt; I tre glifi a raffronto.&lt;/p&gt;&#xA;&lt;p class=&#34;noindent&#34;&gt;Alcuni editori preferiscono che l’&amp;lsquo;uno&amp;rsquo; abbia la sua forma propria, ben&#xA;distinguibile dalla &amp;lsquo;i&amp;rsquo; in maiuscoletto: 1. Sia nella versione di Duffner che in&#xA;quella di Pardo è presente il glifo nelle due versioni, ma mentre in quella del&#xA;primo è possibile accedervi, in quella del secondo no. Per chi conosce un po&amp;rsquo; di&#xA;tecnicismi della creazione dei font, possiamo dire che manca una tabella di&#xA;&lt;em&gt;lookup&lt;/em&gt; per la sostituzione del glifo quando richiesto.&lt;/p&gt;&#xA;&lt;p&gt;Vista questa lacuna, mi sono modificato il font, aggiungendo questa tabella di&#xA;sostituzione per ogni stile usato in questo sito:&lt;/p&gt;&#xA;&lt;figure class=&#34;aligncenter&#34;&gt;&lt;img src=&#34;https://www.aldolat.it/images/2025/06/lookup-table.webp&#34;&#xA;&#x9;&#x9;&#x9;alt=&#34;Figura 1. La tabella di lookup per il numero 1 oldstyle.&#34; width=&#34;637&#34; height=&#34;485&#34;&gt;&lt;figcaption&gt;&#xA;&#x9;&#x9;&#x9;&lt;p&gt;&lt;em&gt;Figura 1&lt;/em&gt;. La tabella di &lt;em&gt;lookup&lt;/em&gt; per il numero 1 &lt;em&gt;oldstyle&lt;/em&gt;.&lt;/p&gt;&#xA;&#x9;&#x9;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;Ed ecco la differenza (ripeterò il numero uno più volte, perché è quello che fa&#xA;vedere meglio la differenza tra i numeri tabulari e non):&lt;/p&gt;&#xA;&lt;p class=&#34;noindent newpar&#34;&gt;&lt;em&gt;Numeri proporzionali maiuscoli&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p class=&#34;stdnums noindent big&#34;&gt;011123456789&lt;/p&gt;&#xA;&lt;p class=&#34;noindent newpar&#34;&gt;&lt;em&gt;Numeri tabulari maiuscoli&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p class=&#34;stdtabnums noindent big&#34;&gt;011123456789&lt;/p&gt;&#xA;&lt;p class=&#34;noindent newpar&#34;&gt;&lt;em&gt;Numeri proporzionali minuscoli &lt;em&gt;oldstyle&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p class=&#34;onesc noindent big&#34;&gt;011123456789&lt;/p&gt;&#xA;&lt;p class=&#34;noindent newpar&#34;&gt;&lt;em&gt;Numeri tabulari minuscoli &lt;em&gt;oldstyle&lt;/em&gt;&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p class=&#34;onesc oldtabnums noindent big&#34;&gt;011123456789&lt;/p&gt;&#xA;&lt;p class=&#34;noindent newpar&#34;&gt;&lt;em&gt;Numeri proporzionali minuscoli con l&amp;rsquo;uno alternativo&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p class=&#34;osc noindent big&#34;&gt;011123456789&lt;/p&gt;&#xA;&lt;p class=&#34;noindent newpar&#34;&gt;&lt;em&gt;Numeri tabulari minuscoli con l&amp;rsquo;uno alternativo&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p class=&#34;osc oldtabnums noindent big&#34;&gt;011123456789&lt;/p&gt;&#xA;&lt;hr class=&#34;decorative&#34;&gt;&#xA;&#xA;&lt;p&gt;Spero davvero che Duffner riesca a completare il suo magnifico lavoro: sembra&#xA;che abbia ripreso in mano il progetto nel 2023 in vista della versione 2, con&#xA;una bella &lt;a href=&#34;https://github.com/georgd/EB-Garamond/issues/179&#34;&gt;lista di cose da fare&lt;/a&gt;,&#xA;delle quali per altro alcune già fatte. Questo è quanto scrive&#xA;sul suo repo GitHub in risposta a chi gli aveva chiesto informazioni del&#xA;rapporto tra il suo repository e quello di Pardo:&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;I want to reconcile both versions, mainly using Octavio&amp;rsquo;s splines but readding&#xA;the complete feature set. On the way there I want to fix issues reported on&#xA;Octavio&amp;rsquo;s as well as the ones reported here.&lt;/p&gt;&#xA;&lt;p&gt;I&amp;rsquo;ve done some work on the glyphs already and a good amount of the features&#xA;but I&amp;rsquo;m stuck with otf &amp;lt;&amp;gt; fontforge round-tripping. Somewhere in the process&#xA;the splines were damaged&amp;hellip;&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;/blockquote&gt;&#xA;&lt;p&gt;Buon lavoro, Georg! Aspettiamo con ansia la versione 2. :&amp;ndash;)&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;&lt;span class=&#34;sc&#34;&gt;Georg Mayr-Duffner&lt;/span&gt;, &lt;a href=&#34;https://github.com/georgd/EB-Garamond/issues/179#issuecomment-1825979552&#34;&gt;&lt;em&gt;Todo list for v2&lt;/em&gt;&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;/ol&gt;&#xA;&lt;/div&gt;&#xA;</description>
    </item>
    <item>
      <title>Ripristino dei pacchetti a una data specifica con Arch</title>
      <link>https://www.aldolat.it/posts/2025/ripristino-pacchetti-pacman/</link>
      <pubDate>Sat, 14 Jun 2025 12:48:57 +0200</pubDate>
      <author>Aldo Latino (aldolat@gmail.com)</author>
      <guid>https://www.aldolat.it/posts/2025/ripristino-pacchetti-pacman/</guid>
      <description>&lt;p class=&#34;dcs3 dcred&#34;&gt;A &lt;span class=&#34;allsc&#34;&gt;lcuni giorni fa&lt;/span&gt;, stanco dopo una giornata impegnativa, ho&#xA;lanciato un aggiornamento del sistema. Quando aggiorno, guardo sempre quali&#xA;pacchetti saranno interessati, ma quella sera non l&amp;rsquo;ho fatto. Tra questi&#xA;aggiornamenti c&amp;rsquo;era anche il kernel alla versione &lt;code&gt;6.15.1.arch1-2&lt;/code&gt; che sapevo&#xA;avrebbe dato errori col driver &lt;code&gt;nvidia-390xx&lt;/code&gt;, come vi ho raccontato &amp;mdash; per la versione precedente &amp;mdash; in&#xA;&lt;a href=&#34;https://www.aldolat.it/posts/2025/downgrade-kernel-in-arch/&#34;&gt;&lt;em&gt;Downgrade del kernel in Arch&lt;/em&gt;&lt;/a&gt; e in&#xA;&lt;a href=&#34;https://www.aldolat.it/posts/2025/arch-linux-kernel-614-nvidia-driver-390/&#34;&gt;&lt;em&gt;Driver nVidia 390 su kernel 6.14 in Arch Linux&lt;/em&gt;&lt;/a&gt;.&#xA;Il processo di aggiornamento, ovviamente, è andato male:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;snip&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;:: Esecuzione degli hook di post-transazione...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;( 1/14) Reloading system manager configuration...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;( 2/14) Restarting marked services...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;( 3/14) Reloading device manager configuration...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;( 4/14) Arming ConditionNeedsUpdate...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;( 5/14) Updating module dependencies...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;( 6/14) Install DKMS modules&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; dkms install --no-depmod nvidia/390.157 -k 6.15.1-arch1-2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Error! Bad return status for module build on kernel: 6.15.1-arch1-2 (x86_64)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&amp;lt;snip&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Era la sera del 10 giugno e la stanchezza mi impediva proprio di analizzare la situazione. Subito mi è venuto&#xA;in mente il consiglio che mi diede @Lone_Wolf &lt;a href=&#34;https://bbs.archlinux.org/viewtopic.php?pid=2240055#p2240055&#34;&gt;sul forum di&#xA;Arch&lt;/a&gt;, vale a dire&#xA;di riportare i pacchetti a una certa data, così abbiamo la certezza che tutto&#xA;torni a funzionare, come se non avessimo lanciato quell&amp;rsquo;aggiornamento. Non avevo&#xA;mai provato questo comando di pacman prima di allora, per cui «Quale migliore&#xA;situazione di questa?», pensai. E mi sono lanciato!&lt;/p&gt;&#xA;&lt;h2 id=&#34;modifica-del-repository&#34;&gt;Modifica del repository&lt;/h2&gt;&#xA;&lt;p&gt;La prima cosa da fare è modificare il repository:&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;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo nano /etc/pacman.d/mirrorlist&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;e commentare quelli attuali attivando questo:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Server=https://archive.archlinux.org/repos/ANNO/MESE/GIORNO/$repo/os/$arch&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Al posto di &lt;code&gt;ANNO&lt;/code&gt;, &lt;code&gt;MESE&lt;/code&gt; e &lt;code&gt;GIORNO&lt;/code&gt; inserire le date nel formato &lt;code&gt;AAAA/MM/GG&lt;/code&gt;.&#xA;Nel mio caso ho usato:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Server=https://archive.archlinux.org/repos/2025/06/08/$repo/os/$arch&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Salvare e chiudere il file.&lt;/p&gt;&#xA;&lt;h2 id=&#34;aggiornamento-del-sistema&#34;&gt;&amp;lsquo;Aggiornamento&amp;rsquo; del sistema&lt;/h2&gt;&#xA;&lt;p&gt;Adesso lanciare un &amp;lsquo;aggiornamento&amp;rsquo; (si fa per dire!) del sistema con pacman:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -Syyuu&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Il sistema riporterà la versione dei pacchetti installati a quella del giorno indicato prima.&lt;/p&gt;&#xA;&lt;p&gt;Nel mio caso tutto è andato secondo le aspettative e al riavvio tutto era al&#xA;proprio posto. Chiaramente era una situazione temporanea che mi consentiva l&amp;rsquo;uso&#xA;del &lt;span class=&#34;allsc&#34;&gt;PC&lt;/span&gt; in attesa della creazione della patch per il&#xA;driver nVidia 390. Patch che puntualmente è stata pubblicata, grazie ai&#xA;manutentori del pacchetto su &lt;span class=&#34;allsc&#34;&gt;AUR&lt;/span&gt;. Dopo la pubblicazione&#xA;bisogna riportare il file &lt;code&gt;mirrorlist&lt;/code&gt; alla situazione originale oppure fare un&#xA;bel &lt;em&gt;refresh&lt;/em&gt; dei repository con &lt;code&gt;reflector&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo reflector --verbose --country Italy,Germany --protocol https --age &lt;span class=&#34;m&#34;&gt;6&lt;/span&gt; --sort rate --latest &lt;span class=&#34;m&#34;&gt;5&lt;/span&gt; --save /etc/pacman.d/mirrorlist&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&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;Quello descritto è uno dei due metodi previsti. &lt;a href=&#34;https://wiki.archlinux.org/title/Arch_Linux_Archive#How_to_restore_all_packages_to_a_specific_date&#34;&gt;Nel wiki di Arch&lt;/a&gt; sono&#xA;spiegati entrambi in dettaglio.&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;/ol&gt;&#xA;&lt;/div&gt;&#xA;</description>
    </item>
    <item>
      <title>Git squash e la contrazione di più commit</title>
      <link>https://www.aldolat.it/posts/2025/git-squash/</link>
      <pubDate>Sun, 11 May 2025 11:38:31 +0200</pubDate>
      <author>Aldo Latino (aldolat@gmail.com)</author>
      <guid>https://www.aldolat.it/posts/2025/git-squash/</guid>
      <description>&lt;p class=&#34;dc3&#34;&gt;O&lt;span class=&#34;allsc&#34;&gt;ggi mi sono&lt;/span&gt; accorto che il &lt;code&gt;lastBuildDate&lt;/code&gt; del mio feed&#xA;&lt;span class=&#34;allsc&#34;&gt;RSS&lt;/span&gt; non veniva aggiornato ogni volta che ce n&amp;rsquo;era&#xA;bisogno. Ho sistemato la cosa e, già che c&amp;rsquo;ero, ho messo mano ad alcune piccole&#xA;migliorie sparse nel codice del file &lt;code&gt;rss.xml&lt;/code&gt;. Siccome il sito è sotto&#xA;controllo Git e avevo fatto diversi commit su più o meno lo stesso argomento,&#xA;volevo semplicemente riunirli in modo da avere una storia più pulita. In questi&#xA;casi, Git offre la possibilità di fare lo &lt;em&gt;squash&lt;/em&gt; dei commit, cioè comprimerli&#xA;in uno solo, così da mantenere appunto una cronologia più ordinata e leggibile.&#xA;Questa pratica è particolarmente utile quando si lavora in gruppo o&#xA;semplicemente perché si vogliono evitare più commit tutti incentrati su un unico&#xA;aspetto. Contrariamente a quanto ci si potrebbe aspettare, però, non esiste un&#xA;comando diretto &lt;code&gt;git squash&lt;/code&gt;, ma l’operazione si esegue attraverso il comando&#xA;interattivo &lt;code&gt;git rebase -i&lt;/code&gt;. Non è complicato, ma è abbastanza tecnico da&#xA;meritare qualche appunto pratico, che annoto qui sia per me sia per chi volesse&#xA;provarci.&lt;/p&gt;&#xA;&lt;hr class=&#34;decorative&#34;&gt;&#xA;&#xA;&lt;p&gt;Nel mio repository avevo questi commit e volevo unificare gli ultimi 5, qui&#xA;evidenziati in rosso in figura 1:&lt;/p&gt;&#xA;&lt;figure class=&#34;aligncenter color nobg&#34;&gt;&lt;a href=&#34;https://www.aldolat.it/images/2025/05/git-squash-1.webp&#34;&gt;&lt;img src=&#34;https://www.aldolat.it/images/2025/05/git-squash-1.webp&#34;&#xA;&#x9;&#x9;&#x9;alt=&#34;git-squash-1&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&#xA;&#x9;&#x9;&#x9;&lt;p&gt;&lt;em&gt;Figura 1&lt;/em&gt;. I commit da contrarre.&lt;/p&gt;&#xA;&#x9;&#x9;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;Da terminale ho eseguito:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ git rebase -i HEAD~5&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Git mi ha mostrato l’editor di testo con gli ultimi 5 commit, uno per riga, e&#xA;all’inizio di ogni riga la parola &lt;code&gt;pick&lt;/code&gt;, come si vede in figura 2:&lt;/p&gt;&#xA;&lt;figure class=&#34;aligncenter color nobg&#34;&gt;&lt;a href=&#34;https://www.aldolat.it/images/2025/05/git-squash-2.webp&#34;&gt;&lt;img src=&#34;https://www.aldolat.it/images/2025/05/git-squash-2.webp&#34;&#xA;&#x9;&#x9;&#x9;alt=&#34;git-squash-2&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&#xA;&#x9;&#x9;&#x9;&lt;p&gt;&lt;em&gt;Figura 2.&lt;/em&gt; L&amp;rsquo;editor con i commit da modificare. L&amp;rsquo;ordine è inverso rispetto al log tradizionale di Git o a come mostrato in figura 1.&lt;/p&gt;&#xA;&#x9;&#x9;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;A questo punto bisogna dire a Git quali commit comprimere. Basta lasciare &lt;code&gt;pick&lt;/code&gt;&#xA;sul primo commit in cima (il più vecchio tra i 5) e sostituire &lt;code&gt;pick&lt;/code&gt; con&#xA;&lt;code&gt;squash&lt;/code&gt; o &lt;code&gt;s&lt;/code&gt; sugli altri, come in figura 3:&lt;/p&gt;&#xA;&lt;figure class=&#34;aligncenter color nobg&#34;&gt;&lt;a href=&#34;https://www.aldolat.it/images/2025/05/git-squash-3.webp&#34;&gt;&lt;img src=&#34;https://www.aldolat.it/images/2025/05/git-squash-3.webp&#34;&#xA;&#x9;&#x9;&#x9;alt=&#34;git-squash-3&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&#xA;&#x9;&#x9;&#x9;&lt;p&gt;&lt;em&gt;Figura 3.&lt;/em&gt; I commit da comprimere, con &lt;code&gt;s&lt;/code&gt; al posto di &lt;code&gt;pick&lt;/code&gt;.&lt;/p&gt;&#xA;&#x9;&#x9;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;Salviamo e chiudiamo. Si aprirà una nuova schermata dell’editor con tutti i&#xA;messaggi dei commit coinvolti, così da poterli mantenere, modificare o&#xA;cancellare:&lt;/p&gt;&#xA;&lt;figure class=&#34;aligncenter color nobg&#34;&gt;&lt;a href=&#34;https://www.aldolat.it/images/2025/05/git-squash-4.webp&#34;&gt;&lt;img src=&#34;https://www.aldolat.it/images/2025/05/git-squash-4.webp&#34;&#xA;&#x9;&#x9;&#x9;alt=&#34;git-squash-4&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&#xA;&#x9;&#x9;&#x9;&lt;p&gt;&lt;em&gt;Figura 4.&lt;/em&gt; I messaggi originali dei commit.&lt;/p&gt;&#xA;&#x9;&#x9;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;Nel mio caso, ho scritto un messaggio breve riassuntivo come oggetto del commit&#xA;e, sotto, un elenco dettagliato delle modifiche, come mostrato in figura 5:&lt;/p&gt;&#xA;&lt;figure class=&#34;aligncenter color nobg&#34;&gt;&lt;a href=&#34;https://www.aldolat.it/images/2025/05/git-squash-5.webp&#34;&gt;&lt;img src=&#34;https://www.aldolat.it/images/2025/05/git-squash-5.webp&#34;&#xA;&#x9;&#x9;&#x9;alt=&#34;git-squash-5&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&#xA;&#x9;&#x9;&#x9;&lt;p&gt;&lt;em&gt;Figura 5.&lt;/em&gt; Il messaggio finale del commit unificato. Una riga vuota separa l&amp;rsquo;oggetto del commit dal resto del messaggio.&lt;/p&gt;&#xA;&#x9;&#x9;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;Dopo aver salvato, Git ha eseguito il rebase. Se ora controlliamo la cronologia&#xA;dei commit, vedremo che i 5 sono stati unificati:&lt;/p&gt;&#xA;&lt;figure class=&#34;aligncenter color nobg&#34;&gt;&lt;a href=&#34;https://www.aldolat.it/images/2025/05/git-squash-6.webp&#34;&gt;&lt;img src=&#34;https://www.aldolat.it/images/2025/05/git-squash-6.webp&#34;&#xA;&#x9;&#x9;&#x9;alt=&#34;git-squash-6&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&#xA;&#x9;&#x9;&#x9;&lt;p&gt;&lt;em&gt;Figura 6.&lt;/em&gt; I 5 commit ora risultano fusi in uno solo.&lt;/p&gt;&#xA;&#x9;&#x9;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;La stessa situazione da terminale:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ git log&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;commit 175a196eb64d0af98957dc813b5072169c177e4f (HEAD -&amp;gt; master)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Author: Aldo Latino &amp;lt;email@tld.com&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Date:   Sun May 11 06:59:49 2025 +0200&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Corretta data lastBuildDate in feed RSS, migliorie varie&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    - Fix lastBuildDate in feed RSS&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    - Changed Date to PublishDate in RSS pubDate&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    - Changed RSS content escaping, removed attribution&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    - Removed trailing dashes in RSS source&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    - Added leading dashes&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;commit 1f45056753e6bf8bb9f65b3bfbc96e9f17a75ef9&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Author: Aldo Latino &amp;lt;email@tld.com&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Date:   Sun May 11 06:08:51 2025 +0200&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Aggiornato un link&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;commit 9a32ad1c8cc08dc1103410cc686b397de4416157 (origin/master, origin/HEAD)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Author: Aldo Latino &amp;lt;email@tld.com&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Date:   Sat May 10 18:12:34 2025 +0200&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;    Abilitato feed RSS solo in home&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[...]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;hr class=&#34;decorative&#34;&gt;&#xA;&#xA;&lt;p&gt;Lo squash dei commit è un ottimo modo per tenere ordinata la cronologia di un&#xA;progetto. Dopo questa operazione, il repository risulta più leggibile e&#xA;ordinato, specialmente quando si lavora in gruppo o si prepara una &lt;em&gt;pull&#xA;request&lt;/em&gt;. Un comando di Git che può tornare senza dubbio utile, anche se si&#xA;lavora a un progetto del tutto personale.&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>Driver nVidia 390 su kernel 6.14 in Arch Linux</title>
      <link>https://www.aldolat.it/posts/2025/arch-linux-kernel-614-nvidia-driver-390/</link>
      <pubDate>Fri, 09 May 2025 21:29:12 +0200</pubDate>
      <author>Aldo Latino (aldolat@gmail.com)</author>
      <guid>https://www.aldolat.it/posts/2025/arch-linux-kernel-614-nvidia-driver-390/</guid>
      <description>&lt;p class=&#34;dc3&#34;&gt;I&lt;span class=&#34;allsc&#34;&gt;n questo post&lt;/span&gt; proseguo quanto scritto&#xA;&lt;a href=&#34;https://www.aldolat.it/posts/2025/downgrade-kernel-in-arch/&#34;&gt;in quello precedente&lt;/a&gt;, dove &amp;mdash; ricorderete &amp;mdash; non&#xA;riuscivo a far convivere i driver &lt;em&gt;legacy&lt;/em&gt; per la mia vecchia scheda video nVidia&#xA;GeForce 605 con il nuovo kernel &lt;code&gt;6.14.4-arch1-2&lt;/code&gt; o meglio, cosa che ho scoperto&#xA;dopo, &lt;code&gt;gcc&lt;/code&gt; versione 15 non riusciva a compilare per il nuovo kernel. Ho monitorato&#xA;costantemente sia &lt;a href=&#34;https://bbs.archlinux.org/viewtopic.php?id=262224&#34;&gt;il forum&lt;/a&gt;&#xA;che &lt;a href=&#34;https://aur.archlinux.org/pkgbase/nvidia-390xx-utils&#34;&gt;la pagina dedicata su &lt;span class=&#34;allsc&#34;&gt;AUR&lt;/span&gt;&lt;/a&gt;&#xA;e ho visto che @&lt;a href=&#34;https://aur.archlinux.org/account/bufferunderrun&#34;&gt;bufferunderrun&lt;/a&gt;&#xA;ha pubblicato &lt;a href=&#34;https://aur.archlinux.org/pkgbase/nvidia-390xx-utils?O=10#comment-1022658&#34;&gt;una patch&lt;/a&gt; da applicare al pacchetto&#xA;&lt;code&gt;nvidia-390-dkms&lt;/code&gt;. Ho applicato la patch al pacchetto, fatto gli aggiornamenti e&#xA;tutto è filato liscio come l&amp;rsquo;olio. Vi spiego cosa ho fatto, così&#xA;rimane traccia anche per me e magari può servire a qualcuno.&lt;/p&gt;&#xA;&lt;hr class=&#34;decorative&#34;&gt;&#xA;&#xA;&lt;p&gt;Quello che faremo è creare una patch aggiuntiva &amp;mdash; oltre a quelle già presenti&#xA;&amp;mdash; per il pacchetto &lt;code&gt;nvidia-390-dkms&lt;/code&gt; e applicarla, in attesa che questo venga&#xA;fatto nel pacchetto presente in &lt;span class=&#34;allsc&#34;&gt;AUR&lt;/span&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;creazione-e-applicazione-della-patch&#34;&gt;Creazione e applicazione della patch&lt;/h2&gt;&#xA;&lt;h3 id=&#34;creazione-del-file-patch&#34;&gt;Creazione del file .patch&lt;/h3&gt;&#xA;&lt;p&gt;Da terminale scarichiamo il pacchetto da &lt;span class=&#34;allsc&#34;&gt;AUR&lt;/span&gt; senza installarlo:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;paru -G nvidia-390xx-dkms&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Spostiamoci nella directory appena creata:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;cd&lt;/span&gt; nvidia-390xx-utils&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Creiamo il file per la patch dedicata a &lt;code&gt;gcc&lt;/code&gt; 15:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nano gcc-15.patch&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Incolliamo questo contenuto, vale a dire la patch che risolve il problema:&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;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-patch&#34; data-lang=&#34;patch&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gh&#34;&gt;diff --git a/kernel/Kbuild b/kernel/Kbuild&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gh&#34;&gt;index 85aa267..baa6986 100644&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gd&#34;&gt;--- a/kernel/Kbuild&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gi&#34;&gt;+++ b/kernel/Kbuild&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;@@ -61,6 +61,7 @@ $(foreach _module, $(NV_KERNEL_MODULES), \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; # $(EXTRA_CFLAGS) to ccflags-y for compatibility.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; #&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gi&#34;&gt;+EXTRA_CFLAGS += -std=gnu17&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; EXTRA_CFLAGS += -I$(src)/common/inc&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; EXTRA_CFLAGS += -I$(src)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; EXTRA_CFLAGS += -Wall -MD $(DEFINES) $(INCLUDES) -Wsign-compare -Wno-cast-qual -Wno-error&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gh&#34;&gt;diff --git a/kernel/conftest.sh b/kernel/conftest.sh&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gh&#34;&gt;index 4da7588..1106ea5 100755&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gd&#34;&gt;--- a/kernel/conftest.sh&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gi&#34;&gt;+++ b/kernel/conftest.sh&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;@@ -151,7 +151,7 @@ test_headers() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; }&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; build_cflags() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gd&#34;&gt;-    BASE_CFLAGS=&amp;#34;-O2 -D__KERNEL__ \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gi&#34;&gt;+    BASE_CFLAGS=&amp;#34;-std=gnu17 -O2 -D__KERNEL__ \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; -DKBUILD_BASENAME=\&amp;#34;#conftest$$\&amp;#34; -DKBUILD_MODNAME=\&amp;#34;#conftest$$\&amp;#34; \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; -nostdinc -isystem $ISYSTEM \&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; -Wno-implicit-function-declaration -Wno-strict-prototypes -Wno-incompatible-pointer-types&amp;#34;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Salviamo e chiudiamo.&lt;/p&gt;&#xA;&lt;h3 id=&#34;modifica-di-hahahugoshortcode113s5hbhb&#34;&gt;Modifica di &lt;span class=&#34;allsc&#34;&gt;PKGBUILD&lt;/span&gt;&lt;/h3&gt;&#xA;&lt;p&gt;Ora dobbiamo modificare il file &lt;code&gt;PKGBUILD&lt;/code&gt; per far sì che&#xA;questo, durante la compilazione, consideri la patch appena creata. Anziché dirvi&#xA;cosa modificare a mano, creeremo un altro file &lt;code&gt;.patch&lt;/code&gt;, così senza sforzo né&#xA;errori lo modificheremo. Creiamo questo file:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;nano PKGBUILD.patch&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;e incolliamo queste righe:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-patch&#34; data-lang=&#34;patch&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gd&#34;&gt;--- nvidia-390xx-utils/PKGBUILD&#x9;2025-05-09 21:57:08.271353078 +0200&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gi&#34;&gt;+++ PKGBUILD&#x9;2025-05-09 18:23:07.990867041 +0200&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;@@ -31,7 +31,8 @@&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;         kernel-6.12.patch&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;         kernel-6.13.patch&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;         kernel-6.14.patch&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gd&#34;&gt;-        kernel-4.16+-memory-encryption.patch)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gi&#34;&gt;+        kernel-4.16+-memory-encryption.patch&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gi&#34;&gt;+        gcc-15.patch)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; b2sums=(&amp;#39;8e24aea70b139185bd682b080d32aeda673e6e92b45a90e6f6e0d736674180400bc8bd1aa5c66b8d033fc9d5e0cfffed456a87298bd93a3afbbc30b8dc48c4e9&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;         &amp;#39;c1da4ce5784e43385465913a95053a3e54f800aac6f1b49f33e2a77504d76da5e6db6ec7074fbe7ba5f52dcef9e1ebaa620942c33ff825a56caba5c9c8b0d1be&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;         &amp;#39;67e32932eeddda8fef667d25c34faf7b3a02f01cf9c15a97e5613bd44a0e8dcf7396e25399a52701f55dd18054c689720f237bb07d5bd580394d8dc8c9d05534&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;@@ -49,7 +50,8 @@&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;         &amp;#39;aaa0597ab9d33be3c6e020fab0d54890d32f32c5ce70571e2bc989a788dbe2317e826475966bc1026bf7f7ff6672bd9a2f7f8e48dcebd2f91d33d9181eee1208&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;         &amp;#39;8e5502a6668bf3981d1e9cc6cdad428fcfdd221b51850b0fde74d631faa379d965b97a87e845eda2bc0e99a0aa9bf58642444bdea9f976cafcd12edf0e20f5db&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;         &amp;#39;21b87918e9b9b0475ab4fb548be6daadd6921566fb03a3f96cffff5296f9fa1bccdabe7c4671aba2a1dc455248b7a96e5a088c48ab922305213bc714e4a39d6c&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gd&#34;&gt;-        &amp;#39;a8234f542c2324ad698443e3decf7b6eacf3cb420b7aded787f102a8d32b64c2a8d45ea58e37a5e3b6f2f060f0cccd63d3a182065f57c606006d0ff8c7f6bb05&amp;#39;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gi&#34;&gt;+        &amp;#39;a8234f542c2324ad698443e3decf7b6eacf3cb420b7aded787f102a8d32b64c2a8d45ea58e37a5e3b6f2f060f0cccd63d3a182065f57c606006d0ff8c7f6bb05&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gi&#34;&gt;+        &amp;#39;488c1381c371efaa18aa68424560d5a5145d25dea79ae44c30fa771bdd097b43125a7b6d553ac823a304d5a681ee5e958291a2334f4be8bba79754fdb5ff80a2&amp;#39;)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; create_links() {&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     # create soname links&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;@@ -105,6 +107,9 @@&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     # From Joan Bruguera (https://gist.github.com/joanbm/d0cb8790ca610fbd2c2e43f30707ce18)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     patch -Np1 -i ../kernel-6.14.patch&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gi&#34;&gt;+    # From bufferunderrun (https://aur.archlinux.org/packages/nvidia-390xx-dkms#comment-1022658)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gi&#34;&gt;+    patch -Np1 -i ../gcc-15.patch&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gi&#34;&gt;+&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     cd kernel&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;     sed -i &amp;#34;s/__VERSION_STRING/${pkgver}/&amp;#34; dkms.conf&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Salviamo e chiudiamo. Ora applichiamo le modifiche al file &lt;code&gt;PKGBUILD&lt;/code&gt;:&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;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;patch PKGBUILD &amp;lt; PKGBUILD.patch&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;compilazione-e-installazione-del-driver-con-la-patch&#34;&gt;Compilazione e installazione del driver con la patch&lt;/h2&gt;&#xA;&lt;p&gt;Installiamo ora il driver contenente la patch per &lt;code&gt;gcc&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;makepkg -si&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Il sistema ora compilerà il driver con tutte le patch presenti nel pacchetto,&#xA;compresa &lt;code&gt;gcc-15.patch&lt;/code&gt; che abbiamo creato poco fa.&lt;/p&gt;&#xA;&lt;p&gt;Una volta che avrà finito &amp;mdash; si spera &amp;mdash; senza errori, procederemo a&#xA;installare il nuovo kernel e &lt;code&gt;gcc&lt;/code&gt; ultima versione. Se, come avevo fatto io,&#xA;avevate bloccato gli aggiornamenti del kernel e di &lt;code&gt;gcc&lt;/code&gt;, sbloccateli. Quindi&#xA;aggiorniamo il sistema:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -Syu&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Non dovremmo vedere alcun problema segnalato nei messaggi del terminale. A&#xA;questo punto possiamo riavviare e goderci gli aggiornamenti appena installati.&lt;/p&gt;&#xA;&lt;hr class=&#34;decorative&#34;&gt;&#xA;&#xA;&lt;p&gt;Ringrazio infinitamente tutti coloro che hanno contribuito a questa risoluzione&#xA;e che mi consentono di continuare ad usare questa vecchia macchina con Arch&#xA;Linux.&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;Come detto, la patch è ripresa interamente da&#xA;&lt;a href=&#34;https://aur.archlinux.org/pkgbase/nvidia-390xx-utils?O=10#comment-1022658&#34;&gt;questo commento di bufferunderrun&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;Una volta applicata la patch, possiamo anche eliminare il file&#xA;&lt;code&gt;PKGBUILD.patch&lt;/code&gt;, perché non ci serve più. Ad ogni modo questo file non sarà&#xA;considerato da &lt;span class=&#34;allsc&#34;&gt;PKGBUILD&lt;/span&gt; stesso durante la compilazione&#xA;perché non è presente nella lista delle patch da applicare a &lt;code&gt;gcc&lt;/code&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>
    <item>
      <title>Downgrade del kernel in Arch</title>
      <link>https://www.aldolat.it/posts/2025/downgrade-kernel-in-arch/</link>
      <pubDate>Thu, 01 May 2025 07:39:14 +0200</pubDate>
      <author>Aldo Latino (aldolat@gmail.com)</author>
      <guid>https://www.aldolat.it/posts/2025/downgrade-kernel-in-arch/</guid>
      <description>&lt;p class=&#34;dc&#34;&gt;N&lt;span class=&#34;allsc&#34;&gt;el mio&lt;/span&gt; ormai vetusto computer, che monta una più che&#xA;obsoleta scheda nVidia, sono costretto a usare i vecchi driver versione 390&#xA;prelevati da &lt;span class=&#34;allsc&#34;&gt;AUR&lt;/span&gt;, come ho già avuto modo di scrivere.&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;&#xA;Questo comporta che, se i driver non sono compatibili con una nuova versione del&#xA;kernel, questi non verranno compilati correttamente e, al successivo riavvio,&#xA;avrei un computer che molto probabilmente non partirà.&lt;/p&gt;&#xA;&lt;p&gt;Nell&amp;rsquo;ultima sessione di aggiornamento della mia Arch ho riscontrato nuovamente&#xA;questo problema. Dopo aver dato il solito:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -Syu&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;questo l&amp;rsquo;output, dove ho tolto un po&amp;rsquo; di righe che non ci interessano:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;:: Sincronizzazione dei database in corso...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; core    117,0 KiB   355 KiB/s 00:00 [##################] 100%&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; extra     7,8 MiB  6,26 MiB/s 00:01 [##################] 100%&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;:: Aggiornamento del sistema in corso...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;risoluzione delle dipendenze in corso...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ricerca dei pacchetti in conflitto in corso...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Pacchetti (94) [...]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Dimensione totale dei pacchetti da scaricare:   1018,12 MiB&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Dimensione totale dei pacchetti da installare:  3481,25 MiB&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Dimensione netta dell&amp;#39;aggiornamento:              10,62 MiB&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;:: Vuoi procedere con l&amp;#39;installazione? [S/n]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;:: Download dei pacchetti in corso...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[...]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;(11/21) Install DKMS modules&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; dkms install --no-depmod nvidia/390.157 -k 6.14.4-arch1-2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Error! Bad return status for module build on kernel: 6.14.4-arch1-2 (x86_64)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Consult /var/lib/dkms/nvidia/390.157/build/make.log for more information.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; WARNING: `dkms install --no-depmod nvidia/390.157 -k 6.14.4-arch1-2&amp;#39; exited 10&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;(12/21) Restarting cronie for libc upgrade...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;(13/21) Updating linux initcpios...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; Building image from preset: /etc/mkinitcpio.d/linux.preset: &amp;#39;default&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; Using default configuration file: &amp;#39;/etc/mkinitcpio.conf&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; -k /boot/vmlinuz-linux -g /boot/initramfs-linux.img&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; Starting build: &amp;#39;6.14.4-arch1-2&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Running build hook: [base]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  [...]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Running build hook: [fsck]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; ERROR: module not found: &amp;#39;nvidia&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; ERROR: module not found: &amp;#39;nvidia_modeset&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; ERROR: module not found: &amp;#39;nvidia_uvm&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; ERROR: module not found: &amp;#39;nvidia_drm&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; Generating module dependencies&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; Creating zstd-compressed initcpio image: &amp;#39;/boot/initramfs-linux.img&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; WARNING: errors were encountered during the build. The image may not be complete.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; Building image from preset: /etc/mkinitcpio.d/linux.preset: &amp;#39;fallback&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; Using default configuration file: &amp;#39;/etc/mkinitcpio.conf&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; -k /boot/vmlinuz-linux -g /boot/initramfs-linux-fallback.img -S autodetect&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; Starting build: &amp;#39;6.14.4-arch1-2&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Running build hook: [base]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  [...]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Running build hook: [fsck]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; ERROR: module not found: &amp;#39;nvidia&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; ERROR: module not found: &amp;#39;nvidia_modeset&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; ERROR: module not found: &amp;#39;nvidia_uvm&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; ERROR: module not found: &amp;#39;nvidia_drm&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; Generating module dependencies&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; Creating zstd-compressed initcpio image: &amp;#39;/boot/initramfs-linux-fallback.img&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; WARNING: errors were encountered during the build. The image may not be complete.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;errore: l&amp;#39;esecuzione del comando non è riuscita correttamente&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;[...]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Il driver non è compatibile col nuovo kernel e serve un&amp;rsquo;altra patch.&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; Vado su&#xA;&lt;span class=&#34;allsc&#34;&gt;AUR&lt;/span&gt; e trovo (ovviamente!)&#xA;&lt;a href=&#34;https://aur.archlinux.org/packages/nvidia-390xx-dkms?O=10#comment-1021942&#34;&gt;un commento&lt;/a&gt;&#xA;di un altro utente: non essendoci ancora la patch disponibile, l&amp;rsquo;unico modo per&#xA;risolvere temporaneamente è disinstallare la versione nuova del kernel o, per&#xA;meglio dire con termine tecnico, &amp;ldquo;downgradare&amp;rdquo; il kernel, tornando quindi alla&#xA;versione che stiamo usando in questo momento, visto che non abbiamo ancora&#xA;riavviato.&lt;/p&gt;&#xA;&lt;p&gt;I pacchetti da retrocedere di versione sono &lt;code&gt;linux&lt;/code&gt;, &lt;code&gt;linux-headers&lt;/code&gt;, &lt;code&gt;gcc&lt;/code&gt;,&#xA;&lt;code&gt;gcc-libs&lt;/code&gt;, come indicato dall&amp;rsquo;utente su &lt;span class=&#34;allsc&#34;&gt;AUR&lt;/span&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;analisi-della-situazione&#34;&gt;Analisi della situazione&lt;/h2&gt;&#xA;&lt;p&gt;In base a quanto detto, vediamo quali sono i pacchetti e le versioni che abbiamo&#xA;appena installato con l&amp;rsquo;aggiornamento e quali sono le versioni da ripristinare:&lt;/p&gt;&#xA;&lt;dl&gt;&#xA;&lt;dt&gt;Pacchetti installati da retrocedere&lt;/dt&gt;&#xA;&lt;dd&gt;&lt;code&gt;linux-6.14.4.arch1-2&lt;/code&gt;&lt;/dd&gt;&#xA;&lt;dd&gt;&lt;code&gt;linux-headers-6.14.4.arch1-2&lt;/code&gt;&lt;/dd&gt;&#xA;&lt;dd&gt;&lt;code&gt;gcc-15.1.1+r7+gf36ec88aa85a-1&lt;/code&gt;&lt;/dd&gt;&#xA;&lt;dd&gt;&lt;code&gt;gcc-libs-15.1.1+r7+gf36ec88aa85a-1&lt;/code&gt;&lt;/dd&gt;&#xA;&lt;/dl&gt;&#xA;&lt;p&gt;Vediamo quali erano le versioni precedenti dei pacchetti guardando la cache di&#xA;pacman. Cominciamo con &lt;code&gt;linux&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ ls -l /var/cache/pacman/pkg/linux-6.14.4.arch1-*&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-rw-r--r-- &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; root root &lt;span class=&#34;m&#34;&gt;145830356&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;26&lt;/span&gt; apr 03.05 /var/cache/pacman/pkg/linux-6.14.4.arch1-1-x86_64.pkg.tar.zst&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-rw-r--r-- &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; root root       &lt;span class=&#34;m&#34;&gt;119&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;26&lt;/span&gt; apr 03.06 /var/cache/pacman/pkg/linux-6.14.4.arch1-1-x86_64.pkg.tar.zst.sig&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-rw-r--r-- &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; root root &lt;span class=&#34;m&#34;&gt;145998435&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;29&lt;/span&gt; apr 12.05 /var/cache/pacman/pkg/linux-6.14.4.arch1-2-x86_64.pkg.tar.zst&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-rw-r--r-- &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; root root       &lt;span class=&#34;m&#34;&gt;215&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;29&lt;/span&gt; apr 12.05 /var/cache/pacman/pkg/linux-6.14.4.arch1-2-x86_64.pkg.tar.zst.sig&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Quindi il pacchetto è &lt;code&gt;linux-6.14.4.arch1-1-x86_64.pkg.tar.zst&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p class=&#34;newpar&#34;&gt;Ora passiamo a &lt;code&gt;linux-headers&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ ls -l /var/cache/pacman/pkg/linux-headers-6.14.4.arch1-*&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-rw-r--r-- &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; root root &lt;span class=&#34;m&#34;&gt;52859906&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;26&lt;/span&gt; apr 03.05 /var/cache/pacman/pkg/linux-headers-6.14.4.arch1-1-x86_64.pkg.tar.zst&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-rw-r--r-- &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; root root      &lt;span class=&#34;m&#34;&gt;119&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;26&lt;/span&gt; apr 03.06 /var/cache/pacman/pkg/linux-headers-6.14.4.arch1-1-x86_64.pkg.tar.zst.sig&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-rw-r--r-- &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; root root &lt;span class=&#34;m&#34;&gt;52895857&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;29&lt;/span&gt; apr 12.06 /var/cache/pacman/pkg/linux-headers-6.14.4.arch1-2-x86_64.pkg.tar.zst&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-rw-r--r-- &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; root root      &lt;span class=&#34;m&#34;&gt;215&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;29&lt;/span&gt; apr 12.06 /var/cache/pacman/pkg/linux-headers-6.14.4.arch1-2-x86_64.pkg.tar.zst.sig&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Qui il pacchetto è &lt;code&gt;linux-headers-6.14.4.arch1-1-x86_64.pkg.tar.zst&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p class=&#34;newpar&#34;&gt;Ora &lt;code&gt;gcc&lt;/code&gt; e &lt;code&gt;gcc-libs&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;$ ls -l /var/cache/pacman/pkg/gcc*&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-rw-r--r-- &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; root root &lt;span class=&#34;m&#34;&gt;56596007&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;29&lt;/span&gt; apr 09.16 /var/cache/pacman/pkg/gcc-15.1.1+r7+gf36ec88aa85a-1-x86_64.pkg.tar.zst&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-rw-r--r-- &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; root root      &lt;span class=&#34;m&#34;&gt;215&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;29&lt;/span&gt; apr 09.16 /var/cache/pacman/pkg/gcc-15.1.1+r7+gf36ec88aa85a-1-x86_64.pkg.tar.zst.sig&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-rw-r--r-- &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; root root &lt;span class=&#34;m&#34;&gt;37645039&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;29&lt;/span&gt; apr 09.21 /var/cache/pacman/pkg/gcc-libs-15.1.1+r7+gf36ec88aa85a-1-x86_64.pkg.tar.zst&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;-rw-r--r-- &lt;span class=&#34;m&#34;&gt;1&lt;/span&gt; root root      &lt;span class=&#34;m&#34;&gt;215&lt;/span&gt; &lt;span class=&#34;m&#34;&gt;29&lt;/span&gt; apr 09.21 /var/cache/pacman/pkg/gcc-libs-15.1.1+r7+gf36ec88aa85a-1-x86_64.pkg.tar.zst.sig&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Come si vede dall&amp;rsquo;output, per questi due pacchetti non ho in cache la versione precedente, per cui li&#xA;prenderemo dall&amp;rsquo;archivio di Arch:&lt;/p&gt;&#xA;&lt;p class=&#34;link&#34;&gt;&lt;a href=&#34;https://archive.archlinux.org/packages/&#34;&gt;https://archive.archlinux.org/packages/&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Basta entrare nelle rispettive directory &lt;code&gt;g/gcc&lt;/code&gt; e &lt;code&gt;g/gcc-libs&lt;/code&gt;: da lì prendere&#xA;gli indirizzi dei due pacchetti.&lt;/p&gt;&#xA;&lt;p&gt;Nel nostro caso questi sono i pacchetti da ripristinare per &lt;code&gt;gcc&lt;/code&gt; e &lt;code&gt;gcc-libs&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;code&gt;gcc-14.2.1+r753+g1cd744a6828f-1-x86_64&lt;/code&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;code&gt;gcc-libs-14.2.1+r753+g1cd744a6828f-1-x86_64&lt;/code&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p class=&#34;newpar&#34;&gt;Ricapitolando, questi sono gli indirizzi che daremo in pasto a pacman per&#xA;l&amp;rsquo;installazione:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/var/cache/pacman/pkg/linux-6.14.4.arch1-1-x86_64.pkg.tar.zst&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/var/cache/pacman/pkg/linux-headers-6.14.4.arch1-1-x86_64.pkg.tar.zst&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;https://archive.archlinux.org/packages/g/gcc/gcc-14.2.1+r753+g1cd744a6828f-1-x86_64.pkg.tar.zst&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;https://archive.archlinux.org/packages/g/gcc-libs/gcc-libs-14.2.1+r753+g1cd744a6828f-1-x86_64.pkg.tar.zst&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Due saranno quindi prelevati dalla cache di pacman e due dall&amp;rsquo;archivio di Arch.&lt;/p&gt;&#xA;&lt;h2 id=&#34;avvio-del-downgrade&#34;&gt;Avvio del downgrade&lt;/h2&gt;&#xA;&lt;p&gt;Lanciamo (&lt;em&gt;senza paura!&lt;/em&gt;) l&amp;rsquo;&amp;lsquo;aggiornamento&amp;rsquo; di tutti i pacchetti (che in realtà&#xA;è una retrocessione) dando in un colpo solo:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -U &lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  /var/cache/pacman/pkg/linux-6.14.4.arch1-1-x86_64.pkg.tar.zst &lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  /var/cache/pacman/pkg/linux-headers-6.14.4.arch1-1-x86_64.pkg.tar.zst &lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  https://archive.archlinux.org/packages/g/gcc/gcc-14.2.1+r753+g1cd744a6828f-1-x86_64.pkg.tar.zst &lt;span class=&#34;se&#34;&gt;\&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  https://archive.archlinux.org/packages/g/gcc-libs/gcc-libs-14.2.1+r753+g1cd744a6828f-1-x86_64.pkg.tar.zst&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Adesso pacman eseguirà l&amp;rsquo;installazione di queste versioni sostituendo quelle più&#xA;recenti. Lascio l&amp;rsquo;output completo del comando:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;:: Download dei pacchetti in corso...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; gcc-14.2.1+r753+g1cd744a6828f-1-x86_64                 51,1 MiB  5,00 MiB/s 00:10 [################################################] 100%&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; gcc-libs-14.2.1+r753+g1cd744a6828f-1-x86_64            35,0 MiB  4,28 MiB/s 00:08 [################################################] 100%&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;caricamento dei pacchetti in corso...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;attenzione: installazione in corso di una versione meno recente del pacchetto linux (6.14.4.arch1-2 =&amp;gt; 6.14.4.arch1-1)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;attenzione: installazione in corso di una versione meno recente del pacchetto linux-headers (6.14.4.arch1-2 =&amp;gt; 6.14.4.arch1-1)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;attenzione: installazione in corso di una versione meno recente del pacchetto gcc (15.1.1+r7+gf36ec88aa85a-1 =&amp;gt; 14.2.1+r753+g1cd744a6828f-1)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;attenzione: installazione in corso di una versione meno recente del pacchetto gcc-libs (15.1.1+r7+gf36ec88aa85a-1 =&amp;gt; 14.2.1+r753+g1cd744a6828f-1)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;risoluzione delle dipendenze in corso...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ricerca dei pacchetti in conflitto in corso...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Pacchetti (4) gcc-14.2.1+r753+g1cd744a6828f-1  gcc-libs-14.2.1+r753+g1cd744a6828f-1  linux-6.14.4.arch1-1  linux-headers-6.14.4.arch1-1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Dimensione totale dei pacchetti da installare:  720,47 MiB&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Dimensione netta dell&amp;#39;aggiornamento:            -10,92 MiB&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;:: Vuoi procedere con l&amp;#39;installazione? [S/n]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;(4/4) verifica delle chiavi presenti nel portachiavi                               [################################################] 100%&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;(4/4) verifica dell&amp;#39;integrità dei pacchetti                                        [################################################] 100%&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;(4/4) caricamento dei file dei pacchetti                                           [################################################] 100%&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;(4/4) controllo dei conflitti in corso                                             [################################################] 100%&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;(4/4) controllo dello spazio disponibile sul disco                                 [################################################] 100%&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;:: Esecuzione degli hook di pre-transazione...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;(1/2) Removing linux initcpios...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;(2/2) Remove DKMS modules&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;:: Elaborazione delle modifiche al pacchetto...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;(1/4) downgrade in corso gcc-libs                                                  [################################################] 100%&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;(2/4) downgrade in corso linux                                                     [################################################] 100%&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;(3/4) downgrade in corso linux-headers                                             [################################################] 100%&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;(4/4) downgrade in corso gcc                                                       [################################################] 100%&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;:: Esecuzione degli hook di post-transazione...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;(1/5) Arming ConditionNeedsUpdate...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;(2/5) Updating module dependencies...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;(3/5) Install DKMS modules&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; dkms install --no-depmod nvidia/390.157 -k 6.14.4-arch1-1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; depmod 6.14.4-arch1-1&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;(4/5) Updating linux initcpios...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; Building image from preset: /etc/mkinitcpio.d/linux.preset: &amp;#39;default&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; Using default configuration file: &amp;#39;/etc/mkinitcpio.conf&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; -k /boot/vmlinuz-linux -g /boot/initramfs-linux.img&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; Starting build: &amp;#39;6.14.4-arch1-1&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Running build hook: [base]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Running build hook: [udev]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Running build hook: [autodetect]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Running build hook: [microcode]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Running build hook: [modconf]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Running build hook: [kms]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Running build hook: [keyboard]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Running build hook: [keymap]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Running build hook: [consolefont]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Running build hook: [block]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Running build hook: [filesystems]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Running build hook: [resume]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Running build hook: [fsck]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; Generating module dependencies&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; Creating zstd-compressed initcpio image: &amp;#39;/boot/initramfs-linux.img&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Early uncompressed CPIO image generation successful&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; Initcpio image generation successful&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; Building image from preset: /etc/mkinitcpio.d/linux.preset: &amp;#39;fallback&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; Using default configuration file: &amp;#39;/etc/mkinitcpio.conf&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; -k /boot/vmlinuz-linux -g /boot/initramfs-linux-fallback.img -S autodetect&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; Starting build: &amp;#39;6.14.4-arch1-1&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Running build hook: [base]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Running build hook: [udev]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Running build hook: [microcode]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Running build hook: [modconf]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Running build hook: [kms]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Running build hook: [keyboard]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Running build hook: [keymap]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Running build hook: [consolefont]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Running build hook: [block]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Running build hook: [filesystems]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Running build hook: [resume]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Running build hook: [fsck]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; Generating module dependencies&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; Creating zstd-compressed initcpio image: &amp;#39;/boot/initramfs-linux-fallback.img&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  -&amp;gt; Early uncompressed CPIO image generation successful&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;==&amp;gt; Initcpio image generation successful&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;(5/5) Updating the info directory file...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Al riavvio il computer è tornato perfettamente funzionante. Chiaramente, se&#xA;diamo un:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -Syu&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;pacman proporrà l&amp;rsquo;aggiornamento dei pacchetti appena retrocessi:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;:: Sincronizzazione dei database in corso...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; core è aggiornato&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt; extra è aggiornato&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;:: Aggiornamento del sistema in corso...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;risoluzione delle dipendenze in corso...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;ricerca dei pacchetti in conflitto in corso...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Pacchetti (4) gcc-15.1.1+r7+gf36ec88aa85a-1  gcc-libs-15.1.1+r7+gf36ec88aa85a-1  linux-6.14.4.arch1-2  linux-headers-6.14.4.arch1-2&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Dimensione totale dei pacchetti da installare:  731,38 MiB&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Dimensione netta dell&amp;#39;aggiornamento:             10,92 MiB&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;:: Vuoi procedere con l&amp;#39;installazione? [S/n]&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Al che risponderemo &lt;code&gt;n&lt;/code&gt; perché dobbiamo attendere la patch. Un&amp;rsquo;alternativa è&#xA;quella di bloccare l&amp;rsquo;aggiornamento di questi quattro pacchetti indicandolo nel&#xA;file di configurazione di pacman,&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; ma preferisco per ora non fare&#xA;aggiornamenti in attesa della risoluzione del problema.&lt;/p&gt;&#xA;&lt;hr class=&#34;decorative&#34;&gt;&#xA;&#xA;&lt;p&gt;Come ho scritto in un altro post,&lt;sup id=&#34;fnref1: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; questo è l&amp;rsquo;unico problema che ho riscontrato&#xA;in Arch da quando lo uso, vale a dire la gestione del vecchio driver nVidia.&#xA;Certo, basterebbe cambiare la scheda con una più recente, ma ormai questo&#xA;relitto informatico ha i suoi anni e ha troppi acciacchi oltre a questo. Non ne&#xA;vale la pena.&lt;/p&gt;&#xA;&lt;hr class=&#34;decorative&#34;&gt;&#xA;&#xA;&lt;h2 id=&#34;aggiornamento-del-11052025&#34;&gt;Aggiornamento del 11/05/2025.&lt;/h2&gt;&#xA;&lt;p&gt;Il buon @Lone_Wolf sul forum di Arch &lt;a href=&#34;https://bbs.archlinux.org/viewtopic.php?pid=2240055#p2240055&#34;&gt;mi ha consigliato&lt;/a&gt;&#xA;che c&amp;rsquo;è un modo più sicuro per fare questa operazione:&lt;/p&gt;&#xA;&lt;blockquote class=&#34;noindent&#34;&gt;&lt;p&gt;That will break all applications that require gcc-libs 15.1 .&lt;/p&gt;&#xA;&lt;p&gt;Use &lt;em&gt;&lt;a href=&#34;https://wiki.archlinux.org/title/Arch_Linux_Archive#How_to_restore_all_packages_to_a_specific_date&#34;&gt;How to restore all packages to a specific date&lt;/a&gt;&lt;/em&gt; to pin&#xA;everything on your system to the state they had just before the switch to gcc 15.&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;Sapevo che pacman può fare ciò anche se non l&amp;rsquo;ho mai provato, ma ho pensato che&#xA;la soluzione del problema era alle porte: per tale motivo ho deciso di attendere&#xA;la patch prima di fare altri aggiornamenti.&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;Ne ho parlato sia in &lt;a href=&#34;https://www.aldolat.it/posts/2025/come-mi-trovo-con-arch-linux-dopo-quasi-3-anni/&#34;&gt;&lt;em&gt;Come mi trovo con Arch Linux dopo quasi 3 anni&lt;/em&gt;&lt;/a&gt; che in &lt;a href=&#34;https://www.aldolat.it/posts/2022/arch-linux-kernel-6-nvidia-driver-390/&#34;&gt;&lt;em&gt;Driver nVidia 390 su kernel 6.0 in Arch Linux&lt;/em&gt;&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;&amp;#160;&lt;a href=&#34;#fnref1: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;Al momento della stesura del post, queste sono le patch incluse nel&#xA;pacchetto &lt;code&gt;nvidia-390xx-dkms&lt;/code&gt;: &lt;code&gt;kernel-6.2.patch&lt;/code&gt;, &lt;code&gt;kernel-6.3.patch&lt;/code&gt;,&#xA;&lt;code&gt;kernel-6.4.patch&lt;/code&gt;, &lt;code&gt;kernel-6.5.patch&lt;/code&gt;, &lt;code&gt;kernel-6.6.patch&lt;/code&gt;, &lt;code&gt;kernel-6.8.patch&lt;/code&gt;,&#xA;&lt;code&gt;kernel-6.10.patch&lt;/code&gt;, &lt;code&gt;kernel-6.12.patch&lt;/code&gt;, &lt;code&gt;kernel-6.13.patch&lt;/code&gt;,&#xA;&lt;code&gt;kernel-6.14.patch&lt;/code&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;li id=&#34;fn:3&#34;&gt;&#xA;&lt;p&gt;Ne ho parlato in &lt;a href=&#34;https://www.aldolat.it/posts/2024/krdc-24-problema-connessione/&#34;&gt;&lt;em&gt;&lt;span class=&#34;allsc&#34;&gt;KRDC&lt;/span&gt; 24.01.80-1 ha qualche problema di connessione&lt;/em&gt;&lt;/a&gt;.&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;/ol&gt;&#xA;&lt;/div&gt;&#xA;</description>
    </item>
    <item>
      <title>Inserire note a piè di pagina fuori numerazione in LaTeX</title>
      <link>https://www.aldolat.it/posts/2025/inserire-note-fuori-numerazione-latex/</link>
      <pubDate>Tue, 18 Mar 2025 19:16:22 +0100</pubDate>
      <author>Aldo Latino (aldolat@gmail.com)</author>
      <guid>https://www.aldolat.it/posts/2025/inserire-note-fuori-numerazione-latex/</guid>
      <description>&lt;p class=&#34;dc&#34;&gt;M&lt;span class=&#34;allsc&#34;&gt;i è capitato&lt;/span&gt; in questi giorni di dover inserire in un&#xA;documento &lt;span class=&#34;latex&#34;&gt;L&lt;span class=&#34;latex-a&#34;&gt;a&lt;/span&gt;T&lt;span class=&#34;latex-e&#34;&gt;e&lt;/span&gt;X&lt;/span&gt; una nota aggiuntiva ma fuori numerazione. La nota da&#xA;inserire si trovava, tra l&amp;rsquo;altro, dopo alcune note a piè di pagina già presenti.&#xA;Fare questa operazione è molto semplice.&lt;/p&gt;&#xA;&lt;h2 id=&#34;come-si-fa&#34;&gt;Come si fa&lt;/h2&gt;&#xA;&lt;p&gt;Detta in poche parole, si tratta di inserire questa riga prima del blocco di&#xA;testo dove mettere la nota fuori numerazione:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-latex&#34; data-lang=&#34;latex&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\renewcommand*&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;\thefootnote&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}{&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;\fnsymbol&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;footnote&lt;span class=&#34;nb&#34;&gt;}}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;A seguire va inserito il blocco di testo con la nota fuori numerazione:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-latex&#34; data-lang=&#34;latex&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Duis tempor nulla non commodo maximus.&lt;span class=&#34;k&#34;&gt;\footnote&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[2]&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;Lorem ipsum&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;dolor sit amet, consectetur adipiscing elit. Maecenas&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sollicitudin, turpis vitae venenatis tempor, magna metus&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;pulvinar justo, eu tempus purus leo a nisl. Aenean dictum&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;purus nec massa fringilla tincidunt. In vitae tincidunt ante.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Nunc eu augue leo. Ut elit dui, euismod ut semper et,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;efficitur et risus. Phasellus finibus non elit a facilisis.&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Nunc nec mattis nulla...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;E, subito dopo, va inserita un&amp;rsquo;altra riga che dice a &lt;span class=&#34;latex&#34;&gt;L&lt;span class=&#34;latex-a&#34;&gt;a&lt;/span&gt;T&lt;span class=&#34;latex-e&#34;&gt;e&lt;/span&gt;X&lt;/span&gt; di riprendere&#xA;la numerazione normalmente:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-latex&#34; data-lang=&#34;latex&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\renewcommand*&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;\thefootnote&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}{&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;\arabic&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;footnote&lt;span class=&#34;nb&#34;&gt;}}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;un-esempio&#34;&gt;Un esempio&lt;/h3&gt;&#xA;&lt;p&gt;Vediamo un esempio di un file minimo compilabile:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-latex&#34; data-lang=&#34;latex&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 1&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\documentclass&lt;/span&gt;[&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 2&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  a4paper,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 3&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;  11pt,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 4&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;]&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;article&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 5&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 6&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\usepackage&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[utf8]&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;inputenc&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 7&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\usepackage&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;fontenc&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 8&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt; 9&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\author&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;Paolino Paperino&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;10&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\title&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;Note fuori numerazione&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;11&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;12&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\begin&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;document&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;13&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;14&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\maketitle&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;15&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;16&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\section&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;Sezione 1&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;17&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;18&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;Nunc nec mattis nulla, quis efficitur est. Phasellus ut mollis&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;19&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;nulla, molestie consequat est. Pellentesque nisl&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;20&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;ex,&lt;span class=&#34;k&#34;&gt;\footnote&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;Nunc nec mattis nulla, quis efficitur est.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;21&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;Phasellus ut mollis nulla, molestie consequat est.&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt; porttitor&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;22&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;ac velit sed, vulputate hendrerit dui.&lt;span class=&#34;k&#34;&gt;\footnote&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;Molestie&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;23&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;consequat est.&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt; Pellentesque imperdiet dolor lectus. Mauris ac&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;24&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;euismod nunc. Donec varius est lorem, at malesuada dolor&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;25&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;facilisis eget.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;26&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;27&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;% Imposta la numerazione delle note con simboli.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;28&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\renewcommand*&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;\thefootnote&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}{&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;\fnsymbol&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;footnote&lt;span class=&#34;nb&#34;&gt;}}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;29&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;30&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\section&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;Sezione 2&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;31&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;32&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;Duis tempor nulla non commodo maximus.&lt;span class=&#34;k&#34;&gt;\footnote&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[2]&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;Lorem ipsum&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;33&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;dolor sit amet, consectetur adipiscing elit. Maecenas&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;34&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;sollicitudin, turpis vitae venenatis tempor, magna metus&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;35&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;pulvinar justo, eu tempus purus leo a nisl. Aenean dictum&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;36&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;purus nec massa fringilla tincidunt. In vitae tincidunt ante.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;37&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;Nunc eu augue leo. Ut elit dui, euismod ut semper et,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;38&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;efficitur et risus. Phasellus finibus non elit a facilisis.&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;39&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;Nunc nec mattis nulla, quis efficitur est. Phasellus ut mollis&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;40&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;nulla, molestie consequat est. Pellentesque nisl ex, porttitor&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;41&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;ac velit sed, vulputate hendrerit dui. Pellentesque imperdiet&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;42&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;dolor lectus. Mauris ac euismod nunc. Donec varius est lorem,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;43&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;at malesuada dolor facilisis eget.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;44&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;45&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;% Reimposta la numerazione standard delle note.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;46&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\renewcommand*&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;\thefootnote&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}{&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;\arabic&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;footnote&lt;span class=&#34;nb&#34;&gt;}}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;47&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;48&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\section&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;Sezione 3&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;49&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;50&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;Phasellus rhoncus viverra risus&lt;span class=&#34;k&#34;&gt;\footnote&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;Nunc nec mattis&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;51&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;nulla, quis efficitur est. Phasellus ut mollis nulla, molestie&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;52&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;consequat est.&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt; non feugiat. Aliquam aliquam porttitor&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;53&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;condimentum. Vivamus congue velit nunc,&lt;span class=&#34;k&#34;&gt;\footnote&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;Pellentesque&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;54&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;imperdiet dolor lectus. Mauris ac euismod nunc. Donec varius&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;55&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;est lorem, at malesuada dolor facilisis eget.&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt; auctor&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;56&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;pellentesque sem volutpat sed. Maecenas semper tincidunt enim,&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;57&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;facilisis hendrerit nibh laoreet id. Aenean sit amet nisl ac&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;58&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;neque auctor efficitur sit amet eget ex. Etiam lacinia maximus&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;59&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;dictum.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;60&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;ln&#34;&gt;61&lt;/span&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\end&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;document&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Questo l&amp;rsquo;aspetto della pagina dopo la compilazione:&lt;/p&gt;&#xA;&lt;figure class=&#34;aligncenter&#34;&gt;&lt;a href=&#34;https://www.aldolat.it/images/2025/03/nota-fuori-numerazione.webp&#34;&gt;&lt;img src=&#34;https://www.aldolat.it/images/2025/03/nota-fuori-numerazione.webp&#34;&#xA;&#x9;&#x9;&#x9;alt=&#34;nota-fuori-numerazione&#34;&gt;&lt;/a&gt;&lt;figcaption&gt;&#xA;&#x9;&#x9;&#x9;&lt;p&gt;La pagina compilata con la nota fuori numerazione.&lt;/p&gt;&#xA;&#x9;&#x9;&lt;/figcaption&gt;&#xA;&lt;/figure&gt;&#xA;&#xA;&lt;p&gt;Come si vede, la nota fuori numerazione si trova nella sezione 2, immersa tra&#xA;altre note. Inoltre, ha il numero &lt;code&gt;2&lt;/code&gt; specificato come opzione: con questo&#xA;numero potete dire a &lt;span class=&#34;latex&#34;&gt;L&lt;span class=&#34;latex-a&#34;&gt;a&lt;/span&gt;T&lt;span class=&#34;latex-e&#34;&gt;e&lt;/span&gt;X&lt;/span&gt; quale simbolo deve usare. Sono nove&#xA;i simboli disponibili:&lt;/p&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th style=&#34;text-align: center&#34;&gt;Codice&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th style=&#34;text-align: center&#34;&gt;Simbolo&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;1&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: center&#34;&gt;*&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;2&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: center&#34;&gt;†&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;3&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: center&#34;&gt;‡&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;4&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: center&#34;&gt;§&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;5&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: center&#34;&gt;¶&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;6&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: center&#34;&gt;∥&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;7&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: center&#34;&gt;**&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;8&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: center&#34;&gt;††&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: center&#34;&gt;&lt;code&gt;9&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td style=&#34;text-align: center&#34;&gt;‡‡&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p class=&#34;table-caption&#34;&gt;&lt;span class=&#34;sc&#34;&gt;Tabella 1&lt;/span&gt;. La corrispondenza tra il codice interno di &lt;span class=&#34;latex&#34;&gt;L&lt;span class=&#34;latex-a&#34;&gt;a&lt;/span&gt;T&lt;span class=&#34;latex-e&#34;&gt;e&lt;/span&gt;X&lt;/span&gt; e il simbolo prodotto.&lt;/p&gt;&#xA;&lt;h2 id=&#34;creazione-di-un-comando-personalizzato&#34;&gt;Creazione di un comando personalizzato&lt;/h2&gt;&#xA;&lt;p&gt;Chiaramente è possibile rendere molto più semplice l&amp;rsquo;inserimento di queste note&#xA;fuori numerazione creandosi un comando &lt;em&gt;ad hoc&lt;/em&gt;. Il comando, che va inserito nel&#xA;preambolo, può essere strutturato in questo modo:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-latex&#34; data-lang=&#34;latex&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;c&#34;&gt;% Crea una nota a piè di pagina fuori numerazione.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;\newcommand&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;\nota&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;[2][8]&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;c&#34;&gt;%&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;\renewcommand*&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;\thefootnote&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}{&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;\fnsymbol&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;footnote&lt;span class=&#34;nb&#34;&gt;}}&lt;/span&gt;&lt;span class=&#34;c&#34;&gt;%&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;\footnote&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[#1]&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;#2&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&lt;span class=&#34;c&#34;&gt;%&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;  &lt;span class=&#34;k&#34;&gt;\renewcommand*&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;\thefootnote&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;}{&lt;/span&gt;&lt;span class=&#34;k&#34;&gt;\arabic&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;footnote&lt;span class=&#34;nb&#34;&gt;}}&lt;/span&gt;&lt;span class=&#34;c&#34;&gt;%&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;È possibile usare un altro nome per il comando al posto di &lt;code&gt;\nota&lt;/code&gt; ed è anche&#xA;possibile impostare un simbolo predefinito al posto di &lt;code&gt;[8]&lt;/code&gt; (che equivale a&#xA;&lt;code&gt;††&lt;/code&gt;).&lt;/p&gt;&#xA;&lt;p class=&#34;newpar&#34;&gt;L&amp;rsquo;uso è molto semplice e lo si può fare in due modi.&lt;/p&gt;&#xA;&lt;h3 id=&#34;senza-specificare-il-simbolo&#34;&gt;Senza specificare il simbolo&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-latex&#34; data-lang=&#34;latex&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Duis tempor nulla non commodo maximus.&lt;span class=&#34;k&#34;&gt;\nota&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;Testo della nota.&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt; Nunc nec mattis nulla...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Qui &lt;span class=&#34;latex&#34;&gt;L&lt;span class=&#34;latex-a&#34;&gt;a&lt;/span&gt;T&lt;span class=&#34;latex-e&#34;&gt;e&lt;/span&gt;X&lt;/span&gt; userà come simbolo quello che abbiamo predefinito nel comando&#xA;personalizzato, ossia nel nostro caso il n. 8, come da tabella 1.&#xA;Come già detto, è possibile scegliere un altro simbolo predefinito al posto di&#xA;&lt;code&gt;[8]&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;specificando-quale-simbolo-usare&#34;&gt;Specificando quale simbolo usare&lt;/h3&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-latex&#34; data-lang=&#34;latex&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Duis tempor nulla non commodo maximus.&lt;span class=&#34;k&#34;&gt;\nota&lt;/span&gt;&lt;span class=&#34;na&#34;&gt;[4]&lt;/span&gt;&lt;span class=&#34;nb&#34;&gt;{&lt;/span&gt;Testo della nota.&lt;span class=&#34;nb&#34;&gt;}&lt;/span&gt; Nunc nec mattis nulla...&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;In questo caso bisogna specificare tra parentesi quadre il numero del simbolo.&#xA;Nel nostro esempio abbiamo usato il n. 4, che equivale a &lt;code&gt;§&lt;/code&gt;.&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>Monitorare i cambiamenti in una directory in Linux</title>
      <link>https://www.aldolat.it/posts/2025/monitorare-cambiamenti-directory-linux/</link>
      <pubDate>Sat, 15 Mar 2025 07:54:00 +0100</pubDate>
      <author>Aldo Latino (aldolat@gmail.com)</author>
      <guid>https://www.aldolat.it/posts/2025/monitorare-cambiamenti-directory-linux/</guid>
      <description>&lt;p class=&#34;dc&#34;&gt;R&lt;span class=&#34;allsc&#34;&gt;ecentemente&lt;/span&gt; mi è capitato di dover tenere sotto&#xA;controllo le modifiche fatte in una directory nella mia home. Per questo scopo&#xA;mi sono servito di &lt;code&gt;inotifywait&lt;/code&gt; presente nel pacchetto &lt;code&gt;inotify-tools&lt;/code&gt;. Questo&#xA;programma restituisce proprio le informazioni che mi servivano, ad esempio:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-text&#34; data-lang=&#34;text&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/path/to/dir/.git/objects/info/ CREATE commit-graph.lock&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/path/to/dir/.git/objects/info/ MODIFY commit-graph.lock&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/path/to/dir/.git/ DELETE gc.pid&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/path/to/dir/.git/ CREATE index.lock&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/path/to/dir/.git/ DELETE index.lock&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/path/to/dir/.git/refs/remotes/origin/ CREATE master.lock&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/path/to/dir/.git/refs/remotes/origin/ MODIFY master.lock&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;/path/to/dir/.git/logs/refs/remotes/origin/ MODIFY master&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;La directory sotto controllo era &lt;code&gt;/path/to/dir/&lt;/code&gt;, comprese le sue sotto&#xA;directory, e &amp;mdash; com&amp;rsquo;è evidente &amp;mdash; su ogni riga il programma mostra in&#xA;sequenza:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;la directory dov&amp;rsquo;è avvenuta la modifica;&lt;/li&gt;&#xA;&lt;li&gt;l&amp;rsquo;azione eseguita;&lt;/li&gt;&#xA;&lt;li&gt;il file interessato.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h2 id=&#34;installazione&#34;&gt;Installazione&lt;/h2&gt;&#xA;&lt;p&gt;Installiamo anzitutto il pacchetto &lt;code&gt;inotify-tools&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;sudo pacman -Syu inotify-tools&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;esecuzione&#34;&gt;Esecuzione&lt;/h2&gt;&#xA;&lt;p&gt;Eseguiamo &lt;code&gt;inotifywait&lt;/code&gt;:&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-shell&#34; data-lang=&#34;shell&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;inotifywait -m -r -e modify,create,delete /percorso/alla/directory&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Le opzioni fornite significano:&lt;/p&gt;&#xA;&lt;dl&gt;&#xA;&lt;dt&gt;&lt;code&gt;-m&lt;/code&gt; (o anche &lt;code&gt;--monitor&lt;/code&gt;)&lt;/dt&gt;&#xA;&lt;dd&gt;Rimane in ascolto delle modifiche;&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;-r&lt;/code&gt; (o anche &lt;code&gt;--recursive&lt;/code&gt;)&lt;/dt&gt;&#xA;&lt;dd&gt;Controlla anche le sotto directory;&lt;/dd&gt;&#xA;&lt;dt&gt;&lt;code&gt;-e&lt;/code&gt; (o anche &lt;code&gt;--event&lt;/code&gt;)&lt;/dt&gt;&#xA;&lt;dd&gt;Controlla quali eventi deve monitorare. Se non specificato, controlla tutti&#xA;gli eventi.&lt;/dd&gt;&#xA;&lt;/dl&gt;&#xA;&lt;p&gt;Nel manuale di &lt;code&gt;inotifywait&lt;/code&gt; possiamo vedere quali siano gli eventi disponibili&#xA;per il monitoraggio:&lt;/p&gt;&#xA;&lt;table&gt;&#xA;&#x9;&lt;thead&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Evento&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;th&gt;Descrizione&lt;/th&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/thead&gt;&#xA;&#x9;&lt;tbody&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;access&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;file or directory contents were read&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;attrib&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;file or directory attributes changed&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;close&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;file or directory closed, regardless of read/write mode&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;close_nowrite&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;file or directory closed, after being opened in read-only mode&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;close_write&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;file or directory closed, after being opened in writable mode&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;create&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;file or directory created within watched directory&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;delete&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;file or directory deleted within watched directory&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;delete_self&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;file or directory was deleted&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;modify&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;file or directory contents were written&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;move&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;file or directory moved to or from watched directory&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;moved_from&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;file or directory moved from watched directory&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;moved_to&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;file or directory moved to watched directory&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;move_self&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;A watched file or directory was moved.&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;open&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;file or directory opened&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&#x9;&#x9;&lt;tr&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;&lt;code&gt;unmount&lt;/code&gt;&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&#x9;&#x9;&lt;td&gt;file system containing file or directory unmounted&lt;/td&gt;&#xA;&#x9;&#x9;&#x9;&lt;/tr&gt;&#xA;&#x9;&lt;/tbody&gt;&#xA;&lt;/table&gt;&#xA;&lt;p class=&#34;table-caption&#34;&gt;&lt;span class=&#34;sc&#34;&gt;Tabella 1&lt;/span&gt;. Gli eventi disponibili in &lt;code&gt;inotifywait&lt;/code&gt; per il monitoraggio.&lt;/p&gt;&#xA;</description>
    </item>
  </channel>
</rss>