<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Linux on Melabit</title>
    <link>https://static.233.196.69.159.clients.your-server.de/it/tags/linux/</link>
    <description>Recent content in Linux on Melabit</description>
    <generator>Hugo</generator>
    <language>it</language>
    <lastBuildDate>Sat, 09 Aug 2025 06:00:00 +0000</lastBuildDate>
    <atom:link href="https://static.233.196.69.159.clients.your-server.de/it/tags/linux/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Addio dc, benvenuta luka: una nuova calcolatrice RPN da Terminale</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2025/08/09/addio-dc-benvenuta-luka-una-nuova-calcolatrice-rpn-da-terminale/</link>
      <pubDate>Sat, 09 Aug 2025 06:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2025/08/09/addio-dc-benvenuta-luka-una-nuova-calcolatrice-rpn-da-terminale/</guid>
      <description>&lt;p&gt;La &lt;em&gt;Notazione Polacca Inversa&lt;/em&gt; (o RPN, dall&amp;rsquo;inglese Reverse Polish Notation) è un modo per eseguire operazioni matematiche senza usare le parentesi. Negli anni ‘70-80 l&amp;rsquo;RPN fu resa popolare da Hewlett-Packatd (HP), che l&amp;rsquo;utilizzò in &lt;a href=&#34;https://www.hpmuseum.org/rpnvers.htm&#34;&gt;tutte le sue calcolatrici&lt;/a&gt; scientifiche e finanziarie.&lt;/p&gt;&#xA;&lt;p&gt;Con le calcolatrici della rivale Texas-Instruments, che usavano le parentesi, era facile perdere il conto di quante parentesi si erano aperte o chiuse, cosa che costringeva spesso a reinserire l’intera espressione dal principio. Chi usava una calcolatrice RPN non aveva questi problemi, anche se doveva superare un piccolo scoglio iniziale per abituarsi alla nuova notazione.&lt;/p&gt;&#xA;&lt;p&gt;Oggi le calcolatrici &lt;em&gt;fisiche&lt;/em&gt; sono poco usate, e quasi tutti preferiscono utilizzare un&amp;rsquo;app sul telefono o sul computer. Ma c&amp;rsquo;è ancora qualche &lt;em&gt;nerd&lt;/em&gt; impenitente che non si arrende all&amp;rsquo;interfaccia grafica e si ostina ad usare il Terminale. Perché? Ad esempio, perché è molto più facile inserire numeri e operazioni complicate con la tastiera, che &lt;em&gt;premere&lt;/em&gt; i tasti di vetro di una calcolatrice virtuale.&lt;/p&gt;&#xA;&lt;h4 id=&#34;premessa&#34;&gt;Premessa&lt;/h4&gt;&#xA;&lt;p&gt;Se avete fretta e non volete sobbarcarvi la lettura di questo lungo articolo, troverete tutte le informazioni che vi servono in &lt;a href=&#34;https://macintelligence.org/post/2025-07-24-ma-non-per-calcolo/&#34;&gt;questo post&lt;/a&gt;, sintetico ma come sempre brillante, su &lt;a href=&#34;https://macintelligence.org/&#34;&gt;Quickloox&lt;/a&gt;, uno dei blog di riferimento per chi è appassionato del mondo Apple.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-08-09-addio-dc-benvenuta-luka-una-nuova-calcolatrice-rpn-da-terminale/Gemini_Generated_Image_72y1t072y1t072y1.jpg&#34; alt=&#34;&#34;&gt;&#xA;&amp;ndash; &lt;em&gt;Immagine generata da &lt;a href=&#34;https://gemini.google.com&#34;&gt;Google Gemini&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;div style = &#34;border-style: solid; border-width: 0px 0px 0px 12px; border-color: #03a87c; background-color: #defef6; padding: 1em; color:black; font-size:100%;&#34;&gt;&#xA;&lt;h4 id=&#34;un-po-di-storia&#34;&gt;Un po&amp;rsquo; di storia&lt;/h4&gt;&#xA;&lt;p&gt;La Polonia ci ha dato Niccolò Copernico, Fryderyk Chopin, Joseph Conrad, Marie Curie, Arthur Rubinstein, Stanislaw Lem. Ma ci ha dato anche Jan Lukasiewicz, un logico matematico (e filosofo) che cent&amp;rsquo;anni fa inventò una notazione matematica che non faceva uso di parentesi.&lt;/p&gt;&#xA;&lt;p&gt;In questa &lt;em&gt;notazione polacca&lt;/em&gt; tutti i simboli di operazione ( \( + \), \( - \), \( \times \), \( / \) ) precedono i numeri a cui si applicano. Lo stesso vale più in generale per le funzioni matematiche, come \( \sqrt{} \), \( \sin \), \( \cos \), \( \exp \) (dette &lt;em&gt;operatori&lt;/em&gt;) e i numeri o le variabili (dette &lt;em&gt;operandi&lt;/em&gt;) su cui agiscono.&lt;/p&gt;&#xA;&lt;p&gt;Ad esempio, una operazione come \( 3 + 4 \), in notazione polacca viene scritta \( + \ 3 \ 4 \), mentre \( (5 + 2) \times (5 - 2) \) diventa \( \times + 5 \ 2 - 5 \ 2 \).&lt;/p&gt;&#xA;&lt;p&gt;Per molti anni questa è rimasta solo una idea un po&amp;rsquo; bislacca, perché il vantaggio di non usare le parentesi non sembrava compensare a sufficienza la notazione inusuale e più difficile da leggere.&lt;/p&gt;&#xA;&lt;p&gt;Poi alla fine degli anni &amp;lsquo;50, John McCarthy rispolverò la notazione polacca  (o &lt;em&gt;prefissa&lt;/em&gt;) per il &lt;a href=&#34;https://twobithistory.org/2018/10/14/lisp.html&#34;&gt;LISP&lt;/a&gt;, uno dei linguaggi di programmazione più influenti di tutti i tempi,&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; sviluppato con l&amp;rsquo;obiettivo di essere applicato allo sviluppo di programmi nell&amp;rsquo;ambito della nascente intelligenza artificiale.&lt;/p&gt;&#xA;&lt;p&gt;La notazione prefissa, infatti, non solo semplificava notevolmente la scrittura dell&amp;rsquo;interprete LISP, ma permetteva anche di rappresentare allo stesso modo sia il codice che i dati, una cosa utilissima per un linguaggio finalizzato a rendere in computer &lt;em&gt;intelligente&lt;/em&gt;. Ma meglio non divagare troppo.&lt;/p&gt;&#xA;&lt;h4 id=&#34;notazione-polacca-inversa&#34;&gt;Notazione polacca inversa&lt;/h4&gt;&#xA;&lt;p&gt;Ma la vera svolta avviene invertendo l&amp;rsquo;ordine fra operandi ed operatori, cioè scrivendo &lt;em&gt;prima&lt;/em&gt; i numeri e &lt;em&gt;poi&lt;/em&gt; le operazioni da eseguire, per cui \( 3 + 4 \) diventa \( 3 \ 4 \ + \) e \( (5 + 2) \times (5 - 2) \) diventa \( \ 5 \ 2 + 5 \ 2 - \times \).&lt;/p&gt;&#xA;&lt;p&gt;Questa &lt;a href=&#34;https://en.wikipedia.org/wiki/Reverse_Polish_notation&#34;&gt;&lt;em&gt;notazione polacca inversa&lt;/em&gt;&lt;/a&gt; (RPN) viene scoperta e riscoperta per almeno tre volte in vent&amp;rsquo;anni, ma diventò popolare solo all&amp;rsquo;inizio degli anni &amp;lsquo;60 quando Friedrich Bauer, inventore del concetto di &lt;a href=&#34;https://en.wikipedia.org/wiki/Stack_%28abstract_data_type%29&#34;&gt;&lt;em&gt;stack&lt;/em&gt;&lt;/a&gt; e uno degli sviluppatori dell&amp;rsquo;&lt;a href=&#34;https://en.wikipedia.org/wiki/ALGOL&#34;&gt;ALGOL&lt;/a&gt;, e Edsger Dijkstra, famoso per la soluzione del &amp;ldquo;problema del cammino minimo&amp;rdquo; e per mile altre cose, ripresero in mano il concetto, perché permetteva di ridurre l&amp;rsquo;accesso alla memoria, che nei computer dell&amp;rsquo;epoca era scarsa e lenta, e di eseguire tutte le operazioni in un&amp;rsquo;area di memoria bene definita (lo &lt;em&gt;stack&lt;/em&gt;) e per questo più facile da manipolare.&lt;/p&gt;&#xA;&lt;p&gt;I vantaggi dell&amp;rsquo;RPN per eseguire i calcoli matematici erano così evidenti che HP la utilizzò in praticamente &lt;a href=&#34;https://www.hpmuseum.org/rpnvers.htm&#34;&gt;tutte le sue calcolatrici&lt;/a&gt; scientifiche e finanziarie, almeno fino all&amp;rsquo;inizio degli anni &amp;lsquo;90. Solo con lo sviluppo di memorie più capienti e di display molto più grandi divenne possibile visualizzare e modificare facilmente l&amp;rsquo;intera operazione impostata &amp;ndash; e non più solo l’ultimo numero inserito &amp;ndash; rendendo così meno necessario l’uso dell&amp;rsquo;RPN.&lt;/p&gt;&#xA;&lt;/div&gt;&#xA;&lt;br/&gt;&#xA;&lt;h4 id=&#34;una-calcolatrice-nel-terminale&#34;&gt;Una calcolatrice nel Terminale&lt;/h4&gt;&#xA;&lt;p&gt;Chi vuole usare una calcolatrice tradizionale nel Terminale di macOS o di Linux ha una scelta pressoché obbligata: &lt;code&gt;bc&lt;/code&gt;, il &lt;a href=&#34;https://en.wikipedia.org/wiki/Bc_%28programming_language%29&#34;&gt;&lt;em&gt;basic calculator&lt;/em&gt;&lt;/a&gt;, presente in UNIX dal 1975, 50 anni filati. La versione attuale, disponibile su Linux e macOS, è stata completamente riscritta, ma quella originale era solo una interfaccia per &lt;code&gt;dc&lt;/code&gt; (&lt;a href=&#34;https://en.wikipedia.org/wiki/Dc_%28computer_program%29&#34;&gt;&lt;em&gt;desk calculator&lt;/em&gt;&lt;/a&gt;), una delle più antiche utility presenti in UNIX e più vecchia persino del C.&lt;/p&gt;&#xA;&lt;p&gt;E &lt;code&gt;dc&lt;/code&gt; era&amp;hellip; una calcolatrice RPN. Una scelta che confermava l’intuizione di HP: la notazione RPN era più efficiente e più semplice da implementare, e quindi ideale anche per i computer dalle risorse limitate degli anni ’70.&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;Oggi l&amp;rsquo;RPN non è più una scelta quasi obbligata dalle limitazioni hardware, ma direi una scelta motivata soprattutto dalla &lt;em&gt;pigrizia&lt;/em&gt;. Perché, una volta che si è spesa una mezz&amp;rsquo;oretta per imparare ad usarla, si scopre che è davvero molto più comodo eseguire i calcoli con questa notazione piuttosto che con quella tradizionale.&lt;/p&gt;&#xA;&lt;p&gt;E poi forse c&amp;rsquo;è anche un certo gusto per andare controcorrente: in un mondo in cui tutti si uniformano ai dettami degli &lt;em&gt;influencer&lt;/em&gt; (veri o presunti) sui social, usare una calcolatrice RPN diventa un modo per distinguersi, per sentirsi fuori dal coro, quasi una dichiarazione di indipendenza intellettuale.&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;dc&lt;/code&gt; è ancora presente in Linux e macOS e può essere tranquillamente usata dal Terminale, ma è una bella fatica, i suoi cinquant&amp;rsquo;anni si sentono (e si vedono) tutti. I risultati delle operazioni non si vedono, a meno di non &lt;em&gt;stamparli&lt;/em&gt; sullo schermo con &lt;code&gt;p&lt;/code&gt;. Nemmeno lo stack si vede, a meno di non chiederlo esplicitamente con &lt;code&gt;f&lt;/code&gt;. I numeri negativi si indicano con l&amp;rsquo;underscore &lt;code&gt;_&lt;/code&gt; e non con il normale &lt;code&gt;-&lt;/code&gt;, per cui \( - 4 \) si scrive \( \_4 \). E così via.&lt;/p&gt;&#xA;&lt;p&gt;Ma da oggi c&amp;rsquo;è &lt;code&gt;dc2&lt;/code&gt; o meglio, &lt;code&gt;luka&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h4 id=&#34;la-calcolatrice-rpn-del-xxi-secolo&#34;&gt;La calcolatrice RPN del XXI secolo&lt;/h4&gt;&#xA;&lt;p&gt;E sì, perché da qualche settimana abbiamo a disposizione una nuova calcolatrice RPN per il Terminale di macOS di Linux, chiamata inizialmente &lt;a href=&#34;https://github.com/mastro35/dc2&#34;&gt;&lt;code&gt;dc2&lt;/code&gt;&lt;/a&gt;, in omaggio alla veneranda calcolatrice ormai ultracinquantenne.&lt;/p&gt;&#xA;&lt;p&gt;Però &lt;code&gt;dc2&lt;/code&gt; sapeva troppo di una riscrittura dell&amp;rsquo;originale, mentre questo è un progetto completamente nuovo, scritto da zero in &lt;code&gt;C&lt;/code&gt;. Meritava quindi un nome tutto suo, &lt;a href=&#34;https://github.com/mastro35/luka&#34;&gt;&lt;code&gt;luka&lt;/code&gt;&lt;/a&gt;, in omaggio a Jan Lukasiewicz, l&amp;rsquo;inventore della &lt;em&gt;notazione polacca&lt;/em&gt; (si veda il riquadro qui sopra).&lt;/p&gt;&#xA;&lt;p&gt;Rispetto a &lt;code&gt;dc&lt;/code&gt;, &lt;code&gt;luka&lt;/code&gt; è davvero di un&amp;rsquo;altro secolo, e si vede appena si inizia a provarla. È interattiva, mostra in ogni momento il contenuto dello stack, ha la storia delle operazioni eseguite, le variabili, un help sintetico ma completo in linea, una pagina di manuale cristallina (ce ne fossero tante altre così!).&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-08-09-addio-dc-benvenuta-luka-una-nuova-calcolatrice-rpn-da-terminale/luka-example.png&#34; alt=&#34;&#34;&gt;&lt;br&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-08-09-addio-dc-benvenuta-luka-una-nuova-calcolatrice-rpn-da-terminale/luka-help.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;E poi &lt;code&gt;luka&lt;/code&gt; è fatta in Italia. In tempi in cui si esalta l’identità nazionale per i motivi più futili, è bello vedere qualcosa che merita davvero di essere valorizzato.&lt;/p&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-08-09-addio-dc-benvenuta-luka-una-nuova-calcolatrice-rpn-da-terminale/luka-credits.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;Il programma in questo momento ha un piccolo &lt;em&gt;bug&lt;/em&gt; legato alla visualizzazione dell’history, ma l&amp;rsquo;autore macina il codice molto più velocemente di quanto io macini le parole, per cui è più che probabile che il bug sarà corretto al più presto (vacanze permettendo).&lt;/p&gt;&#xA;&lt;h4 id=&#34;evoluzione-del-codice&#34;&gt;Evoluzione del codice&lt;/h4&gt;&#xA;&lt;p&gt;Lo sviluppo di &lt;code&gt;dc2&lt;/code&gt;/&lt;code&gt;luka&lt;/code&gt; è stato rapidissimo. Dietro al progetto c&amp;rsquo;è Davide Mastromatteo, noto fra i suoi &lt;em&gt;amici di penna&lt;/em&gt; come @mastro35 e autore dell&amp;rsquo;ottimo blog &lt;a href=&#34;https://thepythoncorner.com/&#34;&gt;The Python Corner&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;In pochi giorni Davide è passato dalla versione 0.1.0, perfettamente funzionale ma con una interfaccia utente ancora acerba,&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-08-09-addio-dc-benvenuta-luka-una-nuova-calcolatrice-rpn-da-terminale/dc2-010.png&#34; alt=&#34;&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-08-09-addio-dc-benvenuta-luka-una-nuova-calcolatrice-rpn-da-terminale/dc2-010-help.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;alla versione 0.2.0, con una vista dello stack molto più chiara, la possibilità di usare gradi e radianti e di cambiare il formato di rappresentazione dei numeri, nonché con un help più compatto.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-08-09-addio-dc-benvenuta-luka-una-nuova-calcolatrice-rpn-da-terminale/dc2-020.png&#34; alt=&#34;&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-08-09-addio-dc-benvenuta-luka-una-nuova-calcolatrice-rpn-da-terminale/dc2-020-help.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;La versione 0.3.0 ha introdotto l&amp;rsquo;&lt;em&gt;history&lt;/em&gt; delle operazioni eseguite e un help ancora rivisto,&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-08-09-addio-dc-benvenuta-luka-una-nuova-calcolatrice-rpn-da-terminale/dc2-030.png&#34; alt=&#34;&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-08-09-addio-dc-benvenuta-luka-una-nuova-calcolatrice-rpn-da-terminale/dc2-030-help.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;mentre la versione 0.4.0, che è coincisa con il cambio di nome del programma, ci ha portato le variabili e parecchi nuovi comandi da tastiera, come si può vedere nelle prime immagini di questo articolo.&lt;/p&gt;&#xA;&lt;h4 id=&#34;usare-luka&#34;&gt;Usare luka&lt;/h4&gt;&#xA;&lt;p&gt;Installare &lt;code&gt;luka&lt;/code&gt; sul Mac o su Linux è un attimo, almeno &lt;a href=&#34;https://www.melabit.com/it/2014/04/29/homebrew-software-per-il-mac-fatto-in-casa/&#34;&gt;per chi usa &lt;code&gt;homebrew&lt;/code&gt;&lt;/a&gt; (e chi non lo usa dovrebbe iniziare a farlo subito)&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;brew install mastro35/homebrew-mastro35/luka&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Altrimenti basta scaricare l&amp;rsquo;&lt;a href=&#34;https://github.com/mastro35/luka/releases&#34;&gt;ultima release&lt;/a&gt; del codice sorgente, scompattarla ed eseguire&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;make clean &amp;amp;&amp;amp; make&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;dal Terminale, ovviamente dopo essersi &lt;a href=&#34;https://melabit.com/it/2018/01/30/script-per-tutti-i-giorni-ricapitoliamo/&#34;&gt;spostati nella directory&lt;/a&gt; che contiene il codice sorgente.&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;Inutile dire che chi ha installato &lt;code&gt;make&lt;/code&gt; e un compilatore C su Windows, potrà compilare &lt;code&gt;luka&lt;/code&gt; anche su questo sistema operativo.&lt;/p&gt;&#xA;&lt;p&gt;Dimenticavo: presto arriveranno i pacchetti per Linux, in formato  &lt;code&gt;deb&lt;/code&gt; e &lt;code&gt;rpn&lt;/code&gt; e, chissà, magari anche &lt;code&gt;aur&lt;/code&gt;. E forse anche un installatore per Windows.&lt;/p&gt;&#xA;&lt;p&gt;Sull&amp;rsquo;uso vero e proprio della calcolatrice c&amp;rsquo;è poco da dire. Chi conosce già l&amp;rsquo;RPN si troverà a suo agio, e ci metterà pochissimo ad usare &lt;code&gt;luka&lt;/code&gt;  al meglio. Chi non conosce l&amp;rsquo;RPN magari avrà voglia di provarla, per toccare con mano quanto sia più comodo eseguire un calcolo appena appena complicato con una calcolatrice RPN piuttosto che con una normale calcolatrice algebrica.&lt;/p&gt;&#xA;&lt;p&gt;Di guide all&amp;rsquo;RPN ce ne sono a iosa, purtroppo sono tutte orientate a &lt;a href=&#34;https://hansklav.home.xs4all.nl/rpn/&#34;&gt;spiegarne l&amp;rsquo;uso con una calcolatrice fisica&lt;/a&gt;, come le ormai mitiche HP &lt;em&gt;vintage&lt;/em&gt;, oppure con le emulazioni grafiche per Android o iOS.&lt;sup id=&#34;fnref:4&#34;&gt;&lt;a href=&#34;#fn:4&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;4&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;Rispetto a queste guide ci sono alcune differenze da considerare. La principale è che, non avendo i tasti fisici, &lt;code&gt;luka&lt;/code&gt; (ma anche &lt;code&gt;dc&lt;/code&gt;) richiede che si prema ogni volta &lt;code&gt;ENTER&lt;/code&gt; per inserire un numero o una funzione. Anche alcuni nomi di funzioni sono diversi, così come i comandi per gestire lo stack o per salvare e recuperare le variabili. Ad esempio &lt;code&gt;luka&lt;/code&gt; usa &lt;code&gt;store&lt;/code&gt; e &lt;code&gt;load&lt;/code&gt; per le variabili, mentre le calcolatrici fisiche o emulate usano dei tasti denominati in genere &lt;code&gt;STO&lt;/code&gt; e &lt;code&gt;RCL&lt;/code&gt; (ma se l&amp;rsquo;autore legge questo articolo forse cambierà idea 😂). Ma, a parte questi dettagli, la logica di fondo non cambia.&lt;/p&gt;&#xA;&lt;p&gt;Da parte mia, ho provato in tutti i modi a far andare &lt;code&gt;luka&lt;/code&gt; in crash, e non ci sono mai riuscito. Ho provato a fargli calcolare il fattoriale di numeri assurdamente grandi o piccoli, a dividere per zero, ad eseguire il famigerato \( 0 / 0 \) e poi a calcolare il reciproco del risultato. Ma niente, imperturbabile mi ha sempre dato il risultato esatto. Insomma, la qualità c&amp;rsquo;è.&lt;/p&gt;&#xA;&lt;h4 id=&#34;conclusioni&#34;&gt;Conclusioni&lt;/h4&gt;&#xA;&lt;p&gt;Provare &lt;code&gt;luka&lt;/code&gt; non costa niente. Si installa (e disinstalla) in pochi secondi, funziona su macOS, Linux e, per chi vuole, anche su Windows. I risultati che produce sono esatti (e questa è la cosa che conta di più). Lo sviluppatore è bravo ed aperto ai suggerimenti. Insomma, è uno strumento ideale per chi vuole eseguire dei calcoli dal Terminale.&lt;/p&gt;&#xA;&lt;p&gt;Certo, è uno strumento di nicchia, destinato a pochi utenti sofisticati che apprezzano la notazione RPN e non hanno paura del Terminale. Ma proprio per questo ha un fascino tutto suo.&lt;/p&gt;&#xA;&lt;p&gt;E poi, vuoi mettere la bellezza di vedere un programma che evolve davanti ai nostri occhi, magari &lt;a href=&#34;https://github.com/mastro35/luka/issues&#34;&gt;partecipando allo sviluppo&lt;/a&gt; con suggerimenti o critiche?&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;Ed uno dei pochi linguaggi di programmazione, assieme a &lt;a href=&#34;https://www.melabit.com/it/2024/10/06/70-anni-di-fortran-piu-o-meno/&#34;&gt;FORTRAN&lt;/a&gt; e COBOL, ad essere ancora vivo e vegeto.&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;Non a caso, uno dei linguaggi di programmazione più efficienti in assoluto è il FORTH, che si basa sullo stack e sull&amp;rsquo;uso dell&amp;rsquo;RPN.&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;Come, non avete nemmeno &lt;code&gt;make&lt;/code&gt;? Allora correte ad installare &lt;code&gt;homebrew&lt;/code&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;li id=&#34;fn:4&#34;&gt;&#xA;&lt;p&gt;Per quest&amp;rsquo;ultimo consiglio senza riserve &lt;a href=&#34;https://apps.apple.com/it/app/pcalc-lite/id300311831&#34;&gt;PCalc Lite&lt;/a&gt; o meglio ancora la versione &lt;em&gt;full&lt;/em&gt; &lt;a href=&#34;https://apps.apple.com/it/app/pcalc/id284666222&#34;&gt;Pcalc&lt;/a&gt;, che costa quanto un panino e una minerale al bar. In alternativa &lt;a href=&#34;https://apps.apple.com/it/app/wp-34s/id620255094&#34;&gt;WP 34s&lt;/a&gt;, che riesce a compattare tutto in una sola schermata, oppure &lt;a href=&#34;https://apps.apple.com/it/app/i41cx/id292619450&#34;&gt;i41CX&lt;/a&gt;, perfetta per chi a suo tempo sognava di averla.&amp;#160;&lt;a href=&#34;#fnref:4&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/div&gt;&#xA;</description>
    </item>
    <item>
      <title>Da melabit a melabit: Jekyll e l&#39;hosting</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2025/03/18/da-melabit-a-melabit-jekyll-e-l-hosting/</link>
      <pubDate>Tue, 18 Mar 2025 06:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2025/03/18/da-melabit-a-melabit-jekyll-e-l-hosting/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-03-18-da-melabit-a-melabit-jekyll-e-l-hosting/scott-rodgerson-PSpf_XgOM5w-unsplash.jpg&#34; alt=&#34;&#34;&gt;&#xA;&amp;ndash; &lt;em&gt;Fonte: &lt;a href=&#34;https://unsplash.com/@scottrodgerson&#34;&gt;Scott Rodgerson&lt;/a&gt; su &lt;a href=&#34;https://unsplash.com&#34;&gt;Unsplash&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Come promesso (o minacciato?) nell&amp;rsquo;&lt;a href=&#34;https://melabit.com/it/2025/03/05/da-melabit-a-melabit-gestire-i-commenti-con-jekyll/&#34;&gt;ultimo articolo&lt;/a&gt;, quest&amp;rsquo;ultimo post è dedicato ad esplorare le opzioni disponibili per l&amp;rsquo;&lt;em&gt;hosting&lt;/em&gt; di un sito web basato su Jekyll (o su qualsiasi altro generatore di siti statici) destinato ad ospitare il nostro blog personale (come quello che state leggendo), oppure il sito web di uno studio professionale o di una piccola azienda.&lt;/p&gt;&#xA;&lt;p&gt;Tutto sommato potrei cavarmela in due righe, invitandovi a rileggere quello che avevo scritto 6-7 anni fa (&lt;a href=&#34;https://melabit.wordpress.com/2019/06/18/da-melabit-a-melabit-fare-da-se/&#34;&gt;qui&lt;/a&gt; e &lt;a href=&#34;https://melabit.wordpress.com/2018/05/21/da-melabit-a-melabit-la-scelta-dell-hosting/&#34;&gt;qui&lt;/a&gt;) ma sono passati tanti anni e una bella rinfrescata è d&amp;rsquo;obbligo.&lt;/p&gt;&#xA;&lt;hr style = &#34;border: none; &#xA;            border-top: 3px double #333; &#xA;            color: #333; &#xA;            overflow: visible; &#xA;            height: 5px; &#xA;            width: 50%; &#xA;            margin-left: auto; &#xA;            margin-right: auto;&#34;&#xA;&gt;&#xA;&#xA;&lt;p&gt;Per chi volesse leggere le altre puntate dedicate alla mia transizione da Wordpress a Jekyll, ecco la lista completa degli articoli pubblicati:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://melabit.com/it/2025/01/02/da-melabit-a-melabit-addio-wordpress-ciao-jekyll/&#34;&gt;Da melabit a melabit: addio WordPress, ciao Jekyll&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://melabit.com/it/2025/01/21/da-melabit-a-melabit-perche-jekyll/&#34;&gt;Da melabit a melabit: perché Jekyll?&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://melabit.com/it/2025/02/11/da-melabit-a-melabit-jekyll-installazione-e-configurazione-di-base/&#34;&gt;Da melabit a melabit: Jekyll, installazione e configurazione di base&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://melabit.com/it/2025/03/01/da-melabit-a-melabit-sviluppare-un-sito-in-Jekyll/&#34;&gt;Da melabit a melabit: sviluppare un sito in Jekyll&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://melabit.com/it/2025/03/05/da-melabit-a-melabit-gestire-i-commenti-con-jekyll/&#34;&gt;Da melabit a melabit: gestire i commenti con Jekyll&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://melabit.com/it/2025/03/18/da-melabit-a-melabit-jekyll-e-l-hosting/&#34;&gt;Da melabit a melabit: Jekyll e l&amp;rsquo;hosting&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;hr style = &#34;border: none; &#xA;            border-top: 3px double #333; &#xA;            color: #333; &#xA;            overflow: visible; &#xA;            height: 5px; &#xA;            width: 50%; &#xA;            margin-left: auto; &#xA;            margin-right: auto;&#34;&#xA;&gt;&#xA;&#xA;&lt;h4 id=&#34;premessa&#34;&gt;Premessa&lt;/h4&gt;&#xA;&lt;p&gt;Non sono uno sviluppatore professionista, non so molto di sviluppo web e mi considero solo un dilettante per quanto riguarda la gestione di server e di reti.&lt;/p&gt;&#xA;&lt;p&gt;Le considerazioni riportate qui sotto, quindi, sono solo delle riflessioni personali frutto di anni di esperienza e di sperimentazione nella gestione di sistemi di calcolo più o meno complessi e di servizi web &lt;a href=&#34;https://melabit.wordpress.com&#34;&gt;ancora attivi&lt;/a&gt; o ormai defunti (più di uno, purtroppo). Mi auguro che le righe che seguono possano essere utili a chi sta valutando delle soluzioni simili, ma chi cerca delle soluzioni professionali deve rivolgersi a chi ne sa di più.&lt;/p&gt;&#xA;&lt;h4 id=&#34;perché-non-conviene-usare-un-mac&#34;&gt;Perché non conviene usare un Mac&lt;/h4&gt;&#xA;&lt;p&gt;Come accennavo la &lt;a href=&#34;https://melabit.com/it/2025/03/05/da-melabit-a-melabit-gestire-i-commenti-con-jekyll/&#34;&gt;volta scorsa&lt;/a&gt;, trovo poco sensato usare un Mac per ospitare un server web destinato a un sito basato su Jekyll (o, più in generale, per &lt;em&gt;qualsiasi&lt;/em&gt; sito web, sia esso statico o dinamico).&lt;/p&gt;&#xA;&lt;p&gt;La ragione è semplice: per gestire un sito con traffico moderato, un Mac è una soluzione eccessiva, un vero spreco di risorse (gli anglosassoni direbbero che è  &lt;em&gt;overkill&lt;/em&gt;, un termine che trovo particolarmente azzeccato).&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;Discorso diverso per la fase di sviluppo (io stesso ho usato un Mac per quella): avere a disposizione un sistema UNIX con una interfaccia grafica ben curata, degli editor potenti ma facili da usare, degli strumenti che semplificano la scrittura del codice e la ricerca degli errori sono vantaggi che non hanno prezzo.&lt;/p&gt;&#xA;&lt;p&gt;E se ho un vecchio Mac che non uso più? Perché non destinarlo a gestire il mio sito?&lt;/p&gt;&#xA;&lt;p&gt;Un vecchio Mac è ancora perfetto per scrivere, gestire la posta elettronica, navigare sul web, fare videoconferenze, comporre musica, imparare a programmare e molto altro. Ancora meglio se gli installiamo una versione recente di macOS con &lt;a href=&#34;https://melabit.com/it/2023/12/22/ridare-una-nuova-vita-al-vecchio-mac-con-opencore-legacy-patcher-prima-parte/&#34;&gt;Open Core Legacy Patcher&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Ma usare un vecchio computer come server, da tenere acceso tutto il giorno, tutti i giorni? Non so, io non lo farei, non mi sembra una scelta affidabile. E comunque, anche volendo provarci, si ricadrebbe nel discorso più generale della prossima sezione.&lt;/p&gt;&#xA;&lt;h4 id=&#34;perché-non-conviene-fare-da-sé&#34;&gt;Perché non conviene fare da sé&lt;/h4&gt;&#xA;&lt;p&gt;Al posto del Mac potremmo voler usare un PC, magari uno di quei gioiellini un po&amp;rsquo; datati simili al Mac Mini che si trovano a poco più di 100 euro e che possono ancora dire la loro, come il &lt;a href=&#34;https://www.ebay.it/sch/i.html?_nkw=lenovo&amp;#43;m95q&#34;&gt;Lenovo M95q&lt;/a&gt; o l&amp;rsquo;&lt;a href=&#34;https://www.ebay.it/sch/i.html?_nkw=HP&amp;#43;800&amp;#43;g3&#34;&gt;HP 800 G3&lt;/a&gt;. Oppure un &lt;a href=&#34;https://www.amazon.it/Raspberry-Pi-Quad-Core-ARMA76-Bits/dp/B0CK2FCG1K&#34;&gt;Raspberry Pi 5&lt;/a&gt; che, purtroppo, non è più conveniente come una volta, almeno se vogliamo usarlo come un semplice computer.&lt;/p&gt;&#xA;&lt;p&gt;Come &lt;a href=&#34;https://melabit.com/it/2019/06/18/da-melabit-a-melabit-fare-da-se/&#34;&gt;dicevo anni fa&lt;/a&gt;, una volta installatoci su Linux, questi minicomputer diventano perfetti &amp;ldquo;&lt;em&gt;per imparare a gestire un server web e il sistema Linux associato oppure per fare delle prove con diversi CMS o generatori di siti statici prima di scegliere quello che vogliamo usare per il nostro sito&lt;/em&gt;&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p&gt;Non c&amp;rsquo;è nemmeno bisogno di collegarli ad una tastiera e ad un monitor, perché si può fare davvero tutto dal Terminale tramite collegamento &lt;code&gt;ssh&lt;/code&gt; o, per chi preferisce la classica interfaccia grafica, accedendo al sistema con &lt;a href=&#34;https://remotedesktop.google.com&#34;&gt;Chrome Remote Desktop&lt;/a&gt; o con uno dei tanti servizi di accesso remoto che ormai conosciamo tutti molto bene.&lt;/p&gt;&#xA;&lt;p&gt;Ma possiamo usare questi minicomputer per gestire un sito &amp;ldquo;vero&amp;rdquo;, che deve essere attivo 24 ore su 24 e 7 giorni su 7?&lt;/p&gt;&#xA;&lt;p&gt;Secondo me no.&lt;/p&gt;&#xA;&lt;p&gt;Un sito web richiede la disponibilità di un indirizzo IP fisso pubblico e solo Fastweb lo offre gratuitamente, ma a certe condizioni. Gli altri provider non sanno nemmeno cosa sia, oppure bisogna sottoscrivere dei contratti specifici, che naturalmente sono più costosi dei normali contratti &amp;ldquo;home&amp;rdquo; e &amp;ldquo;business&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p&gt;Lo so, ci sono i servizi di &lt;a href=&#34;https://dyndns.it/&#34;&gt;DNS dinamico&lt;/a&gt;. Ma gli anni &amp;lsquo;90 sono passati da un pezzo, e oggi non affiderei mai i miei servizi web ad un servizio &lt;em&gt;ballerino&lt;/em&gt;, con tempi imprevedibili di aggiornamento dell’IP. Tanto più che, se si vuole un minimo di affidabilità, si deve scucire qualcosa. E a quel punto, ne vale la pena?&lt;/p&gt;&#xA;&lt;p&gt;Un altro problema sono le interruzioni improvvise di connessione a internet o di elettricità, magari a causa di lavori per strada, oppure perché il collega di studio o il partner ha deciso di accendere contemporaneamente tutti i condizionatori, o di usare lavatrice, forno e phon insieme.&lt;/p&gt;&#xA;&lt;p&gt;Certo, esistono gli UPS, ma se siamo fuori ufficio o casa, dopo un po&amp;rsquo; anche l&amp;rsquo;UPS si scarica e il nostro server si spegne.&lt;/p&gt;&#xA;&lt;p&gt;E infine, non dimentichiamolo mai, c&amp;rsquo;è la questione della sicurezza, gli attacchi inevitabili e continui dei tanti sfaccendati che non hanno di meglio da fare nella vita. A meno di non essere già degli esperti in tema di sicurezza, siamo davvero disposti ad impelagarci in prima persona in cose che vanno ben al di là delle nostre competenze?&lt;/p&gt;&#xA;&lt;h4 id=&#34;cosa-conviene-fare-da-sé&#34;&gt;Cosa conviene fare da sé&lt;/h4&gt;&#xA;&lt;p&gt;Volendo fare da sé, l&amp;rsquo;opzione migliore è senza dubbio usare una macchina virtuale su uno degli innumerevoli servizi cloud, da &lt;a href=&#34;https://upcloud.com/&#34;&gt;UpCloud&lt;/a&gt; a &lt;a href=&#34;https://www.digitalocean.com/&#34;&gt;Digital Ocean&lt;/a&gt;, oppure &lt;a href=&#34;https://www.heroku.com/&#34;&gt;Heroku&lt;/a&gt; o &lt;a href=&#34;https://www.linode.com/&#34;&gt;Linode&lt;/a&gt; (ora Akamai Cloud), senza dimenticare naturalmente i grossi player come &lt;a href=&#34;https://aws.amazon.com/it/what-is-aws/&#34;&gt;Amazon AWS&lt;/a&gt; e &lt;a href=&#34;https://cloud.google.com&#34;&gt;Google Cloud&lt;/a&gt; (ok, fra questi ci sarebbe anche &lt;a href=&#34;https://azure.microsoft.com&#34;&gt;Microsoft Azure&lt;/a&gt;). Se in questo momento non vi fidate a &lt;em&gt;comprare americano&lt;/em&gt;, qui c&amp;rsquo;è una lista di &lt;a href=&#34;https://european-alternatives.eu/category/cloud-computing-platforms&#34;&gt;provider cloud europei&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Una macchina virtuale sul cloud costa poco e non ha nessuno dei difetti elencati finora, a parte la questione della sicurezza, che però è gestita almeno in parte dallo stesso fornitore del servizio.&lt;/p&gt;&#xA;&lt;p&gt;Ancora più sicuro, e pure a costo zero, è usare servizi come &lt;a href=&#34;https://jekyllrb.com/docs/github-pages/&#34;&gt;GitHub Pages&lt;/a&gt; che, ogni volta che si aggiorna un &lt;em&gt;repository&lt;/em&gt; collegato basato su Jekyll, rigenera il sito e lo e pubblica automaticamente su &lt;code&gt;github.io&lt;/code&gt;. La &lt;a href=&#34;https://docs.github.com/en/pages/setting-up-a-github-pages-site-with-jekyll/creating-a-github-pages-site-with-jekyll&#34;&gt;documentazione relativa&lt;/a&gt; è molto dettagliata, per cui è inutile che io aggiunga altro.&lt;/p&gt;&#xA;&lt;h4 id=&#34;cosa-ho-fatto-io&#34;&gt;Cosa ho fatto io&lt;/h4&gt;&#xA;&lt;p&gt;Io sono un utente come tanti, e la soluzione che ho adottato può essere un buon esempio di come gestire in modo efficiente e relativamente economico (cosa che non guasta mai) l’hosting di un sito web, senza compromessi sulla qualità del servizio.&lt;/p&gt;&#xA;&lt;p&gt;Questo sito è ospitato su &lt;a href=&#34;https://shockhosting.com/&#34;&gt;Shock Hosting&lt;/a&gt;, un servizio di &lt;em&gt;hosting&lt;/em&gt; che uso da anni e con un servizio di supporto eccezionale. In realtà in tanti anni ho avuto pochissimi problemi e sempre banali, ad esempio per una fattura pagata per sbaglio due volte, ma ogni volta la risposta del supporto non poteva essere più veloce.&lt;/p&gt;&#xA;&lt;p&gt;Il piano base &amp;ldquo;Low Shock&amp;rdquo; da 2.99 dollari al mese offre spazio su disco e trasferimento di dati illimitati, e non impone limitazioni artificiose di velocità (tutte cosa che pochi concorrenti offrono). Questo piano è più che sufficiente per un sito statico, ma anche per un sito basato su Wordpress o altri CMS (o dico per esperienza diretta). I piani superiori sono identici a quello base, ma permettono di ospitare più domini, e passare da un piano all&amp;rsquo;altro richiede solo l&amp;rsquo;apertura di un ticket e una breve attesa.&lt;/p&gt;&#xA;&lt;p&gt;Anche il nome del dominio è gestito da Shock Hosting e costa 12 dollari all&amp;rsquo;anno (un dollaro al mese), che è il costo normale di un dominio &lt;code&gt;.com&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Naturalmente, Shock Hosting è solo uno degli infiniti servizi di hosting disponibili, anche se, per quanto riguarda il rapporto qualità/prezzo, mi sembra difficile trovare di meglio. In ogni caso, prima di scegliere vi consiglio di stare molto attenti alle condizioni di uso, perché la maggior parte dei provider pone dei limiti più o meno stringenti allo spazio su disco o alla quantità di dati trasferiti. Oppure alcuni offrono prezzi molto convenienti per il &lt;a href=&#34;https://www.hostgator.com/web-hosting&#34;&gt;primo anno&lt;/a&gt; o i &lt;a href=&#34;https://www.dreamhost.com/hosting/shared/#shared-plans&#34;&gt;primi mesi&lt;/a&gt;, ma poi li aumentano in modo consistente. Se, prima di impegnarvi, riuscite anche a verificare come funziona il supporto è un bel vantaggio.&lt;/p&gt;&#xA;&lt;p&gt;Altrimenti preferite un servizio che vi permette di pagare ogni mese o ogni trimestre, in modo da avere la possibilità di testare con calma il servizio e di verificare se risponde alle vostre esigenze. In seguito, potrete sempre decidere di pagare ad intervalli più lunghi.&lt;/p&gt;&#xA;&lt;p&gt;Evitate invece come la peste i servizi che offrono sconti enormi se vi impegnate per due, tre o più anni, o per&amp;hellip; l&amp;rsquo;eternità. Su internet non c&amp;rsquo;è niente di eterno, anzi sono proprio i servizi &lt;em&gt;eterni&lt;/em&gt; quelli che muoiono più rapidamente. E se dovesse sucecdere avrete perso tutto quello che avete anticipato, altro che risparmio!&lt;/p&gt;&#xA;&lt;p&gt;Il solo servizio di hosting non è sufficiente per &lt;a href=&#34;https://melabit.com/posts/it&#34;&gt;melabit.com/posts/it&lt;/a&gt;, perché non permette di eseguire &lt;code&gt;comma&lt;/code&gt; per gestire i commenti. La cosa più semplice da fare sarebbe stata passare ad usare un server virtuale, sempre su &lt;a href=&#34;https://shockhosting.com/vps&#34;&gt;Shock Hosting&lt;/a&gt;, ma non mi piacciono le cose semplici. E poi il servizio di hosting offre dei vantaggi che non volevo perdere: si occupa della gestione del server web e della sicurezza del sito, esegue i backup, rinnova il certificato SSL, fornisce statistiche e molto altro. Tutte cose che valgono molto di più dei pochi euro al mese richiesti.&lt;/p&gt;&#xA;&lt;p&gt;Proprio mentre pensavo a cosa fare, mi è capitato sotto gli occhi &lt;a href=&#34;https://talkpython.fm/blog/posts/we-have-moved-to-hetzner/&#34;&gt;questo post&lt;/a&gt;, e ho deciso di assaggiare la &lt;em&gt;cucina&lt;/em&gt; tedesca, acquistando un server virtuale da &lt;a href=&#34;https://www.hetzner.com/&#34;&gt;Hetzner&lt;/a&gt;. Per far girare &lt;code&gt;comma&lt;/code&gt; è più che sufficiente l&amp;rsquo;offerta base CX22, che con meno di 5 euro al mese mi offre una macchina equivalente a quella base di &lt;a href=&#34;https://shockhosting.com/vps&#34;&gt;Shock Hosting&lt;/a&gt;, che però costa il doppio. E la potenza della macchina virtuale è tale che posso tranquillamente generare il sito su questa macchina virtuale, trasferendo poi il risultato su Shock Hosting con &lt;code&gt;rsync&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Quando ho scelto Hetzner, la guerra commerciale in atto fra USA ed Europa era solo nelle menti degli dei, ma con il senno di poi è stata una decisione azzeccata. Se un giorno perdessi l&amp;rsquo;accesso al mio servizio di hosting statunitense, oppure se il costo diventasse proibitivo per un europeo, ci metterei molto poco a trasferire tutto in lidi più sicuri. E ciao ciao USA.&lt;/p&gt;&#xA;&lt;h4 id=&#34;facciamo-due-conti&#34;&gt;Facciamo due conti&lt;/h4&gt;&#xA;&lt;p&gt;Ho scritto che secondo me non vale la pena fare da sé, usando un Mac o un PC per gestire il proprio sito. Ma dal punto di vista economico, potrebbe valerne la pena?&lt;/p&gt;&#xA;&lt;p&gt;Cominciamo calcolando quanto spendo al mese per &lt;a href=&#34;https://melabit.com/posts/it&#34;&gt;melabit.com/posts/it&lt;/a&gt;. Per l&amp;rsquo;hosting se ne vanno 3 euro, per il server virtuale 5 euro. Totale 8 euro al mese, che in un anno fanno 96 euro. A questo andrebbe aggiunto il costo del dominio, ma quello va pagato in ogni caso, quindi lo lascio fuori.&lt;/p&gt;&#xA;&lt;p&gt;Mettiamo ora che io sia testardo e voglia usare a tutti i costi un mini PC o un Raspberry Pi per gestire il mio sito. Diciamo che per il computer nudo e crudo se ne vanno 100-120 euro, a cui va aggiunto un disco SSD decente e una quantità di RAM adeguata, che fanno almeno altri 60-100 euro (per il Raspberry Pi la RAM è quella è non può essere cambiata, ma al suo posto dobbiamo prevedere di acquistare case, alimentatore, dissipatore praticamente obbligatorio e scheda per disco SSD NVMe, che fanno almeno 100 euro in tutto).&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; Poi ci vuole un UPS, e sono altri 100 euro.&lt;/p&gt;&#xA;&lt;p&gt;Il totale fa circa 300 euro (più o meno 30-40 euro), praticamente lo stesso di quello che spendo io in tre anni. Ma non è affatto detto che il mini PC o, peggio, il Raspberry Pi riesca a reggere tre anni di uso ininterrotto, per cui magari oggi si rompe la ventola, domani l&amp;rsquo;alimentatore, il disco comincia a fare le bizze, le batterie dell&amp;rsquo;UPS si esauriscono. Insomma, anche economicamente non è che convenga più di tanto.&lt;/p&gt;&#xA;&lt;p&gt;Meglio, molto meglio il cloud.&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;In teoria, si potrebbe dedicare un intero Mac ad un sito che riceve un numero molto elevato di visite. Ma in questo caso servono soluzioni professionali, non è possibile fare da sé.&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;Ma riuscire a rimanere vicino al limite inferiore di 160 euro mi pare davvero difficile.&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>Da melabit a melabit: gestire i commenti con Jekyll</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2025/03/05/da-melabit-a-melabit-gestire-i-commenti-con-jekyll/</link>
      <pubDate>Wed, 05 Mar 2025 06:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2025/03/05/da-melabit-a-melabit-gestire-i-commenti-con-jekyll/</guid>
      <description>&lt;p&gt;Come dicevo la &lt;a href=&#34;https://melabit.com/it/2025/03/01/da-melabit-a-melabit-sviluppare-un-sito-in-Jekyll/&#34;&gt;volta scorsa&lt;/a&gt;, Jekyll non ha un sistema di commenti integrato, ma i suoi temi permettono spesso di gestire i commenti collegandosi a servizi di terze parti, come &lt;a href=&#34;https://disqus.com/&#34;&gt;Disqus&lt;/a&gt; e simili.&lt;/p&gt;&#xA;&lt;p&gt;Il problema di questi servizi è che possono smettere di funzionare da un giorno all&amp;rsquo;altro (vedi il caso di &lt;a href=&#34;https://web.archive.org/web/20240331055510/https://muut.com/&#34;&gt;Muut&lt;/a&gt;, che non ha più nemmeno un sito web), oppure hanno regole opache di utilizzo e di raccolta dei dati dell&amp;rsquo;utente.&lt;/p&gt;&#xA;&lt;p&gt;Un altro problema niente affatto trascurabile è che la maggior parte di questi servizi richiedono all&amp;rsquo;utente di registrarsi prima di commentare. La registrazione è utile per filtrare i commenti inopportuni o lo spam, ma è anche una barriera per il lettore casuale del post che voglia dire la sua.&lt;/p&gt;&#xA;&lt;p&gt;C&amp;rsquo;è poi la questione del costo. Alcuni servizi di gestione di commenti sono a pagamento e non sono nemmeno economici, vedi il caso di &lt;a href=&#34;https://talk.hyvor.com/&#34;&gt;Hyvor Talk&lt;/a&gt; che costa 12 euro al mese. Prezzo più che accettabile per un sito professionale o per una piccola azienda che voglia interagire con i suoi utenti &amp;ndash; tanto più che spesso questi servizi gestiscono anche l&amp;rsquo;invio di newsletter e materiale pubblicitario vario &amp;ndash; ma decisamente fuori scala per un blog fatto in casa come questo.&lt;/p&gt;&#xA;&lt;h4 id=&#34;alla-ricerca-del-sistema-ideale&#34;&gt;Alla ricerca del sistema ideale&lt;/h4&gt;&#xA;&lt;p&gt;Il mio interesse verso le questioni relative ai commenti è nato un anno fa quando, dopo la chiusura improvvisa di Muut, ho osservato l&amp;rsquo;enorme lavoro svolto dietro le quinte da &lt;a href=&#34;https://muloblog.netlify.app/&#34;&gt;Mimmo&lt;/a&gt;, MacMomo e Paoloo, per recuperare da Muut tutti i commenti di &lt;a href=&#34;https://macintelligence.org/post/2024-04-01-tra-nuova-vita-e-pesce-d-aprile/&#34;&gt;Quickloox&lt;/a&gt; &amp;ndash; uno dei blog imprescindibili per chi si interessa di Apple, Mac e dintorni &amp;ndash; per poi convertirli nel formato del nuovo motore dei commenti e &lt;a href=&#34;https://macintelligence.org/post/2024-04-06-caratteri-difficili/&#34;&gt;reinserirli in bell&amp;rsquo;ordine nel blog&lt;/a&gt;.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;Pochi mesi dopo ho messo in cantiere il &lt;a href=&#34;https://melabit.com/it/2025/01/02/da-melabit-a-melabit-addio-wordpress-ciao-jekyll/&#34;&gt;passaggio da Wordpress Jekyll&lt;/a&gt;, e quello dei commenti era uno dei problemi principali da risolvere. Su Wordpress il problema non si pone, i commenti sono integrati e vengono salvati nel database del sito insieme al testo dei post. Ma quando si usa un sito statico, come quello generato da Jekyll, bisogna implementare qualche meccanismo per innestarvi sopra i commenti, che per la loro stessa natura sono degli oggetti dinamici.&lt;/p&gt;&#xA;&lt;p&gt;Con il senno di poi, avrei potuto seguire i &lt;a href=&#34;https://muloblog.netlify.app/post/2024-03-09-comma-commentare/&#34;&gt;consigli di Mimmo&lt;/a&gt; e scegliere &lt;a href=&#34;https://github.com/Dieterbe/comma&#34;&gt;Comma&lt;/a&gt; fin dal primo momento. Ma arrivavo da Wordpress e l&amp;rsquo;idea di usare un database mi sembrava la più naturale.&lt;/p&gt;&#xA;&lt;p&gt;E allora ho provato &lt;a href=&#34;https://cusdis.com/&#34;&gt;Cusdis&lt;/a&gt;, &lt;a href=&#34;https://commento.io/&#34;&gt;Commento&lt;/a&gt;, &lt;a href=&#34;https://github.com/souramoo/commentoplusplus&#34;&gt;Commento++&lt;/a&gt;, &lt;a href=&#34;https://remark42.com/&#34;&gt;Remark42&lt;/a&gt;, &lt;a href=&#34;https://github.com/zoomment&#34;&gt;Zooment&lt;/a&gt;, tutti sistemi di commenti basati su un database.&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; Ho seguito passo passo le istruzioni, ho usato Docker, ho usato una macchina virtuale sul cloud con Linux, ho provato servizi che dovrebbero fare tutto da soli come &lt;a href=&#34;https://railway.app/&#34;&gt;Railway&lt;/a&gt; o &lt;a href=&#34;https://vercel.com/&#34;&gt;Vercel&lt;/a&gt;. Niente da fare, ci fosse stato un sistema di commenti che funzionava come si deve!&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;Esclusi a priori tutti i sistemi che si appoggiano a GitHub, come &lt;a href=&#34;https://github.com/giscus/giscus&#34;&gt;Giscus&lt;/a&gt;, &lt;a href=&#34;https://staticman.net/&#34;&gt;Staticman&lt;/a&gt; o &lt;a href=&#34;https://github.com/utterance/utterances&#34;&gt;utterances&lt;/a&gt;, perfetti per gli sviluppatori che hanno già di sicuro un account, ma poco pratici per il lettore occasionale costretto a crearne un altro inutile, ne restava solo uno. Ovviamente &lt;a href=&#34;https://github.com/Dieterbe/comma&#34;&gt;Comma&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h4 id=&#34;al-lavoro-su-comma&#34;&gt;Al lavoro su Comma&lt;/h4&gt;&#xA;&lt;p&gt;E Comma è stato. Comma è scritto in Go e viene distribuito solo in formato sorgente. Per compilarlo serve quindi un compilatore per il &lt;a href=&#34;https://go.dev/&#34;&gt;linguaggio Go&lt;/a&gt;. Sul Mac il compilatore si installa scaricando il &lt;a href=&#34;https://go.dev/doc/install&#34;&gt;&lt;em&gt;package&lt;/em&gt; preconfezionato&lt;/a&gt; e seguendo le istruzioni, oppure tramite il solito &lt;a href=&#34;https://brew.sh/&#34;&gt;Homebrew&lt;/a&gt;,&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ brew install golang&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Analogamente, su Linux Go si installa scaricando un &lt;a href=&#34;https://go.dev/doc/install&#34;&gt;file compresso&lt;/a&gt; ed estraendolo nella directory &lt;code&gt;usr/local&lt;/code&gt;, oppure tramite i comandi del &lt;em&gt;package manager&lt;/em&gt; della propria distribuzione,&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo apt install golang&#xA;$ sudo dnf install golang&#xA;$ sudo pacman -S go&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;a seconda che usiamo Debian/Ubuntu, Fedora/CentOS, Arch, o uno degli infiniti derivati.&lt;/p&gt;&#xA;&lt;p&gt;Una volta installato Go, compilare Comma è questione di un attimo,&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ git clone https://github.com/Dieterbe/comma.git&#xA;$ cd comma/src&#xA;$ go build&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;dove l&amp;rsquo;ultimo comando serve per controllare che il programma venga compilato correttamente. Se è tutto a posto, si può eseguire&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ go install .&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;che in un solo colpo compila il sorgente ed installa l&amp;rsquo;eseguibile &lt;code&gt;comma&lt;/code&gt; in &lt;code&gt;~/go/bin/&lt;/code&gt; (come al solito la &lt;code&gt;~&lt;/code&gt; rappresenta la &lt;code&gt;Home&lt;/code&gt; dell&amp;rsquo;account che stiamo usando).&lt;/p&gt;&#xA;&lt;p&gt;Io prima di clonare il &lt;em&gt;repository&lt;/em&gt; di Comma ho fatto un &lt;a href=&#34;https://github.com/sabinomaggi/comma&#34;&gt;&lt;em&gt;fork&lt;/em&gt; nel mio account personale&lt;/a&gt;, ma solo perché volevo cambiare qualcosetta nel codice.&lt;/p&gt;&#xA;&lt;p&gt;La prima cosa che ho fatto è stata quella di cambiare l&amp;rsquo;estensione dei file dei commenti, da &lt;code&gt;.cmt&lt;/code&gt; a &lt;code&gt;.xml&lt;/code&gt; (linee 67 e 105 del mio file &lt;code&gt;comment.go&lt;/code&gt;). I commenti sono infatti dei &lt;a href=&#34;https://en.wikipedia.org/wiki/XML&#34;&gt;file XML&lt;/a&gt;, e non c&amp;rsquo;era ragione di usare una estensione non standard. In più, questa modifica permette di aprirli più facilmente con un editor di testo, che li formatta automaticamente in modo leggibile. Una piccola comodità, molto utile durante la fase di sviluppo. Sempre per aumentare la leggibilità, ho anche aggiunto 4 spazi prima di ogni tag XML (linea 71-73 di &lt;code&gt;comment.go&lt;/code&gt;).&lt;/p&gt;&#xA;&lt;p&gt;Infine, ho rimosso l&amp;rsquo;obbligo di inserire l&amp;rsquo;indirizzo email di chi scrive il commento (linee 94-96 di &lt;code&gt;main.go&lt;/code&gt;). Volevo infatti un sito privo di qualunque forma di tracciamento degli utenti, evitando tanti &lt;a href=&#34;https://school-of-scrap.com/2018/come-sistemare-il-blog-per-gdpr-se-sei-solo-una-blogger-bloggerperlavoroconpassione/&#34;&gt;grattacapi con la GPDR&lt;/a&gt;.&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; In teoria, ciò può presentare qualche rischio a livello di sicurezza, ma davvero pensiamo che chi vuole fare dei danni inserisca la sua vera email?&lt;/p&gt;&#xA;&lt;p&gt;Per quanto riguarda il &lt;em&gt;frontend&lt;/em&gt;, cioè come l&amp;rsquo;utente vede il suo nuovo commento e la lista dei commenti precedenti, qui ho trasportato su Jekyll la gran parte del &lt;a href=&#34;https://github.com/Dieterbe/dieterblog/blob/master/layouts/partials/comments.html&#34;&gt;codice originale&lt;/a&gt; dell&amp;rsquo;autore di Comma, aggiungendo il supporto a Markdown e ripulendo il commento dal codice potenzialmente malevolo inserito nel testo. Per queste due ultime funzionalità ho &lt;a href=&#34;https://gitlab.com/emeralit/quickloox-contest/-/blob/main/blog-v4/layouts/partials/comments.html&#34;&gt;tratto molta ispirazione&lt;/a&gt; dal codice scritto da Mimmo, MacMomo e Paoloo per Quickloox.&lt;/p&gt;&#xA;&lt;p&gt;In quanto alle icone associate a ciascun commentatore, ho preferito farle generare da &lt;a href=&#34;https://jdenticon.com/&#34;&gt;Jdenticon&lt;/a&gt;, forse perché le sue strutture geometriche simmetriche si adattano meglio alla mia personalità.&lt;/p&gt;&#xA;&lt;p&gt;L&amp;rsquo;aspetto finale dei commenti mi pare piuttosto gradevole e ben integrato con il resto del sito, e anche la localizzazione funziona bene, anche in dettagli minimi come la riga sottile più in evidenza sotto &amp;ldquo;Aggiungi un commento&amp;rdquo;, che cambia a seconda che la scritta sia in italiano o in inglese.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-03-05-da-melabit-a-melabit-gestire-i-commenti-con-jekyll/form-di-commento.png&#34; alt=&#34;&#34;&gt;&lt;br&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-03-05-da-melabit-a-melabit-gestire-i-commenti-con-jekyll/comment-form.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Tutto il codice del frontend è in &lt;code&gt;_includes/custom/comma-comments.html&lt;/code&gt;. Già che c&amp;rsquo;ero, ho aggiunto alla pagina dei post (&lt;code&gt;_layouts/post.html&lt;/code&gt;), una piccola funzione in JavaScript che permette di tornare con un click in testa al post. A me serviva in fase di sviluppo, ma credo che possa essere utile anche a chi legge l&amp;rsquo;articolo, per cui l&amp;rsquo;ho lasciata nel codice finale.&lt;/p&gt;&#xA;&lt;h4 id=&#34;mettere-tutto-insieme&#34;&gt;Mettere tutto insieme&lt;/h4&gt;&#xA;&lt;p&gt;Una volta pronto sia il sistema di commenti che il codice per visualizzarli sul sito, bisogna far funzionare tutto assieme. Per prima cosa dobbiamo creare una cartella dove salvare tutti i commenti,&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ cd&#xA;$ mkdir ~/comments&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;poi attivare Comma a mano,&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ ~/go/bin/comma ~/comments localhost:5888&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;istruendolo a mettersi in attesa dei nuovi commenti sulla porta &lt;code&gt;5888&lt;/code&gt; del computer locale &lt;code&gt;localhost&lt;/code&gt;, salvandoli nella cartella &lt;code&gt;~/comments&lt;/code&gt;. Infine, dobbiamo aggiungere in &lt;code&gt;_config.yml&lt;/code&gt; una riga che connetta Jekyll al server dei commenti,&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;#--- Comma comments ---&#xA;commentserver: http://localhost:5888&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;e tutto dovrebbe funzionare al primo colpo. Se invece di un computer fisico stiamo usando una macchina virtuale sul cloud, al posto di &lt;code&gt;localhost&lt;/code&gt; dovremo usare il &lt;code&gt;reverse DNS name&lt;/code&gt; della macchina (si veda l&amp;rsquo;&lt;a href=&#34;https://melabit.com/it/2025/03/01/da-melabit-a-melabit-sviluppare-un-sito-in-Jekyll/&#34;&gt;articolo precedente&lt;/a&gt;), ma i dettagli di come si fa dipendono dal servizio usato, per cui non posso essere più preciso.&lt;/p&gt;&#xA;&lt;p&gt;In un sito reale le cose diventano un po&amp;rsquo; più complesse, ad esempio perché bisogna utilizzare il protocollo sicuro &lt;code&gt;https:&lt;/code&gt; al posto del semplice &lt;code&gt;http:&lt;/code&gt;, e questo richiede di configurare per bene il server web. Ma anche in questo caso i dettagli dipendono dal server web utilizzato, dalla configurazione dei servizi installati e così via, per cui è impossibile dire di più senza scrivere un intero manuale d&amp;rsquo;uso.&lt;/p&gt;&#xA;&lt;p&gt;Quello che posso dire, invece, è che un sito vero richiede che Comma parta automaticamente, esattamente come succede al server web che gestisce il sito.&lt;/p&gt;&#xA;&lt;p&gt;Assumendo che il sito giri su un server Linux (nel prossimo articolo spiegherò perché non ha molto senso usare un Mac come server web) e che Comma sia stato installato dall&amp;rsquo;utente &lt;code&gt;webuser&lt;/code&gt;, per far partire Comma automaticamente ad ogni riavvio del sistema operativo (ma anche quando per qualche motivo il programma viene interrotto), dobbiamo eseguire&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ cd /etc/systemd/system&#xA;$ sudo touch comma.service&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;creando il file di configurazione &lt;code&gt;comma.service&lt;/code&gt; vuoto, per poi inserire in questo file le righe seguenti,&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[Unit]&#xA;Description=comma backend server&#xA;After=network-online.target&#xA;Wants=network-online.target&#xA;&#xA;[Service]&#xA;ExecStart=/home/webuser/go/bin/comma /home/webuser/comments :5888&#xA;Restart=always&#xA;RestartSec=1&#xA;User=webuser&#xA;Group=webuser&#xA;&#xA;[Install]&#xA;WantedBy=graphical.target&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ricordandosi di sostituire a &lt;code&gt;webuser&lt;/code&gt; il nome dell&amp;rsquo;utente che ha installato Comma. A questo punto,&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo systemctl enable comma&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;attiva il meccanismo di avvio automatico che ci permetterà, da ora in poi, di dimenticarci (o quasi) dell&amp;rsquo;esistenza di Comma. Per interagire manualmente con il servizio si usano i comandi,&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo systemctl status comma&#xA;$ sudo systemctl stop comma&#xA;$ sudo systemctl start comma&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;che servono rispettivamente ad interrogare lo stato del servizio, oppure a fermare e a riavviare a mano Comma. Sono comandi molto utili in fase di &lt;em&gt;debugging&lt;/em&gt;, ma possono servire a volte anche in produzione, per cui è bene sapere che esistono.&lt;/p&gt;&#xA;&lt;h4 id=&#34;conclusioni&#34;&gt;Conclusioni&lt;/h4&gt;&#xA;&lt;p&gt;Avevo pensato di concludere qui questo viaggio nella descrizione tecnica del nuovo sito, ma mentre scrivevo questo articolo mi sono accorto che qualche parola sull&amp;rsquo;hosting potrebbe essere utile. E proprio questo sarà l&amp;rsquo;argomento della &lt;a href=&#34;https://melabit.com/it/2025/03/18/da-melabit-a-melabit-jekyll-e-l-hosting/&#34;&gt;prossima puntata&lt;/a&gt;.&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;E nemmeno un database &lt;em&gt;piccolo&lt;/em&gt; come &lt;a href=&#34;https://www.sqlite.org/&#34;&gt;SQLite&lt;/a&gt;! Tutti questi sistemi di commenti usano pesi massimi come &lt;a href=&#34;https://mariadb.org/&#34;&gt;MariaDB&lt;/a&gt; o &lt;a href=&#34;https://www.postgresql.org/&#34;&gt;PosgreSQL&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;Se fossi cattivo potrei pensare che le istruzioni fossero sbagliate apposta per spingermi ad usare le loro soluzioni cloud a pagamento. Ma io sono buono.&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;Non ho niente contro la GPDR, anzi la trovo una normativa utilissima, almeno in teoria. Nella pratica, però, fa poco per &lt;a href=&#34;https://www.laleggepertutti.it/207857_gdpr-il-paradosso-della-nuova-legge-sulla-privacy&#34;&gt;tutelare davvero la privacy degli utenti&lt;/a&gt;, riducendosi nei fatti in un poco utile appesantimento burocratico.&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>Da melabit a melabit: sviluppare un sito in Jekyll</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2025/03/01/da-melabit-a-melabit-sviluppare-un-sito-in-jekyll/</link>
      <pubDate>Sat, 01 Mar 2025 06:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2025/03/01/da-melabit-a-melabit-sviluppare-un-sito-in-jekyll/</guid>
      <description>&lt;p&gt;Dopo la&lt;a href=&#34;https://melabit.com/it/2025/02/11/da-melabit-a-melabit-jekyll-installazione-e-configurazione-di-base/&#34;&gt; prima parte&lt;/a&gt; dedicata all&amp;rsquo;installazione e alla configurazione iniziale di Jekyll, con questa seconda parte di note commentate si entra nel vivo dello sviluppo di un sito in Jekyll a partire da un tema già pronto. Sviluppare da zero un tema per Jekyll, invece, va molto oltre le mie competenze, ma del resto chi è in grado di farlo non ha bisogno di leggere queste notarelle.&lt;/p&gt;&#xA;&lt;h4 id=&#34;cosa-vogliamo&#34;&gt;Cosa vogliamo?&lt;/h4&gt;&#xA;&lt;p&gt;Per prima cosa dobbiamo avere una idea chiara di come dovrebbe essere il sito dal punto di vista grafico e quali funzioni deve supportare. Vogliamo un blog personale con un semplice elenco di post? Vogliamo un sito più elaborato stile rivista? Vogliamo un sito vetrina per presentare la nostra attività o un progetto specifico? Vogliamo un sito fotografico o di documentazione?&lt;/p&gt;&#xA;&lt;p&gt;Una volta chiarite le &amp;ldquo;specifiche&amp;rdquo; del sito, facciamo un giro su &lt;a href=&#34;http://jekyllthemes.org/&#34;&gt;questo sito&lt;/a&gt; di temi per Jekyll, oppure su &lt;a href=&#34;https://jekyll-themes.com/&#34;&gt;questo&lt;/a&gt;, o su &lt;a href=&#34;https://jekyllthemes.io/&#34;&gt;questo&lt;/a&gt;, o infine su &lt;a href=&#34;https://jamstackthemes.dev/ssg/jekyll&#34;&gt;questo&lt;/a&gt; (non posso distinguerli per nome, perché si chiamano tutti Jekyll Themes). I più pazienti potranno scorrerli uno ad uno, gli altri preferiranno selezionate la tipologia di sito che gli interessa e guardare solo quei temi. In ogni caso, è bene prendere nota di quelli che ci piacciono di più e provate i siti demo, quando ci sono. È bene essere aperti, magari troviamo un tema interessante che esce fuori dalle specifiche, meglio segnarsi anche quello.&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;h4 id=&#34;come-è-fatto-un-tema&#34;&gt;Come è fatto un tema&lt;/h4&gt;&#xA;&lt;p&gt;A questo punto non resta che provare. Per evitare di essere generico, descriverò l&amp;rsquo;installazione del tema &lt;a href=&#34;https://github.com/wowthemesnet/mundana-theme-jekyll&#34;&gt;Mundana&lt;/a&gt; che, guarda caso, è quello che ho usato per &lt;a href=&#34;https://melabit.com/posts/it&#34;&gt;melabit.com/posts/it&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Ma, proprio come Mundana, la maggior parte dei temi non &lt;em&gt;gem-based&lt;/em&gt; di Jekyll si installa clonando il suo &lt;em&gt;repository&lt;/em&gt; su GitHub oppure scaricando un file compresso (nel qual caso, tutto la parte qui sotto relativa a &lt;code&gt;git&lt;/code&gt; può essere saltata a piè pari). In entrambi i casi, ciò che installiamo è sia il tema che il sito vero e proprio, perché in Jekyll non c&amp;rsquo;è una separazione netta fra grafica e contenuti.&lt;/p&gt;&#xA;&lt;p&gt;La prima cosa da fare è installare &lt;code&gt;git&lt;/code&gt; sul computer. Su macOS è installato di default, ma è sempre una versione un po&amp;rsquo; datata, e comunque come &lt;a href=&#34;https://melabit.com/it/2025/02/11/da-melabit-a-melabit-jekyll-installazione-e-configurazione-di-base/&#34;&gt;dicevo la volta scorsa&lt;/a&gt;, è sempre meglio separare i &lt;em&gt;tool&lt;/em&gt; di sistema da quelli che usate per lo sviluppo. Del resto, con &lt;a href=&#34;https://melabit.com/it/2014/04/29/homebrew-software-per-il-mac-fatto-in-casa/&#34;&gt;Homebrew&lt;/a&gt; ci vogliono pochi secondi, basta eseguire&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ brew install git&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;e avremo l&amp;rsquo;ultima (o quasi) versione di &lt;code&gt;git&lt;/code&gt; installata sul Mac.&lt;/p&gt;&#xA;&lt;p&gt;Con Linux non è molto diverso, ma questa volta dovremo usare l&amp;rsquo;installatore dei pacchetti per la distribuzione in uso, per cui eseguiamo uno dei comandi qui sotto&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ sudo apt install git&#xA;$ sudo dnf install git&#xA;$ sudo pacman -S git&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;a seconda che usiamo Debian/Ubuntu, Fedora/CentOS, Arch, o uno degli infiniti derivati.&lt;/p&gt;&#xA;&lt;p&gt;Come dicevo, l&amp;rsquo;installazione di Mundana avviene clonando il suo repository,&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ git clone https://github.com/wowthemesnet/mundana-theme-jekyll.git&#xA;Cloning into &amp;#39;mundana-theme-jekyll&amp;#39;...&#xA;remote: Enumerating objects: 324, done.&#xA;remote: Total 324 (delta 0), reused 0 (delta 0), pack-reused 324 (from 1)&#xA;Receiving objects: 100% (324/324), 4.12 MiB | 24.52 MiB/s, done.&#xA;Resolving deltas: 100% (116/116), done.&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;oppure scaricando ed espandendo il file &lt;code&gt;zip&lt;/code&gt; del progetto.&lt;/p&gt;&#xA;&lt;p&gt;Gli sviluppatori suggeriscono di fare il prima un &lt;em&gt;fork&lt;/em&gt; sul nostro account GitHub e poi di clonare da lì. Secondo me ha senso se vogliamo contribuire al codice, altrimenti mi sembra un passaggio inutile. E comunque, chi sa cos&amp;rsquo;è un &lt;em&gt;fork&lt;/em&gt; non ha bisogno di altre istruzioni.&lt;/p&gt;&#xA;&lt;p&gt;Una volta finita l&amp;rsquo;installazione, possiamo spostarci nella directory di Mundana e curiosare un po&amp;rsquo; in giro (per maggior chiarezza, tutti i nomi delle directory finiscono con uno &lt;code&gt;/&lt;/code&gt;).&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ cd  mundana-theme-jekyll&#xA;% ls -nhp&#xA;total 72&#xA;-rw-r--r--   1 501  20   398B Feb 12T19:58:00 404.html&#xA;-rw-r--r--   1 501  20   510B Feb 12T19:58:00 Gemfile&#xA;-rw-r--r--   1 501  20   1.7K Feb 12T19:58:00 Gemfile.lock&#xA;-rw-r--r--   1 501  20   2.0K Feb 12T19:58:00 README.md&#xA;-rw-r--r--   1 501  20   1.7K Feb 12T19:58:00 _config.yml&#xA;drwxr-xr-x  11 501  20   352B Feb 12T19:58:00 _includes/&#xA;drwxr-xr-x   6 501  20   192B Feb 12T19:58:00 _layouts/&#xA;drwxr-xr-x  11 501  20   352B Feb 12T19:58:00 _pages/&#xA;drwxr-xr-x  20 501  20   640B Feb 12T19:58:00 _posts/&#xA;drwxr-xr-x   5 501  20   160B Feb 12T19:58:00 assets/&#xA;-rw-r--r--   1 501  20   149B Feb 12T19:58:00 docker-compose.yml&#xA;-rw-r--r--   1 501  20   9.2K Feb 12T19:58:00 index.html&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;La directory di Mundana contiene due file di &lt;em&gt;servizio&lt;/em&gt; di &lt;code&gt;RubyGems&lt;/code&gt;, &lt;code&gt;Gemfile&lt;/code&gt; e &lt;code&gt;Gemfile.lock&lt;/code&gt;, oltre al file &lt;code&gt;docker-compose.yml&lt;/code&gt; che serve solo se usiamo Jekyll all&amp;rsquo;interno di un container Docker (cosa che qui non interessa). Tutto il resto fa capo a Jekyll.&lt;/p&gt;&#xA;&lt;p&gt;Le pagine statiche del sito vanno messe nella cartella &lt;code&gt;_pages&lt;/code&gt;, mentre tutti i contenuti dinamici, cioè quelli che vengono modificati di frequente come i post di un blog, vanno in &lt;code&gt;_posts&lt;/code&gt;. Il contenuto delle pagine statiche e dei post può essere scritto indifferentemente sia in &lt;code&gt;html&lt;/code&gt; che in &lt;code&gt;Markdown&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;La cartella &lt;code&gt;_layouts&lt;/code&gt; contiene i file che generano le parti principali del sito, come le pagine statiche e quelle dei post o la barra laterale, mentre la cartella &lt;code&gt;_includes&lt;/code&gt; contiene delle porzioni di codice che possono essere incluse nelle diverse pagine, più o meno come se fossero delle funzioni di libreria.&lt;/p&gt;&#xA;&lt;p&gt;Queste quattro cartelle, che iniziano tutte con un &lt;em&gt;underscore&lt;/em&gt; &lt;code&gt;_&lt;/code&gt;, vengono elaborate dal motore di Jekyll, che le usa per costruire le pagine html vere e proprie del sito statico.&lt;/p&gt;&#xA;&lt;p&gt;L&amp;rsquo;ultima cartella &lt;code&gt;assets&lt;/code&gt;, invece, è dedicata ai contenuti del sito che non vengono elaborati dal motore di Jekyll, come i file &lt;code&gt;css&lt;/code&gt; che specificano tutti i dettagli dell&amp;rsquo;aspetto grafico del sito, i file &lt;code&gt;JavaScript&lt;/code&gt; necessari per svolgere certe funzioni che richiedono interattività,&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; e tutte le immagini del sito. Quando Jekyll genera un sito questa cartella viene copiata così com&amp;rsquo;è e il sistema crea automaticamente i link ai vari file.&lt;/p&gt;&#xA;&lt;p&gt;Infine, il file &lt;code&gt;_config.yml&lt;/code&gt; contiene tutti i parametri di configurazione del sito, fra cui il nome e la descrizione del sito, il link al logo o alla favicon, i plugin necessari per generare il sito, i parametri di paginazione, o l&amp;rsquo;elenco dei file e delle cartelle di servizio che non devono essere elaborati da Jekyll. Il file  &lt;code&gt;_config.yml&lt;/code&gt; può diventare piuttosto lungo e complesso, qui sotto per semplicità faccio vedere solo una piccola parte del file &lt;code&gt;_config.yml&lt;/code&gt; di default di Mundana.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;# Site&#xA;name: &amp;#39;Mundana&amp;#39;&#xA;description: &amp;#39;Mundana is a free Jekyll theme for awesome people like you, Medium like.&amp;#39;&#xA;logo: &amp;#39;assets/images/logo.png&amp;#39;&#xA;favicon: &amp;#39;assets/images/favicon.ico&amp;#39;&#xA;baseurl: &amp;#39;/mundana-theme-jekyll&amp;#39;&#xA;&#xA;[...]&#xA;&#xA;# Plugins&#xA;plugins: &#xA;  - jekyll-feed&#xA;  - jekyll-sitemap&#xA;  - jekyll-paginate&#xA;  - jekyll-seo-tag&#xA;  &#xA;[...]&#xA;&#xA;# Paginate&#xA;paginate: 10&#xA;&#xA;# Exclude metadata and development time dependencies (like Grunt plugins)&#xA;exclude: [README.markdown, package.json, grunt.js, Gruntfile.js, Gruntfile.coffee, node_modules]&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Già che ci siamo, semplifichiamoci il lavoro futuro con una piccola modifica al file &lt;code&gt;_config.yml&lt;/code&gt;, sostituendo la riga &lt;code&gt;baseurl: &#39;/mundana-theme-jekyll&#39;&lt;/code&gt; con &lt;code&gt;baseurl: &#39;&#39;&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Dimenticavo, anche i plugin (e le relative dipendenze) sono anch&amp;rsquo;essi delle &lt;a href=&#34;https://melabit.com/it/2025/02/11/da-melabit-a-melabit-jekyll-installazione-e-configurazione-di-base/&#34;&gt;&lt;em&gt;gemme&lt;/em&gt; di Ruby&lt;/a&gt; e non sono installati di default, per cui ci tocca farlo con&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ rm Gemfile.lock&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;che serve per evitare di avere conflitti quando Ruby ci propone di installare plugin più recenti di quelli riportati nel file &lt;code&gt;Gemfile.lock&lt;/code&gt;. Subito dopo,&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ bundle install&#xA;[...]&#xA;Fetching gem metadata from https://rubygems.org/............&#xA;Resolving dependencies...&#xA;Fetching jekyll-paginate 1.1.0&#xA;Installing jekyll-paginate 1.1.0&#xA;Fetching jekyll-sitemap 1.4.0&#xA;Installing jekyll-sitemap 1.4.0&#xA;Bundle complete! 4 Gemfile dependencies, 39 gems now installed.&#xA;Bundled gems are installed into `[...]/.gems`&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;che installa i plugin veri e propri (e rigenera automaticamente il file &lt;code&gt;Gemfile.lock&lt;/code&gt; con le versioni appena installate dei vari plugin).&lt;/p&gt;&#xA;&lt;h4 id=&#34;mettiamo-di-nuovo-jekyll-alla-prova&#34;&gt;Mettiamo di nuovo Jekyll alla prova&lt;/h4&gt;&#xA;&lt;p&gt;A questo punto non ci rimane che mettere di nuovo Jekyll alla prova, ma questa volta con il tema che abbiamo installato.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ bundle exec jekyll serve --host=0.0.0.0&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Il sito verrà rigenerato rapidamente e potrà essere visto all&amp;rsquo;URL &lt;code&gt;http://localhost:4000&lt;/code&gt; della nostra macchina reale, oppure all&amp;rsquo;URL della macchina virtuale o del server cloud che stiamo usando, sempre utilizzando la porta &lt;code&gt;4000&lt;/code&gt; (per i server cloud l&amp;rsquo;URL ha una etichetta del tipo &lt;code&gt;reverse DNS name&lt;/code&gt; o simili).&lt;/p&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-03-01-da-melabit-a-melabit-sviluppare-un-sito-in-Jekyll/jekyll-mundana-default.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;Rispetto ai semplici temi &lt;em&gt;gem-based&lt;/em&gt; &lt;a href=&#34;https://melabit.com/it/2025/02/11/da-melabit-a-melabit-jekyll-installazione-e-configurazione-di-base/&#34;&gt;visti nell&amp;rsquo;articolo precedente&lt;/a&gt; Mundana è chiaramente un&amp;rsquo;altra cosa.&lt;/p&gt;&#xA;&lt;p&gt;Qui la struttura del sito è molto più efficace: in cima vengono mostrati gli ultimi quattro post con le relative immagini, al centro spicca in grande evidenza un post con uno sfondo contrastante (ad esempio l&amp;rsquo;ultimo pubblicato) e, più in basso, tutti gli altri post sono disposti in ordine cronologico inverso. A fianco, una barra laterale ospita i post che desideriamo mettere in risalto.&lt;/p&gt;&#xA;&lt;p&gt;Ora basterebbe sostituire i post preconfezionati di Mundana con i propri, aggiungere le immagini, fare due o tre modifiche al file &lt;code&gt;_config.yml&lt;/code&gt; e in pochi minuti si avrebbe il sito pronto da mettere online, con tutti i post già organizzati in tante pagine belle ordinate (&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-03-01-da-melabit-a-melabit-sviluppare-un-sito-in-Jekyll/jekyll-mundana-with-my-posts.png&#34;&gt;come si può vedere qui&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;h4 id=&#34;il-tema-di-default-non-basta&#34;&gt;Il tema di default non basta&lt;/h4&gt;&#xA;&lt;p&gt;Un tema ben fatto è molto comodo e, come abbiamo appena visto, permette di andare online rapidamente e con pochissimo sforzo. Ma non è detto che così com&amp;rsquo;è riesca a soddisfare le esigenze di tutti.&lt;/p&gt;&#xA;&lt;p&gt;Io ad esempio volevo realizzare un sito multilingua in italiano e in inglese, una funzionalità che Mundana non supporta di default.&lt;/p&gt;&#xA;&lt;p&gt;Inoltre volevo che la &lt;code&gt;Home&lt;/code&gt; del sito mostrasse un riassunto degli ultimi post con le miniature delle immagini di testa, ma senza che queste apparissero nelle &lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-03-01-da-melabit-a-melabit-sviluppare-un-sito-in-Jekyll/jekyll-mundana-single-post.png&#34;&gt;pagine dei singoli post&lt;/a&gt;. Mundana gestisce correttamente la prima richiesta, ma non la seconda.&lt;/p&gt;&#xA;&lt;p&gt;Un altro problema riguarda la &lt;a href=&#34;https://www.seozoom.it/paginazione-siti-web-ottimizzazione-tecniche-seo/&#34;&gt;paginazione&lt;/a&gt;: quella di default è bella, ma mostra un&amp;rsquo;unica striscia orizzontale di link a tutte le pagine generate. Quando queste sono troppe, la striscia si allarga a dismisura, finendo per sovrapporsi ad altri elementi grafici della pagina o per uscire dai margini del browser.&lt;/p&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-03-01-da-melabit-a-melabit-sviluppare-un-sito-in-Jekyll/jekyll-mundana-pagination.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;Infine, Mundana supporta di default il sistema di commenti &lt;a href=&#34;https://disqus.com/&#34;&gt;Disqus&lt;/a&gt;, ma io preferivo una soluzione gestita &lt;em&gt;in casa&lt;/em&gt;, evitando di appoggiarmi a servizi di terze parti che possono cambiare le regole di utilizzo o, peggio, cessare di esistere da un giorno all&amp;rsquo;altro.&lt;/p&gt;&#xA;&lt;h4 id=&#34;al-lavoro&#34;&gt;Al lavoro!&lt;/h4&gt;&#xA;&lt;p&gt;Premetto che tutto il codice del tema modificato è disponibile su GitHub, all&amp;rsquo;URL &lt;a href=&#34;https://github.com/sabinomaggi/mundana-theme-jekyll-multilang&#34;&gt;https://github.com/sabinomaggi/mundana-theme-jekyll-multilang&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h5 id=&#34;paginazione&#34;&gt;Paginazione&lt;/h5&gt;&#xA;&lt;p&gt;Cominciamo dalla paginazione. A partire dalla versione 3 di Jekyll (ora siamo alla 4.4.1), la paginazione è gestita dal &lt;a href=&#34;https://jekyllrb.com/docs/pagination/&#34;&gt;plugin &lt;code&gt;jekyll-paginate-v2&lt;/code&gt;&lt;/a&gt;. In Mundana, il codice di paginazione è integrato nel file &lt;code&gt;index.html&lt;/code&gt; ed è molto semplice, tanto da dare problemi quando il numero di pagine del sito cresce.&lt;/p&gt;&#xA;&lt;p&gt;Io ho spostato la paginazione in &lt;code&gt;_includes/custom/paginator.html&lt;/code&gt;,&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; facendo in modo che i link puntassero solo ad una parte delle pagine disponibili: quelle immediatamente intorno alla pagina corrente, la prima e l&amp;rsquo;ultima pagine e una pagina intermedia calcolata in base alla distanza della pagina corrente dalla prima (o dall&amp;rsquo;ultima). In questo modo la paginazione funziona correttamente anche in finestre molto strette o sui dispositivi mobili.&lt;/p&gt;&#xA;&lt;p&gt;Sul codice c’è poco da dire: partendo dalla pagina corrente vengono determinati tutti gli altri elementi della paginazione, generando dinamicamente il codice HTML di ciascun link. Tutta la logica del codice è in &lt;a href=&#34;https://shopify.github.io/liquid/&#34;&gt;&lt;code&gt;Liquid&lt;/code&gt;&lt;/a&gt;, che è il linguaggio di &lt;em&gt;templating&lt;/em&gt; usato da Jekyll. La sintassi di Liquid è un po’ astrusa e obbliga a fare qualche giochetto con le variabili, ma l’importante è che alla fine tutto funzioni.&lt;/p&gt;&#xA;&lt;p&gt;Secondo me, la parte più interessante del codice è la prima riga, che serve per cambiare dinamicamente le stringhe di testo in base alla lingua in uso. Ma questo ci porta alla prossima sezione.&lt;/p&gt;&#xA;&lt;h5 id=&#34;supporto-multilingue&#34;&gt;Supporto multilingue&lt;/h5&gt;&#xA;&lt;p&gt;Jekyll può gestire i siti multilingua tramite il &lt;a href=&#34;https://github.com/untra/polyglot&#34;&gt;plugin &lt;code&gt;jekyll-polyglot&lt;/code&gt;&lt;/a&gt;, che però non &lt;em&gt;comunica&lt;/em&gt; bene con il plugin di paginazione &lt;code&gt;jekyll-paginate-v2&lt;/code&gt;,&lt;sup id=&#34;fnref:4&#34;&gt;&lt;a href=&#34;#fn:4&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;4&lt;/a&gt;&lt;/sup&gt; per cui mi serviva un&amp;rsquo;altra soluzione.&lt;/p&gt;&#xA;&lt;p&gt;Polyglot è facilissimo da usare, basta aggiungere il plugin sotto la voce relativa nel file di configurazione &lt;code&gt;_config.yml&lt;/code&gt; e definire due nuove variabili con tutte le lingue che ci interessano.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[...]&#xA;&#xA;# Plugins&#xA;plugins: &#xA;  [...]&#xA;  - jekyll-polyglot&#xA;&#xA;[...]&#xA;&#xA;# Polyglot&#xA;languages: [en, it, de, fr]&#xA;default_lang: en&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;A questo punto basta definire la lingua di ciascun post, aggiungendo nel suo &lt;a href=&#34;https://jekyllrb.com/docs/front-matter/&#34;&gt;&lt;em&gt;front matter&lt;/em&gt;&lt;/a&gt; la variabile &lt;code&gt;lang:&lt;/code&gt; (ad esempio, &lt;code&gt;lang: en&lt;/code&gt; o &lt;code&gt;lang: it&lt;/code&gt;) e il gioco è fatto.&lt;/p&gt;&#xA;&lt;div style = &#34;border-style: solid; border-width: 0px 0px 0px 12px; border-color: #03a87c; background-color: #defef6; padding: 1em; color:black; font-size:100%;&#34;&gt;&#xA;Il &lt;code&gt;front matter&lt;/code&gt; di Jekyll è un blocco di metadati in formato &lt;code&gt;YAML&lt;/code&gt; inserito all&#39;inizio di un file Markdown (&lt;code&gt;.md&lt;/code&gt;) o HTML (&lt;code&gt;.html&lt;/code&gt;). &#xA;&lt;p&gt;Il front matter è racchiuso tra tre trattini (&lt;code&gt;---&lt;/code&gt;) e serve a fornire informazioni su quella pagina o post, come il titolo, la lingua, il layout, e per personalizzare il comportamento delle pagine. Ad esempio:&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;---&#xA;title: &amp;#34;Benvenuto&amp;#34;&#xA;layout: default&#xA;permalink: /it/&#xA;lang: it&#xA;---&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Quando Jekyll elabora il sito, utilizza il front matter per:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;definire il template utilizzare per la visualizzazione del sito (&lt;code&gt;layout: default&lt;/code&gt;).&lt;/li&gt;&#xA;&lt;li&gt;personalizzare l&amp;rsquo;URL associato alla pagina (&lt;code&gt;permalink: /it/&lt;/code&gt;).&lt;/li&gt;&#xA;&lt;li&gt;impostare delle variabili specifiche per quel file, da usare nei layout e nei temi (&lt;code&gt;lang: it&lt;/code&gt;).&#xA;Se una data pagina o post contiene nel front matter la variabile &lt;code&gt;lang:it&lt;/code&gt;, Polyglot potrà utilizzare questa variabile per applicare contenuti o stili specifici per la versione italiana del sito.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;/div&gt;&#xA;&lt;p&gt;L&amp;rsquo;idea quindi era quella di emulare a mano il comportamento di &lt;code&gt;polyglot&lt;/code&gt;. La prima cosa che ho fatto è stata definire nel file &lt;code&gt;_config.yml&lt;/code&gt; due variabili analoghe a quelle usate da Polyglot,&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;#--- Custom localization variables ---&#xA;# Polyglot does not work well with Paginate-v2&#xA;# define these two variables instead&#xA;locales: [en, it]&#xA;default_locale: en&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;e aggiungere nel &lt;em&gt;front matter&lt;/em&gt; di ciascuna pagina o post una variabile che in analogia con le variabili definite in &lt;code&gt;_config.yml&lt;/code&gt;_ può essere &lt;code&gt;locale: en&lt;/code&gt; oppure &lt;code&gt;locale: it&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Per semplificare la gestione delle due lingue ho creato, all&amp;rsquo;interno della cartella principale &lt;code&gt;_posts&lt;/code&gt;, due sottocartelle &lt;code&gt;en&lt;/code&gt; e &lt;code&gt;it&lt;/code&gt; dove inserire i post nelle rispettive lingue (in questo modo, aggiungere con &lt;code&gt;sed&lt;/code&gt; la variabile &lt;code&gt;locale&lt;/code&gt; giusta è una questione di pochi secondi).&lt;/p&gt;&#xA;&lt;p&gt;Fatto questo, ho sfruttato una caratteristica specifica di Jekyll che, quando trova un file che nel nome contiene un indicatore di lingua, lo considera un&amp;rsquo;altra versione del file originale (senza indicatore), con sue variabili specifiche definite nel front matter.&lt;/p&gt;&#xA;&lt;p&gt;In altri termini, se ho un file &lt;code&gt;index.html&lt;/code&gt; che contiene tutto il codice necessario per costruire la pagina &lt;code&gt;Home&lt;/code&gt; del sito e poi creo un secondo file &lt;code&gt;index_it.html&lt;/code&gt; vuoto, ad eccezione del front matter in cui è definita la variabile &lt;code&gt;locale: it&lt;/code&gt;, questo file &lt;code&gt;index_it.html&lt;/code&gt; erediterà tutto il contenuto di &lt;code&gt;index.html&lt;/code&gt; ma utilizzerà il valore della variabile &lt;code&gt;locale&lt;/code&gt; per adattare la pagina alla lingua italiana. Questo meccanismo è spiegato molto bene in qualche pagina che ho consultato, ma purtroppo non trovo più i link relativi.&lt;/p&gt;&#xA;&lt;p&gt;Ultimo mattoncino: quando si usa la paginazione, la variabile &lt;code&gt;locale: it&lt;/code&gt; deve essere definita all&amp;rsquo;interno della variabile &lt;code&gt;pagination:&lt;/code&gt; del front matter,&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;pagination:&#xA;    enabled: true&#xA;    locale: it&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;per cui tutto il codice usato per determinare in modo dinamico la lingua in cui è scritta una data pagina deve controllare sempre sia il contenuto della variabile &lt;code&gt;page.locale&lt;/code&gt; che di &lt;code&gt;page.pagination.locale&lt;/code&gt;,&lt;/p&gt;&#xA;&lt;p&gt;Ovviamente bisogna adattare alla lingua anche tutte le stringhe di testo presenti nel sito. Per questo, c&amp;rsquo;è il file &lt;code&gt;_data/translations.yml&lt;/code&gt; che contiene le traduzioni in inglese e in italiano di tutte le stringhe utilizzate.&lt;/p&gt;&#xA;&lt;p&gt;Inutile dire che mettere a punto correttamente il meccanismo di localizzazione è stata la cosa che ha richiesto più tempo nel corso dello sviluppo di &lt;code&gt;melabit.com/posts/it&lt;/code&gt;. Il modo in cui è stato fatto, però, consente di aggiungere una nuova lingua in pochi minuti: basta modificare la variabile &lt;code&gt;locales&lt;/code&gt; in &lt;code&gt;_config.yml&lt;/code&gt;, aggiungere un&amp;rsquo;altra cartella in &lt;code&gt;_posts&lt;/code&gt; e un&amp;rsquo;altra bandierina in &lt;code&gt;assets/images&lt;/code&gt;. Quasi quasi viene voglia di provare&amp;hellip; 😂&lt;/p&gt;&#xA;&lt;h5 id=&#34;miniature-e-commenti&#34;&gt;Miniature e commenti&lt;/h5&gt;&#xA;&lt;p&gt;Superato lo scoglio della localizzazione, togliere la miniatura dell&amp;rsquo;immagine di testa dalla pagina dei post è stato uno scherzo. È bastato trovare le righe di codice coinvolte e commentarle e il gioco è fatto.&lt;/p&gt;&#xA;&lt;p&gt;I commenti invece sono stati tutta un&amp;rsquo;altra storia, perfino più complicata di quella della localizzazione. E proprio ai commenti sarà destinato il &lt;a href=&#34;https://melabit.com/it/2025/03/05/da-melabit-a-melabit-gestire-i-commenti-con-jekyll/&#34;&gt;prossimo articolo&lt;/a&gt;.&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;Ad esempio, proprio mentre scrivevo questo articolo, ho messo gli occhi  su &lt;a href=&#34;https://jekyll-themes.com/kitian616/jekyll-TeXt-theme&#34;&gt;questo tema&lt;/a&gt; che non si adatta alla mia idea originale di sito, ma che forse avrebbe potuto fare lo stesso al caso mio (ma ormai non cambio).&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;Jekyll è un generatore di siti &lt;em&gt;statico&lt;/em&gt;, ma ormai anche un sito statico richiede un certo livello di &lt;em&gt;dinamicità&lt;/em&gt; per gestire al meglio cose come le ricerche, come i commenti, e così via.&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;Tutto il nuovo codice da includere l&amp;rsquo;ho messo nella cartella &lt;code&gt;custom&lt;/code&gt; per distinguerlo, anche fisicamente, da quello originale del tema.&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:4&#34;&gt;&#xA;&lt;p&gt;Dato che diversi post di 4-5 anni fa riportano di aver usato senza problemi sia &lt;code&gt;jekyll-polyglot&lt;/code&gt; che &lt;code&gt;jekyll-paginate-v2&lt;/code&gt;, questo potrebbe essere un problema specifico di Mundana. Oppure è una incompatibilità venuta fuori nelle ultime versioni di Jekyll o dei due plugin.&amp;#160;&lt;a href=&#34;#fnref:4&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/div&gt;&#xA;</description>
    </item>
    <item>
      <title>Da melabit a melabit: Jekyll, installazione e configurazione di base</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2025/02/11/da-melabit-a-melabit-jekyll-installazione-e-configurazione-di-base/</link>
      <pubDate>Tue, 11 Feb 2025 06:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2025/02/11/da-melabit-a-melabit-jekyll-installazione-e-configurazione-di-base/</guid>
      <description>&lt;p&gt;Questo articolo non vuole essere una guida dettagliata alla installazione e configurazione di &lt;a href=&#34;https://jekyllrb.com/&#34;&gt;Jekyll&lt;/a&gt;; per quello ci sono le ottime guide riportate più sotto.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;L&amp;rsquo;articolo è invece una raccolta commentata delle note che ho preso mentre sviluppavo &lt;a href=&#34;https://melabit.com/it/&#34;&gt;melabit.com/posts/it&lt;/a&gt;, e sono il risultato di giorni e giorni di prove ed errori, di cambi di direzione, di letture alla ricerca del comando &lt;em&gt;giusto&lt;/em&gt;. A me le note servivano per ricordare quello che avevo fatto e come avevo risolto i problemi che si presentavano di volta in volta. A voi potrebbero essere utili per fare tutto più in fretta e senza intoppi.&lt;/p&gt;&#xA;&lt;h4 id=&#34;installazione-di-jekyll&#34;&gt;Installazione di Jekyll&lt;/h4&gt;&#xA;&lt;p&gt;Per fare delle prove con Jekyll non c&amp;rsquo;è niente di meglio che usare una macchina virtuale, magari con una versione server di Linux che carica poco il sistema principale. Una buona alternativa è un server cloud virtuale, anche economico, come &lt;a href=&#34;https://upcloud.com/products/cloud-servers&#34;&gt;UpCloud&lt;/a&gt;, &lt;a href=&#34;https://cloud.google.com/products/compute&#34;&gt;Google Compute Engine&lt;/a&gt;, &lt;a href=&#34;https://aws.amazon.com/ec2/?nc2=h_ql_prod_fs_ec2&#34;&gt;Amazon EC2&lt;/a&gt; o similari. Per lavorare sul serio, invece, è molto più comodo e veloce usare una macchina &lt;em&gt;reale&lt;/em&gt;, tanto più che seguendo queste istruzioni il rischio di fare danni è nullo o quasi. Io per fortuna avevo a disposizione un vecchio Mac, che mi ha permesso di provare e riprovare sapendo che, in caso di problemi, avrei potuto resettarlo facilmente.&lt;/p&gt;&#xA;&lt;p&gt;La guida migliore per l&amp;rsquo;installazione di Jekyll è senza dubbio &lt;a href=&#34;https://jekyllrb.com/docs/installation/&#34;&gt;quella ufficiale&lt;/a&gt;, con istruzioni specifiche per i sistemi operativi più diffusi.&lt;/p&gt;&#xA;&lt;p&gt;La &lt;a href=&#34;https://jekyllrb.com/docs/installation/macos/&#34;&gt;guida per macOS&lt;/a&gt; è fatta bene, ma l&amp;rsquo;installazione richiede &lt;a href=&#34;https://brew.sh/&#34;&gt;Homebrew&lt;/a&gt; e un buon numero di passaggi da eseguire con attenzione. Su Linux l&amp;rsquo;installazione è molto più facile, mentre su Windows la cosa migliora da fare è installare il &lt;a href=&#34;https://learn.microsoft.com/en-us/windows/wsl/about&#34;&gt;Windows Subsystem for Linux (WSL)&lt;/a&gt; e poi lavorare &lt;a href=&#34;https://jekyllrb.com/docs/installation/windows/&#34;&gt;di fatto in un ambiente Linux&lt;/a&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;p&gt;Un dettaglio importante che manca nelle istruzioni per macOS &amp;ndash; ma che invece è presente in quelle per &lt;a href=&#34;https://jekyllrb.com/docs/installation/freebsd/&#34;&gt;Ubuntu&lt;/a&gt;, &lt;a href=&#34;https://jekyllrb.com/docs/installation/freebsd/&#34;&gt;FreeBSD&lt;/a&gt; e gli &lt;a href=&#34;https://jekyllrb.com/docs/installation/other-linux/&#34;&gt;altri Linux&lt;/a&gt; &amp;ndash; è che, prima di eseguire il comando finale &lt;code&gt;gem install jekyll&lt;/code&gt; (ma volendo anche prima di iniziare ad installare Jekyll), è bene aggiungere queste righe al file &lt;code&gt;~/.bashrc&lt;/code&gt; o &lt;code&gt;~/.zshrc&lt;/code&gt; (a seconda della &lt;em&gt;shell&lt;/em&gt; usata),&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;#--- Install Ruby gems in the user account, e.g. in ~/.gems ---&#xA;export GEM_HOME=&amp;#34;$HOME/.gems&amp;#34;&#xA;export PATH=&amp;#34;$HOME/.gems/bin:$PATH&amp;#34;&#xA;#--- end ---&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;ed eseguire &lt;code&gt;source ~/.bashrc&lt;/code&gt; o &lt;code&gt;source ~/.zshrc&lt;/code&gt; per attivare le nuove variabili di ambiente (io sono rozzo e mi limito a chiudere il Terminale e a riaprirlo subito dopo).&lt;/p&gt;&#xA;&lt;p&gt;A cosa servono quelle righe? Ad istruire il gestore dei pacchetti di &lt;a href=&#34;https://www.ruby-lang.org/en/&#34;&gt;Ruby&lt;/a&gt;, &lt;code&gt;RubyGems&lt;/code&gt;, ad installare tutte le sue &lt;code&gt;gemme&lt;/code&gt;,&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; fra cui c&amp;rsquo;è anche Jekyll, nell&amp;rsquo;account dell&amp;rsquo;utente invece che a livello di sistema. Una cosa buona e giusta per separare l&amp;rsquo;installazione nativa di &lt;code&gt;Ruby&lt;/code&gt; all&amp;rsquo;interno del sistema operativo da tutto ciò che installiamo noi, permettendoci di correggere gli (inevitabili) errori senza correre il rischio di intaccare le funzioni di base del sistema operativo.&lt;/p&gt;&#xA;&lt;p&gt;A questo punto, è possibile eseguire l&amp;rsquo;installazione vera e propria di Jekyll,&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ gem install jekyll&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;seguita subito dopo da un&amp;rsquo;altra gemma molto utile, &lt;a href=&#34;https://rubygems.org/gems/bundler&#34;&gt;Bundler&lt;/a&gt;,&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ gem install bundler&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;che inspiegabilmente è stata completamente dimenticata nelle istruzioni per macOS .&lt;/p&gt;&#xA;&lt;p&gt;Per istruire anche &lt;code&gt;bundler&lt;/code&gt; ad installare tutto nell&amp;rsquo;account dell&amp;rsquo;utente, bisogna eseguire&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ bundle config set --local path $GEM_HOME&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Infine, se stiamo usando una macchina virtuale o un server cloud e il nostro sistema operativo principale è macOS, possiamo installare anche questa gemma,&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ gem install rmate&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;che ci permetterà di usare &lt;a href=&#34;https://macromates.com/&#34;&gt;TextMate&lt;/a&gt;, che secondo me è nel complesso il miglior editor per macOS che ci sia in circolazione, per editare i file su cui si deve mettere le mani, invece di dover usare &lt;code&gt;nano&lt;/code&gt;, &lt;code&gt;vim&lt;/code&gt; o &lt;code&gt;emacs&lt;/code&gt; direttamente sulla macchina virtuale/cloud (che, avendo installata una versione server di Linux, non ha una interfaccia grafica).&lt;sup id=&#34;fnref:4&#34;&gt;&lt;a href=&#34;#fn:4&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;4&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;il-primo-sito-in-jekyll&#34;&gt;Il primo sito in Jekyll&lt;/h4&gt;&#xA;&lt;p&gt;Alla fine del processo di installazione di Jekyll, tutte le guide suggeriscono di creare un nuovo sito con&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ jekyll new my-new-blog&#xA;Running bundle install in [...]/my-new-blog... &#xA;  Bundler: Resolving dependencies...&#xA;  Bundler: Bundle complete! 7 Gemfile dependencies, 30 gems now installed.&#xA;  Bundler: Use `bundle info [gemname]` to see where a bundled gem is installed.&#xA;New jekyll site installed in [...]/my-new-blog. &#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;che crea una nuova cartella &lt;code&gt;my-new-blog&lt;/code&gt; nella cartella corrente (i puntini fra parentesi quadre indicano la parte di percorso che dipende dal sistema operativo). Spostandosi nella nuova cartella e attivando il web server integrato in Jekyll,&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ cd  my-new-blog&#xA;$ bundle exec jekyll serve --host=0.0.0.0&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;potremo vedere il nostro nuovo sito all&amp;rsquo;URL &lt;code&gt;http://localhost:4000&lt;/code&gt; se stiamo usando una macchina reale. Se invece stiamo usando una macchina virtuale o un server cloud, dovremo puntare il browser all&amp;rsquo;URL pubblico fornitoci dalla macchina virtuale (o server cloud), utilizzando sempre la porta 4000.&lt;/p&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-02-11-da-melabit-a-melabit-jekyll-installazione-e-configurazione-di-base/jekyll-new-site.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;Niente da dire, questa procedura è utile per verificare che tutto funzioni, e poi &lt;a href=&#34;https://github.com/jekyll/minima&#34;&gt;Minima&lt;/a&gt;, il tema di default, è davvero molto pulito ed elegante. Se Minima vi basta, potete chiuderla qui, sarà sufficiente dare un titolo al sito e aggiungere i contenuti e potrete partire immediatamente con il vostro nuovo blog in Jekyll.&lt;/p&gt;&#xA;&lt;p&gt;Ma questa procedura ci dà anche una idea molto pallida di cosa si possa fare  &lt;em&gt;davvero&lt;/em&gt; con Jekyll. Perché, e questo è un limite non da poco, le funzioni di Jekyll sono  strettamente integrate con i suoi temi grafici.&lt;/p&gt;&#xA;&lt;h4 id=&#34;jekyll-e-i-temi-grafici&#34;&gt;Jekyll e i temi grafici&lt;/h4&gt;&#xA;&lt;p&gt;Minima è un esempio di tema &lt;em&gt;gem-based&lt;/em&gt;, installato al di fuori della cartella del sito e che, proprio per il fatto di separare nettamente i contenuti del sito dal suo aspetto grafico, può essere in teoria facilmente sostituito con un altro tema a &lt;em&gt;gemma&lt;/em&gt;, come quello mostrato qui sotto.&lt;/p&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-02-11-da-melabit-a-melabit-jekyll-installazione-e-configurazione-di-base/jekyll-new-site-gem.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;Ma i temi di questo tipo sono pochi, in genere sono piuttosto minimali e, per la loro stessa natura, è più laborioso modificarli o aggiungere nuove funzioni. E quel che è peggio, spesso sono fatti per versioni ormai obsolete di Jekyll e non funzionano nelle ultime versioni.&lt;sup id=&#34;fnref:5&#34;&gt;&lt;a href=&#34;#fn:5&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;5&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;La stragrande maggioranza dei &lt;a href=&#34;http://jekyllthemes.org/&#34;&gt;temi per Jekyll&lt;/a&gt; arriva invece in un formato che integra in un&amp;rsquo;unica cartella sia i contenuti che la grafica. Una cosa molto comoda quando si trova il tema &lt;em&gt;giusto&lt;/em&gt;, ma che rende molto più complicato cambiare tema a posteriori.&lt;/p&gt;&#xA;&lt;p&gt;Installare la maggioranza dei temi per Jekyll significa di fatto installare tutto il sito che lo contiene, dandosi poi da fare per sostituire i post e le immagini preconfezionate con i nostri post e con le nostre immagini. Di conseguenza, è preferibile &lt;em&gt;prima&lt;/em&gt; scegliere un tema che ci piaccia e che supporti almeno una parte di quello che ci aspettiamo dal sito, e solo &lt;em&gt;dopo&lt;/em&gt; iniziare ad estenderne le funzioni nel modo desiderato.&lt;/p&gt;&#xA;&lt;p&gt;Ma questo sarà l&amp;rsquo;argomento della prossima puntata.&lt;/p&gt;&#xA;&lt;h4 id=&#34;e-se-jekyll-non-ci-piace-più&#34;&gt;E se Jekyll non ci piace più?&lt;/h4&gt;&#xA;&lt;p&gt;Allora dobbiamo disinstallare tutto. Il &lt;a href=&#34;https://emaxime.com/2018/how-to-uninstall-all-ruby-gems&#34;&gt;modo moderno per farlo&lt;/a&gt; è usare questo comando,&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ gem uninstall --all --ignore-dependencies --executables --verbose&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;oppure, per chi ama la compattezza,&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;$ gem uninstall -aIxV&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;dove lo switch &lt;code&gt;--all&lt;/code&gt; segnala di disinstallare tutte le gemme, mentre &lt;code&gt;--ignore-dependencies&lt;/code&gt; permette di evitare di bloccare il processo di disinstallazione quando si disinstalla una &lt;em&gt;gemma&lt;/em&gt; richiesta da un&amp;rsquo;altra &lt;em&gt;gemma&lt;/em&gt;. Il terzo switch &lt;code&gt;--executable&lt;/code&gt; serve per disinstallare gli eseguibili senza richiedere ogni volta una conferma. Infine &lt;code&gt;--verbose&lt;/code&gt; è utile per farci spiegare per filo e per segno quello che sta succedendo.&lt;/p&gt;&#xA;&lt;p&gt;Se avete seguito il consiglio iniziale di installare tutto nell&amp;rsquo;account utente non vi serviranno i privilegi di amministratore. Altrimenti avrete fatto male e per punizione dovrete anteporre &lt;code&gt;sudo&lt;/code&gt; al comando di installazione.&lt;/p&gt;&#xA;&lt;p&gt;Una volta disinstallate tutte le gemme, si potrebbe anche disinstallare &lt;code&gt;ruby&lt;/code&gt; e i pacchetti accessori, usando Homebrew per macOS oppure il gestore dei specifico per la distribuzione Linux usata. Ma con i grandi dischi attuali, vale la pena darsi tanto da fare solo per risparmiare qualche decina di MB?&lt;/p&gt;&#xA;&lt;h4 id=&#34;alla-prossima&#34;&gt;Alla prossima&lt;/h4&gt;&#xA;&lt;p&gt;L&amp;rsquo;articolo è già troppo lungo ed è meglio chiuderlo qui. Il &lt;a href=&#34;https://melabit.com/it/2025/03/01/da-melabit-a-melabit-sviluppare-un-sito-in-Jekyll/&#34;&gt;prossimo articolo&lt;/a&gt; servirà per entrare nel vivo dello sviluppo di un sito con Jekyll. A presto!&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;A causa dell&amp;rsquo;abbondanza di documentazione, con Jekyll il vero problema è riuscire a distinguere le guide davvero utili da quelle che fanno solo perdere tempo.&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;Da ora in poi non menzionerò più Windows, perché tutte le istruzioni necessarie a chi usa quel sistema operativo saranno identiche a quelle per Linux.&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;Una &lt;em&gt;gemma&lt;/em&gt; è un programma o una libreria scritta in &lt;code&gt;Ruby&lt;/code&gt; che contiene al suo interno tutto ciò che serve per eseguirla, o per sviluppare nuovi programmi che ne sfruttano le funzioni. Le gemme vengono installate tramite il gestore dei pacchetti standard, RubyGems, il cui comando &lt;code&gt;gem&lt;/code&gt; permette di eseguire tutti i processi di installazione, aggiornamento e disinstallazione delle varie gemme.&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:4&#34;&gt;&#xA;&lt;p&gt;Naturalmente il problema non si pone per chi è già un maestro di &lt;code&gt;vim&lt;/code&gt; o &lt;code&gt;emacs&lt;/code&gt;.&amp;#160;&lt;a href=&#34;#fnref:4&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:5&#34;&gt;&#xA;&lt;p&gt;E quando dico &amp;ldquo;spesso&amp;rdquo; non esagero.&amp;#160;&lt;a href=&#34;#fnref:5&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/div&gt;&#xA;</description>
    </item>
    <item>
      <title>Windows? No grazie!</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2024/07/24/windows-no-grazie/</link>
      <pubDate>Wed, 24 Jul 2024 06:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2024/07/24/windows-no-grazie/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2024-07-24-windows-no-grazie/paulius-dragunas-ID6-VGSfdWo-unsplash.jpg&#34; alt=&#34;&#34;&gt;&#xA;&amp;ndash; &lt;em&gt;Fonte: &lt;a href=&#34;https://unsplash.com/@paulius005&#34;&gt;Paulius Dragunas&lt;/a&gt; su &lt;a href=&#34;https://unsplash.com&#34;&gt;Unsplash&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Ogni tanto mi chiedo, piuttosto oziosamente per la verità, perché non installo mai Windows sui miei computer. Alla fine, la maggior parte delle applicazioni che uso ogni giorno è multipiattaforma, quindi gira indifferentemente sui tre principali sistemi operativi attuali (per chi fosse appena tornato da Marte, sono Linux, macOS e Windows, in ordine rigorosamente alfabetico).&lt;/p&gt;&#xA;&lt;p&gt;E poi, oggi Windows supporta anche Linux, per cui la mia fame di Terminale e di Unix potrebbe essere soddisfatta anche su quel sistema operativo.&lt;/p&gt;&#xA;&lt;p&gt;Poi leggo questo articolo su PCWorld, &lt;a href=&#34;https://www.pcworld.com/article/2379675/ways-windows-11-collects-your-data-and-what-you-can-do-about-it.html&#34;&gt;7 ways Windows 11 collects your data – and how to opt out&lt;/a&gt;, cioè &lt;em&gt;I sette modi diversi con cui Windows 11 raccoglie i tuoi dati, e come dire di no&lt;/em&gt;, e mi dico grazie, sto bene così.&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>Cinque ragioni</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2023/09/25/cinque-ragioni/</link>
      <pubDate>Mon, 25 Sep 2023 06:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2023/09/25/cinque-ragioni/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2023-09-25-cinque-ragioni/7c575e3bfe8f526376296050e2a068e1.jpg&#34; alt=&#34;&#34;&gt;&lt;br&gt;&#xA;&amp;ndash; &lt;em&gt;Fonte: &lt;a href=&#34;https://www.pinterest.it/pin/559361216190812470/&#34;&gt;Pinterest&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Il blog è stato fermo per quasi due mesi, purtroppo è stata una estate pieni di impicci casalinghi e di lavoro, e solo ora riesco ad avere il tempo per mettermi di nuovo alla tastiera a scrivere. Nel frattempo però non ho smesso di buttare giù le idee per i nuovi post, come questo qui sotto che, anche se arriva in ritardo, non ha perso la sua attualità. Di conseguenza, buona lettura!&lt;/p&gt;&#xA;&lt;hr style = &#34;border: none; &#xA;            border-top: 3px double #333; &#xA;            color: #333; &#xA;            overflow: visible; &#xA;            height: 5px; &#xA;            width: 50%; &#xA;            margin-left: auto; &#xA;            margin-right: auto;&#34;&#xA;&gt;&#xA;&#xA;&lt;p&gt;L&amp;rsquo;Oscar per l&amp;rsquo;articolo più inutile dell&amp;rsquo;estate va a Thomas Rau, che ad agosto pubblica su PCWorld le &lt;a href=&#34;https://www.pcworld.com/article/2022447/windows-laptop-vs-macbook-5-reasons-pc.html&#34;&gt;Cinque ragioni convincenti per comprare un portatile con Windows invece di un MacBook&lt;/a&gt;. Traducendo letteralmente, queste sarebbero:&lt;/p&gt;&#xA;&lt;ol&gt;&#xA;&lt;li&gt;Un&amp;rsquo;ampia gamma di software per i portatili Windows;&lt;/li&gt;&#xA;&lt;li&gt;Un&amp;rsquo;ampia scelta di modelli diversi;&lt;/li&gt;&#xA;&lt;li&gt;I portatili Windows sono più economici;&lt;/li&gt;&#xA;&lt;li&gt;I portatili Windows sono più facili da aggiornare e riparare;&lt;/li&gt;&#xA;&lt;li&gt;Con un portatili Windows sono necessari meno adattatori, o addirittura nessuno.&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;p&gt;Il &lt;strong&gt;motivo numero 1&lt;/strong&gt; poteva essere vero venti e più anni fa, ai tempi di &lt;a href=&#34;https://it.wikipedia.org/wiki/Mac_OS_9&#34;&gt;Mac OS 9&lt;/a&gt;, quando il Mac rappresentava davvero una piattaforma di nicchia per amatori affezionati. Ma oggi?&lt;/p&gt;&#xA;&lt;p&gt;Oggi la maggior parte del software è multipiattaforma o gira direttamente sul web, le uniche categorie di software nella quale Windows domina incontrastato sono le utility di manutenzione del sistema e gli strumenti di sicurezza (anti-virus, anti-malware, anti-phishing, anti-tutto).&lt;/p&gt;&#xA;&lt;p&gt;Bella soddisfazione! Quando devo usare un computer con Windows passo un sacco di tempo con loro, per sistemare qualcosa che non va nel sistema, quando uso macOS o Linux penso a lavorare e basta.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;Per quanto riguarda i &lt;strong&gt;motivi numero 2 e 3&lt;/strong&gt; è vero, ci sono in giro un sacco di portatili con Windows di tutte le fogge e per tutte le tasche. Ma questo significa che ci sono anche un sacco di fregature, perché i portatili economici durano in genere lo spazio di un mattino, o poco più, e quelli di qualità&amp;hellip; già, sono costosi, perché non ci sono scorciatoie, la qualità, quella vera, non è gratis.&lt;/p&gt;&#xA;&lt;p&gt;E se devo spendere 1.500 o 2.000 euro per un portatile con Windows, dovendo pure accettare tutti i grattacapi che mi darà il sistema operativo, beh mi tengo stretto il mio MacBook Air o Pro e dormo più tranquillo.&lt;/p&gt;&#xA;&lt;p&gt;Il &lt;strong&gt;motivo numero 4&lt;/strong&gt; è l&amp;rsquo;unico che abbia un senso, almeno secondo me, perché purtroppo è vero che più passa il tempo e più i MacBook diventano difficili da aggiornare o da riparare.&lt;/p&gt;&#xA;&lt;p&gt;Ci sono dei motivi tecnici, perché se un processore come l&amp;rsquo;M1/M2 degli ultimi MacBook contiene in un unico blocco anche il processore grafico e la RAM, e se per tenere dietro alla velocità mostruosa del processore bisogna integrare sulla scheda madre anche i componenti della memoria di massa (l&amp;rsquo;SSD per capirci), c&amp;rsquo;è davvero poco da aggiornare, a &lt;a href=&#34;https://www.youtube.com/watch?v=apEKAY11NQs&#34;&gt;meno di non avere competenze tecniche&lt;/a&gt; molto superiori alla media.&lt;/p&gt;&#xA;&lt;p&gt;E poi ci sono dei motivi pratici, come il desiderio della maggior parte di utenti di avere dei MacBook sempre più sottili e leggeri e con una batteria che dura all&amp;rsquo;infinito, cosa che implica la necessità di rimuovere tutto ciò che non è indispensabile o che riduce le dimensioni della batteria, primi fra tutti i meccanismi che permettono di accedere facilmente all&amp;rsquo;interno del portatile.&lt;/p&gt;&#xA;&lt;p&gt;Non a caso anche i portatili con Windows stanno seguendo la stessa china, sempre più sottili, sempre più leggeri, e di conseguenza sempre più &lt;em&gt;chiusi&lt;/em&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; È una questione di fisica, piaccia o no non ci si può fare niente.&lt;/p&gt;&#xA;&lt;p&gt;E veniamo infine al &lt;strong&gt;motivo numero 5&lt;/strong&gt;. Qui non so se ridere o se piangere, perché di cavi, cavetti e adattatori siamo pieni e non sarà certo un adattatore in più o in meno a fare la differenza.&lt;/p&gt;&#xA;&lt;p&gt;E poi, non sono proprio i produttori di portatili Windows ad ostinarsi ad usare i connettori a barilotto, quelli a forma di cilindro con un foro nel mezzo di mille fogge e dimensioni diverse, invece di adottare un connettore di alimentazione standard come l&amp;rsquo;USB-C dei MacBook più recenti?&lt;/p&gt;&#xA;&lt;hr style = &#34;border: none; &#xA;            border-top: 3px double #333; &#xA;            color: #333; &#xA;            overflow: visible; &#xA;            height: 5px; &#xA;            width: 50%; &#xA;            margin-left: auto; &#xA;            margin-right: auto;&#34;&#xA;&gt;&#xA;&#xA;&lt;p&gt;Per la cronaca, in parallelo all&amp;rsquo;articolo di Thomas Rau Macworld ha pubblicato le &lt;a href=&#34;https://www.macworld.com/article/2020887/macbook-windows-pc-value-resale-support-design-ecosystem.html&#34;&gt;Cinque ragioni per comprare un MacBook invece di un portatile Windows&lt;/a&gt;. Sarò di parte, ma le trovo ben più convincenti.&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;Al più sul Mac faccio ogni tanto una scansione manuale con &lt;a href=&#34;https://www.malwarebytes.com/&#34;&gt;Malwarebytes&lt;/a&gt;, così tanto per non perdere l&amp;rsquo;abitudine.&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;Ma con una durata della batteria che non può minimamente competere con quella dei MacBook. Se Intel e AMD non riusciranno a produrre in tempi brevi processori più efficienti dal punti di vista energetico, è prevedibile che anche i portatili Windows adotteranno sempre più i processori ARM, che sono gli unici in grado di garantire allo stesso tempo prestazioni elevate e consumi ridotti.&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>Tempo al tempo</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2023/08/04/tempo-al-tempo/</link>
      <pubDate>Fri, 04 Aug 2023 06:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2023/08/04/tempo-al-tempo/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2023-08-04-tempo-al-tempo/johan-desaeyere-58a-wW1zURY-unsplash.jpg&#34; alt=&#34;&#34;&gt;&#xA;&amp;ndash; &lt;em&gt;Fonte: &lt;a href=&#34;https://https://unsplash.com/@dia057&#34;&gt;Johan Desaeyere&lt;/a&gt; su &lt;a href=&#34;https://unsplash.com&#34;&gt;Unsplash&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Finalmente anche l&amp;rsquo;&lt;a href=&#34;https://www.pcworld.com/article/1996440/windows-11-this-new-taskbar-function-breaks-with-old-windows-tradition.html&#34;&gt;orologio di Windows 11 potrà mostrare i secondi&lt;/a&gt;, una innovazione che, dopo essere stata &amp;ldquo;&lt;em&gt;lungamente testata dagli utenti della versione Insider di Windows&lt;/em&gt;&amp;rdquo;, approda ora al grande pubblico.&lt;/p&gt;&#xA;&lt;p&gt;Non è una novità, perché Microsoft ha già provato questa &lt;em&gt;grandiosa&lt;/em&gt; innovazione in qualche beta di Windows vent&amp;rsquo;anni fa, senza mai distribuirla al grande pubblico, &lt;a href=&#34;https://www.pcworld.com/article/1996440/windows-11-this-new-taskbar-function-breaks-with-old-windows-tradition.html&#34;&gt;semplicemente perché&lt;/a&gt;&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;le prestazioni di Windows peggioravano notevolmente quando gli utenti [decidevano] di mostrare i secondi sull&amp;rsquo;orologio [posto nella barra delle applicazioni].&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;p&gt;Ohibò, una delle prime cose che faccio dopo una nuova installazione di macOS (e prima di Mac OS X/OS X) è proprio quella di mostrare i secondi nell&amp;rsquo;orologio della barra dei menu, e non mi sono mai accorto di alcun rallentamento, anche in macchine d&amp;rsquo;epoca con pochissima RAM. Faccio lo stesso anche con i vari Linux che mi capita di usare, a anche lì non ho mai notato alcun decadimento di prestazioni.&lt;/p&gt;&#xA;&lt;p&gt;Come è mai possibile, allora, che Windows sia scritto così male che solo ora riesce ad aggiornare in tempo reale pochi pixel del desktop senza impattare pesantemente sulle prestazioni del PC?&lt;/p&gt;&#xA;&lt;p&gt;E poi, se questo è davvero lo stato reale di Windows di 10-20 anni fa, come potevano quelli di Microsoft presentare Windows Vista o Windows 8.x &amp;ndash; due sistemi operativi che basavano gran parte del loro (presunto) &lt;em&gt;appeal&lt;/em&gt; sull&amp;rsquo;aggiornamento in tempo reale dei &lt;em&gt;widget&lt;/em&gt; e delle &lt;em&gt;tile&lt;/em&gt; (cioè in pratica sull&amp;rsquo;aggiornamento di porzioni dell&amp;rsquo;area del desktop ben più grosse dell&amp;rsquo;orologio situato nella barra delle applicazioni) &amp;ndash; senza prevedere di essere presi a pernacchie?&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>Come controllare lo spazio occupato sul Mac con il Terminale</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2023/05/03/come-controllare-lo-spazio-occupato-sul-mac-con-il-terminale/</link>
      <pubDate>Wed, 03 May 2023 06:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2023/05/03/come-controllare-lo-spazio-occupato-sul-mac-con-il-terminale/</guid>
      <description>&lt;p&gt;Il Terminale di macOS è l&amp;rsquo;applicazione installata di default su &lt;a href=&#34;https://setapp.com/how-to/full-list-of-all-macos-versions&#34;&gt;tutte le versioni di macOS&lt;/a&gt; per accedere alla &lt;a href=&#34;https://melabit.com/it/le-parole-per-dirlo/&#34;&gt;shell&lt;/a&gt;, l&amp;rsquo;interfaccia a linea di comando del sistema operativo. La maggior parte dei comandi della shell è identica in tutti i sistema operativi basati su UNIX, che oggi sono principalmente Linux e macOS. Una cosa che ci permette di usare gli stessi comandi su questi due sistemi operativi, così come sulle &lt;a href=&#34;https://www.freebsd.org/&#34;&gt;varie&lt;/a&gt; &lt;a href=&#34;https://www.netbsd.org/&#34;&gt;incarnazioni&lt;/a&gt; &lt;a href=&#34;https://www.openbsd.org/&#34;&gt;disponibili&lt;/a&gt; di BSD Unix e perfino su Windows, almeno dopo aver installato il &lt;a href=&#34;https://learn.microsoft.com/en-us/windows/wsl/about&#34;&gt;Windows Subsystem for Linux&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Del Terminale di macOS ho scritto parecchie volte su questo blog. Riguardando i vecchi post ho ritrovato  questa &lt;a href=&#34;https://melabit.com/it/2019/01/30/script-per-tutti-i-giorni-ricapitoliamo/&#34;&gt;introduzione all&amp;rsquo;uso del Terminale&lt;/a&gt; e ai suoi comandi principali che mi pare ancora attuale, a parte il fatto che nel frattempo la &lt;a href=&#34;https://melabit.com/it/le-parole-per-dirlo/&#34;&gt;shell&lt;/a&gt; di default di macOS è diventata &lt;code&gt;zsh&lt;/code&gt; al posto di &lt;code&gt;bash&lt;/code&gt;. Ma questo cambiamento dovrebbe essere quasi trasparente per l&amp;rsquo;utente finale, dato che &lt;code&gt;zsh&lt;/code&gt; è una versione estesa e compatibile quasi al 100% di &lt;code&gt;bash&lt;/code&gt; (le principali differenze fra le due shell sono &lt;a href=&#34;https://www.fosslinux.com/58416/bash-vs-zsh-differences.htm&#34;&gt;elencate qui&lt;/a&gt; e, in termini più tecnici, &lt;a href=&#34;https://apple.stackexchange.com/questions/361870/what-are-the-practical-differences-between-bash-and-zsh&#34;&gt;anche qui&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;p&gt;Oggi però voglio andare oltre i soliti, un po&amp;rsquo; noiosi, comandi di base e proporre un comando poco conosciuto ma che può fare comodo nella gestione giornaliera del Mac.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Una premessa&lt;/strong&gt;: tanti utenti del Mac sono spaventati dal Terminale, magari vorrebbero usarlo ma temono di far danni. Non è il caso di questo comando, che al massimo può produrre delle lunghe liste di file, ma non può in nessun modo danneggiare il sistema (in ogni caso, per danneggiare un sistema operativo come macOS bisogna usare il Terminale in modo davvero scriteriato).&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Altra premessa&lt;/strong&gt;: per non rendere l&amp;rsquo;esposizione troppo pesante suppongo che chi legge sappia cos&amp;rsquo;è una &lt;code&gt;shell&lt;/code&gt; o qual è la cartella &lt;code&gt;Home&lt;/code&gt; (o &lt;code&gt;Inizio&lt;/code&gt;) di un utente. Chi ha bisogno di un ripasso, può &lt;a href=&#34;https://melabit.com/it/le-parole-per-dirlo/&#34;&gt;trovare qui&lt;/a&gt; una breve spiegazione dei concetti principali relativi a macOS e al Terminale.&lt;/p&gt;&#xA;&lt;h4 id=&#34;quanto-spazio-occupano-i-miei-file&#34;&gt;Quanto spazio occupano i miei file?&lt;/h4&gt;&#xA;&lt;p&gt;Questa è una preoccupazione ricorrente in chi ha un disco di capacità ridotta (i 256 GB di spazio sui modelli base di MacBook Air/Pro e Mini sono davvero troppo pochi), oppure un disco grande ma ormai pieno di file.&lt;/p&gt;&#xA;&lt;p&gt;Il comando base per sapere quanto spazio occupano i file presenti sul Mac è &lt;code&gt;du&lt;/code&gt; (ovvero &lt;em&gt;disk usage&lt;/em&gt;), che riporta la dimensione (in blocchi) della cartella corrente e di tutte le cartelle contenute al suo interno.&lt;/p&gt;&#xA;&lt;p&gt;Ad esempio, se voglio vedere quanto spazio occupano i sorgenti in Markdown di tutti i post di questo blog, mi sposto con &lt;code&gt;cd&lt;/code&gt; nella cartella &lt;code&gt;~/Documents/Articoli\ Mac/Blog/posts&lt;/code&gt; del mio Mac (&lt;code&gt;zsh&lt;/code&gt; riporta il nome della cartella corrente immediatamente prima del simbolo del prompt &lt;code&gt;%&lt;/code&gt;) ed eseguo &lt;code&gt;du&lt;/code&gt;, ottenendo&lt;/p&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2023-05-03-come-controllare-lo-spazio-occupato-sul-mac-con-il-terminale/du.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;dove il &lt;code&gt;.&lt;/code&gt; indica per convenzione la cartella corrente, che a sua volta contiene la cartella &lt;code&gt;TODO&lt;/code&gt; dove, come è facilmente immaginabile, conservo i post in lavorazione. La dimensione totale occupata dai miei post è di 7080 blocchi, di cui 160 blocchi sono utilizzati da TODO.&lt;/p&gt;&#xA;&lt;h4 id=&#34;comandi-e-interruttori&#34;&gt;Comandi e interruttori&lt;/h4&gt;&#xA;&lt;p&gt;Usare &lt;code&gt;du&lt;/code&gt; così com&amp;rsquo;è ha poco senso, perché la dimensione in blocchi può essere significativa per un esperto di hardware ma non è facilmente comprensibile per la maggior parte degli utenti, abituati a ragionare in termini di kilobyte, megabyte e gigabyte.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;Meglio quindi aggiungere a &lt;code&gt;du&lt;/code&gt; lo switch &lt;code&gt;--si&lt;/code&gt;, con il quale &lt;code&gt;du&lt;/code&gt; riporta le dimensioni delle cartelle in kB, MB o GB, scegliendo l&amp;rsquo;unità migliore in base alle dimensioni di ciascuna cartella. Con &lt;code&gt;--si&lt;/code&gt;, 1 kB equivale a 1000 byte, 1 MB a 1000 kB e così via, proprio come fa il Finder.  Se vogliamo che le dimensioni siano espresse utilizzando i tradizionali multipli di 1024 dobbiamo utilizzare lo switch &lt;code&gt;-h&lt;/code&gt; al posto di &lt;code&gt;--si&lt;/code&gt;, ma sul Mac non ha molto senso.&lt;/p&gt;&#xA;&lt;p&gt;Se eseguo il comando &lt;code&gt;du --si&lt;/code&gt; nella cartella &lt;code&gt;~/Documents/Articoli\ Mac/Blog/posts&lt;/code&gt; ora ottengo,&lt;/p&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2023-05-03-come-controllare-lo-spazio-occupato-sul-mac-con-il-terminale/du-better-units.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;da cui si nota che i quasi 450 file Markdown contenuti in questa cartella occupano appena 3.6 MB e potrebbero stare tranquillamente in 3 floppy disk (eh sì, usare un formato testo per scrivere documenti è sempre molto efficiente).&lt;/p&gt;&#xA;&lt;div markdown=&#34;1&#34; style = &#34;border-style: solid; border-width: 0px 0px 0px 12px; border-color: #03a87c; background-color: #defef6; padding: 1em; color:black; font-size:100%;&#34;&gt;&#xA;I comandi del Terminale includono spesso uno o più _switch_, cioè delle opzioni che modificano il comportamento del comando per adattarlo alle necessità dell&#39;utente. Gli switch sono indicati da un trattino seguito da una lettera e, a volte, da un parametro che può essere un numero o una stringa. Ad esempio, il comando `ls -a` mostrerà anche i file nascosti, mentre il comando `shutdown -r now` riavvierà immediatamente il computer. &#xA;Nel caso in cui si debbano utilizzare più di uno switch, è possibile definirli singolarmente, come ad esempio in `ls -a -l`, oppure inserirli tutti insieme dopo il trattino, come in `ls -al`. &#xA;Gli switch più complessi possono essere indicati anche da due trattini seguiti da una stringa e dagli eventuali parametri, come lo switch `--si` appena visto.&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Altri switch utili del comando &lt;code&gt;du&lt;/code&gt; sono:&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;code&gt;-a&lt;/code&gt;: calcola lo spazio occupato non solo dalle cartelle ma anche dai file contenuti al loro interno.&lt;/p&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2023-05-03-come-controllare-lo-spazio-occupato-sul-mac-con-il-terminale/du-with-files.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;Ad esempio, se provo ad eseguire &lt;code&gt;du&lt;/code&gt; a partire dalla mia &lt;code&gt;Home&lt;/code&gt; ottengo una lista di più di 60.000 cartelle, ma se uso &lt;code&gt;du -a&lt;/code&gt; la lista cresce fino a comprendere quasi mezzo milione di file e cartelle (del comando collegato &lt;code&gt;wc&lt;/code&gt; &lt;a href=&#34;https://melabit.com/it/2016/07/05/duecento/&#34;&gt;ho già scritto&lt;/a&gt; un bel po&amp;rsquo; di tempo fa, qui serve a contare il numero di righe riportate da &lt;code&gt;du&lt;/code&gt;).&lt;/p&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2023-05-03-come-controllare-lo-spazio-occupato-sul-mac-con-il-terminale/du-home-basic.png&#34; alt=&#34;&#34;&gt;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;code&gt;-d&lt;/code&gt; seguito da un numero: definisce il livello di visualizzazione delle cartelle tramite il numero associato allo switch. Ad esempio, &lt;code&gt;-d 1&lt;/code&gt; mostrerà  solo le cartelle di primo livello, cioè quelle contenute nella cartella di partenza, mentre &lt;code&gt;-d 2&lt;/code&gt; mostrerà anche le cartelle contenute all&amp;rsquo;interno delle cartelle di primo livello, e così via.&lt;/p&gt;&#xA;&lt;p&gt;Se provo ad eseguire &lt;code&gt;du -d 1&lt;/code&gt; nella mia &lt;code&gt;Home&lt;/code&gt; ottengo,&lt;/p&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2023-05-03-come-controllare-lo-spazio-occupato-sul-mac-con-il-terminale/du-home-advanced.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;da cui si capisce immediatamente che le cartelle che occupano più spazio sono &lt;code&gt;Music&lt;/code&gt; e &lt;code&gt;Library&lt;/code&gt; (c&amp;rsquo;è da dire che la mia &lt;code&gt;Home&lt;/code&gt; è molto più grande, perché la maggior parte dei file si trova su un disco esterno collegato alla &lt;code&gt;Home&lt;/code&gt; &lt;a href=&#34;https://melabit.com/it/2020/08/05/ssd-o-dischi-meccanici-perche-non-tutti-e-due-prima-parte/&#34;&gt;tramite dei collegamenti simbolici&lt;/a&gt;, ma questa è un&amp;rsquo;altra storia). Se avessi bisogno di fare spazio sul disco saprei subito dove concentrarmi, invece di perdere tempo ad esaminare minuziosamente tutte le cartelle elencate di default da &lt;code&gt;du&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;code&gt;-t&lt;/code&gt; seguito da un numero: definisce la dimensione minima che deve avere una cartella per essere visualizzata.  Non è comodissimo, perché la dimensione va specificata in byte, però permette di filtrare rapidamente le cartelle più grandi, come in questo caso in cui ho scelto di visualizzare solo le cartelle più grandi di 1 MB (ovvero 1000000 byte).&lt;/p&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2023-05-03-come-controllare-lo-spazio-occupato-sul-mac-con-il-terminale/du-home-threshold.png&#34; alt=&#34;&#34;&gt;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;code&gt;-I&lt;/code&gt; seguito dal percorso di una cartella fra virgolette: permette di escludere la cartella specificata dal conteggio dello spazio occupato. È possibile usare una espressione regolare per escludere più cartelle in un solo colpo.&lt;/p&gt;&#xA;&lt;p&gt;Ad esempio, &lt;code&gt;-I &amp;quot;Library&amp;quot;&lt;/code&gt;, esclude la sola cartella &lt;code&gt;Library&lt;/code&gt;, oppure &lt;code&gt;-I &amp;quot;D*&amp;quot;&lt;/code&gt; esclude tutte le cartelle che iniziano con il punto o infine, come è mostrato qui sotto, &lt;code&gt;-I &amp;quot;.[a-z]&amp;quot;&lt;/code&gt; che esclude dalla visualizzazione tutte le cartelle il cui nome inizia con il punto seguito da una lettera maiuscola o minuscola (sono le cosiddette cartelle nascoste che contengono i file di configurazione di certe applicazioni e che in genere non sono molto grandi).&lt;/p&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2023-05-03-come-controllare-lo-spazio-occupato-sul-mac-con-il-terminale/du-home-exclude.png&#34; alt=&#34;&#34;&gt;&lt;/li&gt;&#xA;&lt;li&gt;&#xA;&lt;p&gt;&lt;code&gt;-k&lt;/code&gt;, &lt;code&gt;-m&lt;/code&gt;, &lt;code&gt;-g&lt;/code&gt;: forzano &lt;code&gt;du&lt;/code&gt; a riportare tutte le dimensioni rispettivamente in kB, MB o GB. Analogamente ad &lt;code&gt;-h&lt;/code&gt;, le dimensioni sono espresse in multipli di 1024. Se sulla stessa riga di comando si inserisce più di uno switch &lt;em&gt;dimensionale&lt;/em&gt;, &lt;code&gt;-g&lt;/code&gt;, &lt;code&gt;-h&lt;/code&gt;, &lt;code&gt;-k&lt;/code&gt;, &lt;code&gt;-m&lt;/code&gt; e &lt;code&gt;--si&lt;/code&gt;, viene utilizzato solo l&amp;rsquo;ultimo specificato.&lt;/p&gt;&#xA;&lt;p&gt;Questi switch servono soprattutto quando si vogliono ordinare le directory in base alle dimensioni, inviando l&amp;rsquo;output di &lt;code&gt;du&lt;/code&gt; al comando &lt;code&gt;sort -n -r&lt;/code&gt;, come nell&amp;rsquo;esempio qui sotto (dato che con questi switch 1 GB corrisponde a 1024 MB, i valori riportati qui sotto sono leggermente diversi rispetto a quelli dell&amp;rsquo;immagine precedente che usa &lt;code&gt;--si&lt;/code&gt;, e quindi i multipli di 1000).&lt;/p&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2023-05-03-come-controllare-lo-spazio-occupato-sul-mac-con-il-terminale/du-home-sort.png&#34; alt=&#34;&#34;&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h4 id=&#34;ma-ne-vale-la-pena&#34;&gt;Ma ne vale la pena?&lt;/h4&gt;&#xA;&lt;p&gt;Ma perché usare &lt;code&gt;du&lt;/code&gt; quando abbiamo a disposizione  il Finder? Prima di tutto perché il Terminale è molto più efficiente, con il Finder possiamo esaminare una sola cartella alla volta, il Terminale invece ci permette di analizzare lo stato un gran numero di cartelle tutte insieme, spostandosi molto più velocemente fra una cartella e l&amp;rsquo;altra rispetto a quanto sia possibile fare con il Finder.&lt;/p&gt;&#xA;&lt;p&gt;Un altro vantaggio non da poco è la possibilità di salvare su un file l&amp;rsquo;output del comando &lt;code&gt;du&lt;/code&gt;, in modo da poterlo esaminare con calma in un editor di testo, o magari perché vogliamo tenere traccia dello stato delle cartelle nel corso del tempo. Ad esempio potrei salvare nel file &lt;code&gt;du.txt&lt;/code&gt; sul Desktop l&amp;rsquo;elenco completo delle cartelle contenute in &lt;code&gt;Home&lt;/code&gt;,&lt;/p&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2023-05-03-come-controllare-lo-spazio-occupato-sul-mac-con-il-terminale/du-home-file.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;per poi esaminarlo con calma con TextMate o BBEdit, oppure direttamente nel Terminale a colpi di &lt;code&gt;awk&lt;/code&gt;, &lt;code&gt;grep&lt;/code&gt; e &lt;code&gt;sed&lt;/code&gt; e di espressioni regolari (ma questo richiederebbe almeno un articolo a sé stante).&lt;/p&gt;&#xA;&lt;p&gt;Infine, abbiamo appena scoperto che il Finder &lt;a href=&#34;https://eclecticlight.co/2023/04/17/the-finder-confuses-with-wildly-inaccurate-figures-for-available-space/&#34;&gt;non è molto affidabile&lt;/a&gt; quando si tratta di calcolare lo spazio occupato in un disco formattato in APFS, per cui meglio sentire un&amp;rsquo;altra campana. In questo caso specifico, il Finder mi dice che la mia &lt;code&gt;Home&lt;/code&gt; occupa 130.7 GB&lt;/p&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2023-05-03-come-controllare-lo-spazio-occupato-sul-mac-con-il-terminale/finder-home-size.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;mentre secondo &lt;code&gt;du&lt;/code&gt; sono solo 128 GB. Non è una grande differenza, però c&amp;rsquo;è da chiedersi chi ha ragione.&lt;/p&gt;&#xA;&lt;p&gt;Se queste considerazioni non bastano a convincervi, nel &lt;a href=&#34;https://melabit.com/it/2023/05/16/come-controllare-lo-spazio-occupato-sul-mac-con-il-terminale-gli-strumenti-grafici/&#34;&gt;prossimo post&lt;/a&gt; troverete delle soluzioni alternative utili a visualizzare rapidamente lo spazio occupato sul vostro disco. A presto!&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;Inoltre, il numero di blocchi riportati da &lt;code&gt;du&lt;/code&gt; varia a seconda del sistema operativo e della configurazione del file system, rendendo ancora più difficile la comprensione della dimensione effettiva dei file.&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>Ventoy, il boot manager per i geek curiosi - Installazione e uso</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2022/11/14/ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/</link>
      <pubDate>Mon, 14 Nov 2022 06:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2022/11/14/ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/</guid>
      <description>&lt;p&gt;Come dicevo nella &lt;a href=&#34;https://melabit.com/it/2022/11/08/ventoy-il-boot-manager-per-i-geek-curiosi-introduzione/&#34;&gt;prima parte&lt;/a&gt;, Ventoy è un programma open source che fa una cosa sola, ma la fa molto bene: avviare le immagini in formato &lt;code&gt;iso&lt;/code&gt; contenute nella chiavetta USB (o nel disco SSD esterno) su cui è installato.&lt;/p&gt;&#xA;&lt;p&gt;E allora, dopo avervi incuriosito (spero!), vediamo come si installa e si usa Ventoy.&lt;/p&gt;&#xA;&lt;p&gt;Tutte le descrizioni che seguono si basano su una installazione di Ventoy in una macchina virtuale di Parallels Desktop (da 32 GB, per essere precisi). Ho usato questo sistema perché è più facile fare degli screenshot decenti, ma posso garantire che tutto quello che dirò può essere replicato al 100% su una chiavetta USB reale.&lt;/p&gt;&#xA;&lt;h4 id=&#34;installazione-di-ventoy&#34;&gt;Installazione di Ventoy&lt;/h4&gt;&#xA;&lt;p&gt;Per installare &lt;a href=&#34;https://www.ventoy.net/en/index.html&#34;&gt;Ventoy&lt;/a&gt;, la prima cosa da fare è copiare l&amp;rsquo;&lt;a href=&#34;https://github.com/ventoy/Ventoy/releases&#34;&gt;immagine &lt;code&gt;iso&lt;/code&gt;&lt;/a&gt; della versione più recente sulla chiavetta USB. A questo scopo, consiglio di usare &lt;a href=&#34;https://www.balena.io/etcher/&#34;&gt;balenaEtcher&lt;/a&gt; che funziona molto bene e gira perfettamente sulla triade Linux/macOS/Windows. In alternativa si possono usare &lt;a href=&#34;https://unetbootin.github.io/&#34;&gt;UNetbootin&lt;/a&gt; o &lt;a href=&#34;https://rufus.ie/en/&#34;&gt;Rufus&lt;/a&gt;, ma quest&amp;rsquo;ultimo gira solo su Windows.&lt;/p&gt;&#xA;&lt;p&gt;Usare balenaEtcher è facilissimo, basta lanciare il programma e seguire la procedura guidata, selezionando nella prima schermata la chiavetta USB da utilizzare,&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; e nella seconda l&amp;rsquo;immagine &lt;code&gt;iso&lt;/code&gt; di Ventoy. L&amp;rsquo;unica cosa su cui stare davvero attenti è la scelta della chiavetta. Per fortuna  balenaEtcher non ci fa sovrascrivere il disco da cui abbiamo effettuato l&amp;rsquo;avvio del sistema operativo ma, se oltre alla chiavetta USB  abbiamo altri dischi esterni, è meglio prendersi qualche momento e controllare con cura di aver scelto il disco giusto.&lt;/p&gt;&#xA;&lt;p&gt;Una volta completata la copia dell&amp;rsquo;immagine &lt;code&gt;iso&lt;/code&gt; di Ventoy, bisogna riavviare il PC dalla chiavetta USB per installare e configurare il programma. I dettagli su come avviare il computer da una unità USB cambiano da PC a PC, ma in genere si usa un &lt;a href=&#34;https://www.tomshardware.com/reviews/bios-keys-to-access-your-firmware,5732.html&#34;&gt;tasto speciale&lt;/a&gt; (quasi sempre &lt;code&gt;F2&lt;/code&gt;, &lt;code&gt;F12&lt;/code&gt; oppure &lt;code&gt;DELETE&lt;/code&gt;) per accedere al BIOS o all&amp;rsquo;UEFI e selezionare la chiavetta USB come disco di avvio principale, oppure un&amp;rsquo;altro tasto (in genere &lt;code&gt;ESC&lt;/code&gt; o &lt;code&gt;F10&lt;/code&gt;, ma ogni produttore di PC e di schede madri ha le sue idee) per far comparire un menu da cui scegliere il disco di avvio.&lt;/p&gt;&#xA;&lt;p&gt;Per pigrizia ho sempre usato Ventoy su dei normali PC e non ho mai provato ad usarlo su un Mac Intel, ma non c&amp;rsquo;è motivo perché non funzioni. In questo caso, bisogna solo ricordarsi di &lt;a href=&#34;https://melabit.com/it/2019/08/19/i-dieci-e-piu-modi-diversi-per-avviare-un-mac/&#34;&gt;avviare il Mac premendo il tasto &lt;code&gt;ALT&lt;/code&gt;&lt;/a&gt; (⌥), scegliendo come disco di avvio la chiavetta USB su cui è installato Ventoy.&lt;/p&gt;&#xA;&lt;p&gt;Ventoy usa di default il cinese come lingua dell&amp;rsquo;interfaccia. È una cosa piuttosto strana visto che è un programma destinato chiaramente ad un pubblico internazionale, ma è così.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-first-boot-chinese.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-first-boot-chinese.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Per fortuna è molto facile passare ad una lingua per noi più comprensibile, come l&amp;rsquo;italiano o l&amp;rsquo;inglese. Quando posso, io preferisco usare l&amp;rsquo;inglese, perché le traduzioni spesso stravolgono il significato di certi termini,&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-choose-language-english.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-choose-language-english.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&#xA;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-first-boot-english.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-first-boot-english.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;ma per chi vuole è disponibile anche l&amp;rsquo;interfaccia nella nostra lingua.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-choose-language-italian.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-choose-language-italian.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&#xA;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-first-boot-italian.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-first-boot-italian.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Arrivati a questo punto, si tratta di cliccare su &lt;code&gt;Device&lt;/code&gt; e scegliere il dispositivo su cui installare Ventoy, che chiaramente deve essere la chiavetta USB. Se sbagliate la scelta del dispositivo correte il rischio di danneggiare qualche altro disco del vostro computer, per cui fate &lt;strong&gt;molta attenzione&lt;/strong&gt; alla dimensione del dispositivo in GB, che deve corrispondere a quella della vostra chiavetta.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-first-boot-device.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-first-boot-device.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Se per qualche motivo non trovate la chiavetta USB fra i dispositivi elencati, cliccate sulla voce di menu Opzioni e selezionate &amp;ldquo;Visualizza tutti i dispositivi&amp;rdquo;. Ora la chiavetta dovrebbe comparire senza problemi.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-first-boot-no-device.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-first-boot-no-device.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&#xA;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-first-boot-options.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-first-boot-options.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&#xA;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-first-boot-all-devices.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-first-boot-all-devices.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&#xA;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-first-boot-device.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-first-boot-device.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Bisogna ora premete il tasto &lt;code&gt;Install&lt;/code&gt; per installare Ventoy sulla chiavetta. Comparirà, e per ben due volte!, un messaggio che ci avvisa che la chiavetta sarà formattata, distruggendone tutto il contenuto. Ma il contenuto della chiavetta è stato già cancellato quando abbiamo copiato l&amp;rsquo;&lt;code&gt;iso&lt;/code&gt; con balenaEtcher, per cui mi pare un avviso inutile.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-first-boot-installation.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-first-boot-installation.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&#xA;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-first-boot-installation-double-check.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-first-boot-installation-double-check.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Bastano pochi secondi e la chiavetta USB è pronta per essere usata.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-installation-done.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-installation-done.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Il processo di installazione crea due partizioni sulla chiavetta USB: una prima partizione, denominata &lt;code&gt;VentoyLiveCD&lt;/code&gt;, contenente il programma vero e proprio, che viene eseguito automaticamente avviando il PC dalla chiavetta (in realtà, come dice lo stesso nome, più che un programma si tratta di una mini distribuzione &lt;em&gt;live&lt;/em&gt; di Linux), e un&amp;rsquo;altra partizione, &lt;code&gt;Ventoy&lt;/code&gt;, che occupa il resto della chiavetta e che conterrà le immagini &lt;code&gt;iso&lt;/code&gt; dei sistemi operativi.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-partitions.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-partitions.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;copia-delle-immagini-iso-sulla-chiavetta&#34;&gt;Copia delle immagini &lt;code&gt;iso&lt;/code&gt; sulla chiavetta&lt;/h4&gt;&#xA;&lt;p&gt;A questo punto bisogna spegnere il computer, togliere la chiavetta USB e riavviare il sistema operativo principale, perché prima di andare avanti con Ventoy bisogna copiare sulla chiavetta le immagini in formato &lt;code&gt;iso&lt;/code&gt; (ma anche &lt;a href=&#34;https://melabit.com/it/2022/11/08/ventoy-il-boot-manager-per-i-geek-curiosi-introduzione/&#34;&gt;in altri formati&lt;/a&gt;) che vogliamo provare.&lt;/p&gt;&#xA;&lt;p&gt;La chiavetta continua ad apparire al sistema operativo come una comunissima unità USB, con l&amp;rsquo;unica differenza che ora, inserendola di nuovo in una porta del computer, compariranno due dischi esterni diversi, uno corrispondente alla partizione che contiene i file del programma e l&amp;rsquo;altro da usare per le immagini &lt;code&gt;iso&lt;/code&gt;. Distinguerli è facilissimo, il disco che ci interessa si chiama solo &lt;code&gt;Ventoy&lt;/code&gt; ed è in questo momento completamente vuoto. L&amp;rsquo;altro disco, &lt;code&gt;VentoyLiveCD&lt;/code&gt;, invece, non va mai toccato, anzi è preferibile espellerlo ogni volta che si copiano delle nuove &lt;code&gt;iso&lt;/code&gt; sulla chiavetta (su macOS e Linux è sempre possibile espellere una sola partizione, non sono sicuro al 100% che si possa fare la stessa cosa con Windows).&lt;/p&gt;&#xA;&lt;p&gt;Dopo aver copiato sul disco &lt;code&gt;Ventoy&lt;/code&gt; le &lt;code&gt;iso&lt;/code&gt; che ci interessano, bisogna riavviare di nuovo il computer, scegliendo questa volta la chiavetta USB come disco di avvio. Comparirà un menu con la lista delle &lt;code&gt;iso&lt;/code&gt; presenti sulla chiavetta, più o meno come nell&amp;rsquo;immagine qui sotto.&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-iso-to-test.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-iso-to-test.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;uso-pratico-di-ventoy&#34;&gt;Uso pratico di Ventoy&lt;/h4&gt;&#xA;&lt;p&gt;Fra tutte le immagini in formato &lt;code&gt;iso&lt;/code&gt; presenti sulla mia chiavetta, scelgo di avviare &lt;a href=&#34;https://elementary.io/&#34;&gt;Elementary OS&lt;/a&gt;, che è una delle distribuzioni di Linux più curate dal punto di vista grafico e che non a caso è fortemente ispirata ai canoni visivi di macOS. Per farlo mi basta selezionare, come si vede nella immagine precedente, la distribuzione con i tasti freccia e premere &lt;code&gt;Invio&lt;/code&gt;. Comparirà una prima schermata che mi permette di scegliere se provare o installare Elementary OS, oppure se accedere alle opzioni avanzate.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-elementary-os-booting-1.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-elementary-os-booting-1.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Se non faccio nulla, dopo alcuni secondi di attesa inizierà il classico processo di avvio di Linux, con il mare di scritte che scorrono velocemente sullo schermo,&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-elementary-os-booting-2.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-elementary-os-booting-2.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&#xA;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-elementary-os-booting-3.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-elementary-os-booting-3.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;alla fine del quale comparirà una prima schermata di configurazione di base di Elementary OS, dove potremo scegliere la lingua e la tastiera. Io, come al solito, scelgo l&amp;rsquo;Inglese/USA, ma con tastiera italiana.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-elementary-os-welcome.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-elementary-os-welcome.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Immediatamente dopo Elementary OS mi chiederà se voglio installare o solo provare il sistema operativo.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-elementary-os-try-or-install.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-elementary-os-try-or-install.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Io scelgo di provarlo, e poco dopo compare il desktop in tutta la sua gloria. Niente però mi impedisce di usare Ventoy per installare, invece che solo provare, Elementary OS (o una qualunque delle altre &lt;code&gt;iso&lt;/code&gt; contenute sulla chiavetta) sul disco rigido del computer.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-elementary-os-desktop.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-elementary-os-desktop.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Una volta finita la prova, posso semplicemente spegnere il sistema operativo &lt;em&gt;live&lt;/em&gt;, annullando tutte le modifiche al sistema e tornando di nuovo alla schermata iniziale di Ventoy.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-elementary-os-shutdown-1.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-elementary-os-shutdown-1.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&#xA;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-elementary-os-shutdown-2.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-elementary-os-shutdown-2.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Quanto detto vale per qualunque altra distribuzione di Linux supportata da Ventoy (cioè quasi tutte, o almeno quasi tutte quelle degne di essere usate), come si può vedere nelle schermate qui sotto riservate a &lt;a href=&#34;https://www.bunsenlabs.org/&#34;&gt;BunsenLabs Linux&lt;/a&gt;, un&amp;rsquo;altra distribuzione di Linux che mi piace molto,&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-lithium-boot-screen.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-lithium-boot-screen.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&#xA;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-lithium-desktop-info.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-lithium-desktop-info.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&#xA;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-lithium-desktop.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-lithium-desktop.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;e che (ma qui divago un po&amp;rsquo;) ha la particolarità dei menu che compaiono alla pressione del tasto destro del mouse in corrispondenza della posizione del puntatore; una funzione ormai desueta (dovrebbe essere stata introdotta in &lt;a href=&#34;https://en.wikipedia.org/wiki/NeXTSTEP&#34;&gt;NeXTSTEP&lt;/a&gt;, il sistema operativo progenitore di Mac OS X e macOS) ma che, una volta fatta l&amp;rsquo;abitudine, si dimostra una vera comodità.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-lithium-menu.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-lithium-menu.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Il discorso fatto finora può essere ripetuto pari pari tutte le altre distribuzioni di Linux supportate da Ventoy, non solo per quelle di nicchia come quelle mostrate finora, ma anche per le distribuzioni più conosciute, come è senza dubbio &lt;a href=&#34;https://ubuntu.com/&#34;&gt;Ubuntu&lt;/a&gt;. Le immagini che seguono mostrano la sequenza di avvio della &lt;em&gt;live&lt;/em&gt; di Ubuntu dalla chiavetta di Ventoy, partendo dal menu di avvio di Grub, per arrivare alla scelta se provare o installare Ubuntu e fino all&amp;rsquo;immagine del Desktop.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-ubuntu-booting.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-ubuntu-booting.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&#xA;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-ubuntu-try-or-install.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-ubuntu-try-or-install.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&#xA;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-ubuntu-try.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-ubuntu-try.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&#xA;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-ubuntu-desktop.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-ubuntu-desktop.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Ma quanto detto vale anche per sistemi operativi meno diffusi come &lt;a href=&#34;https://www.freebsd.org/&#34;&gt;FreeBSD&lt;/a&gt;, uno dei tanti derivati da BSD Unix, a dimostrazione dell&amp;rsquo;estrema flessibilità di Ventoy.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-freebsd-booting.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-freebsd-booting.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&#xA;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-freebsd-desktop.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-freebsd-desktop.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;e-windows&#34;&gt;E Windows?&lt;/h4&gt;&#xA;&lt;p&gt;Chiaramente possiamo usare la chiavetta di Ventoy anche per installare Windows, anzi probabilmente è proprio questo lo scenario di uso più comune. Come già notato nella &lt;a href=&#34;https://melabit.com/it/2022/11/08/ventoy-il-boot-manager-per-i-geek-curiosi-introduzione/&#34;&gt;prima parte&lt;/a&gt;, in questo caso il vantaggio principale è poter avere a disposizione, in un&amp;rsquo;unica unità USB, le &lt;code&gt;iso&lt;/code&gt; di tutte le versioni di Windows che ci potrebbero servire, potendo scegliere con comodità di volta in volta quale installare.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-windows-10-startup.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-windows-10-startup.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&#xA;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-windows-10-installation.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-windows-10-installation.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Inutile dire che potremo solo &lt;strong&gt;installare&lt;/strong&gt; Windows, non provarlo &lt;em&gt;live&lt;/em&gt; come si può fare con tante distribuzioni di Linux. Ma non si può avere tutto nella vita.&lt;/p&gt;&#xA;&lt;h4 id=&#34;gli-altri-strumenti-integrati-in-ventoy&#34;&gt;Gli altri strumenti integrati in Ventoy&lt;/h4&gt;&#xA;&lt;p&gt;Guardando con attenzione la schermata iniziale di Ventoy si nota la presenza di alcune opzioni attivabili con i tasti funzione della tastiera del PC, oltre alla schermata di aiuto che si richiama con il tasto &lt;code&gt;h&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-iso-to-test.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-iso-to-test.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&#xA;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-help.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-help.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;La prima opzione, che si richiama con &lt;code&gt;F1&lt;/code&gt;, non ho mai avuto bisogno di usarla e non so bene se e quanto sia efficace (ma l&amp;rsquo;utilità di &lt;code&gt;F1&lt;/code&gt; è &lt;a href=&#34;https://www.ventoy.net/en/doc_memdisk.html&#34;&gt;spiegato bene qui&lt;/a&gt;). &lt;code&gt;F2&lt;/code&gt; invece permette di elencare le &lt;code&gt;iso&lt;/code&gt; salvate sulla chiavetta, mentre &lt;code&gt;F3&lt;/code&gt; cambia la modalità di visualizzazione dell&amp;rsquo;elenco di &lt;code&gt;iso&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-iso-to-test.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-iso-to-test.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Molto più interessante è &lt;code&gt;F4&lt;/code&gt;, con cui è possibile eseguire una scansione del disco locale alla ricerca di installazioni di Windows o Linux, che Ventoy cercherà di avviare con i suoi strumenti integrati (ed è proprio qui che Ventoy si comporta come un &lt;a href=&#34;https://melabit.com/it/2022/11/08/ventoy-il-boot-manager-per-i-geek-curiosi-introduzione/#comments&#34;&gt;boot manager&lt;/a&gt; generico, particolarmente utile quando per qualche motivo Windows, o magari anche Linux, si rifiuta di partire).&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-f4.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-f4.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Con il tasto &lt;code&gt;F5&lt;/code&gt;, infine, si accede al menu &lt;code&gt;Tools&lt;/code&gt;, che permette di configurare il programma cambiando la tastiera, la risoluzione dello schermo, il tema e così via. Non sono cose fondamentali per uno strumento come Ventoy, però ogni tanto possono servire, quindi è comodo che ci siano.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-f5.png&#34;&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-14-ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/ventoy-test-f5.png&#34; alt=&#34;&#34;&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;conclusioni&#34;&gt;Conclusioni&lt;/h4&gt;&#xA;&lt;p&gt;In questo articolo ho cercato di descrivere dettagliatamente come usare Ventoy. L&amp;rsquo;ho fatto in modo molto puntiglioso, lo ammetto, perché programmi di questo tipo, se usati in modo sbagliato, possono fare gravi danni al computer. Si pensi a cosa può succedere se si sceglie il disco sbagliato al momento dell&amp;rsquo;installazione di Ventoy sulla chiavetta.&lt;/p&gt;&#xA;&lt;p&gt;Ma c&amp;rsquo;è anche un altro motivo: utility di questo tipo non sono quasi mai di uso intuitivo e richiedono la lettura attenta della documentazione per essere usate al meglio (io stesso, la prima volta, ci ho messo un po&amp;rsquo; a capire il meccanismo di installazione e di uso di Ventoy, e chiaramente non mi aveva sfiorato l&amp;rsquo;idea di leggere prima il manuale!). Un articolo come questo può rivelarsi una introduzione sufficiente all&amp;rsquo;uso di Ventoy  per i normali scenari di uso, riservando la &lt;a href=&#34;https://www.ventoy.net/en/doc_start.html&#34;&gt;documentazione ufficiale&lt;/a&gt; alla soluzione dei casi particolari.&lt;/p&gt;&#xA;&lt;h4 id=&#34;ancora-una-cosa&#34;&gt;Ancora una cosa&amp;hellip;&lt;/h4&gt;&#xA;&lt;p&gt;Prima di finire, segnalo che in rete si può trovare uno strumento integrato di diagnostica e riparazione del sistema operativo basato su Ventoy, che contiene anche una versione portatile di Windows 10 (ringrazio l&amp;rsquo;amico MailMaster C per il link). Lo strumento si chiama &lt;a href=&#34;https://medicatusb.com/&#34;&gt;MediCat USB&lt;/a&gt; e in teoria potrebbe essere utile per riparare una installazione di Windows non più funzionante.&lt;/p&gt;&#xA;&lt;p&gt;Diciamo però che non mi convince: il sito è realizzato in modo dilettantesco, la documentazione è assente, non c&amp;rsquo;è uno straccio di prova che i tool integrati siano quelli originali e non siano invece infettati da malware di vario tipo (mai sentito parlare di &lt;em&gt;hash&lt;/em&gt;?). Di conseguenza, io non mi fiderei a usarlo e preferirei costruirmi uno strumento analogo &lt;em&gt;in casa&lt;/em&gt;, scaricando le varie utility dalle fonti originali. A tempo perso potrei cercare di costruire una lista di ciò che può essere utile, spiegando come si può integrare il tutto attraverso Ventoy, ma temo che non avverrà a breve.&lt;/p&gt;&#xA;&lt;p&gt;In ogni caso sono convinto che, in caso di malfunzionamenti sufficientemente gravi, sia meglio reinstallare Windows da zero piuttosto che provare a riparare una installazione che non funziona. Questo approccio permette tante volte di risparmiare tempo, riparare una installazione di Windows è in molti casi una impresa disperata, con il vantaggio aggiuntivo di partire di nuovo da un sistema &lt;em&gt;fresco&lt;/em&gt;, con meno aggiornamenti da una versione all&amp;rsquo;altra di Windows, meno driver che magari non servono più, meno programmi che si avviano da soli, tutte cose che con Windows non guastano mai.&lt;/p&gt;&#xA;&lt;p&gt;Resta il problema di come recuperare i documenti e tutti i file vari contenuti nelle cartelle dell&amp;rsquo;utente (o degli utenti) del PC. Ma per questo compito è molto più veloce, e soprattutto affidabile, usare Linux piuttosto che Windows.&lt;/p&gt;&#xA;&lt;p&gt;L&amp;rsquo;ho fatto più volte per amici e colleghi, in alcuni casi mi trovavo di fronte a persone terrorizzate di perdere tutti i loro dati, e tutto è sempre finito bene. Una buona distribuzione &lt;em&gt;live&lt;/em&gt; di Linux &amp;ndash; consiglio in questo caso &lt;a href=&#34;https://ubuntu.com/&#34;&gt;Ubuntu&lt;/a&gt; che è in grado di riconoscere in modo molto completo l&amp;rsquo;hardware del PC &amp;ndash; avviata tramite una chiavetta preparata ad hoc o, meglio ancora, usando Ventoy, può permettere di accedere facilmente al disco del PC e di copiare in tutta tranquillità i dati utente su un disco esterno o su un NAS. Fatto questo, reinstallare Windows da zero e ritrasferire i dati utente dal disco esterno al PC, consente di tornare operativi in poco tempo e senza troppi patemi d&amp;rsquo;animo.&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;Si può anche usare anche un disco SSD esterno, guadagnando parecchio in velocità di avvio, ma da ora in poi non lo ripeterò più.&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;Le directory &lt;code&gt;.fseventsd&lt;/code&gt; e &lt;code&gt;.Spotlight-V100&lt;/code&gt; sono create automaticamente da macOS e sono normalmente invisibili nel Finder. Qui non servono e possono tranquillamente essere cancellate.&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>Ventoy, il boot manager per i geek curiosi - Introduzione</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2022/11/08/ventoy-il-boot-manager-per-i-geek-curiosi-introduzione/</link>
      <pubDate>Tue, 08 Nov 2022 06:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2022/11/08/ventoy-il-boot-manager-per-i-geek-curiosi-introduzione/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://www.ventoy.net/&#34;&gt;Ventoy&lt;/a&gt; è senza dubbio un software di nicchia, buono soprattutto per i tecnici e i &lt;em&gt;geek&lt;/em&gt; curiosi di esplorare il funzionamento dei sistemi operativi. Non serve a tanti, ma se serve diventa subito indispensabile.&lt;/p&gt;&#xA;&lt;h4 id=&#34;cosè-ventoy&#34;&gt;Cos&amp;rsquo;è Ventoy?&lt;/h4&gt;&#xA;&lt;p&gt;Ventoy è un &lt;a href=&#34;https://github.com/ventoy/Ventoy&#34;&gt;software open source&lt;/a&gt; con cui si può creare una chiavetta USB da cui eseguire gli installatori dei principali sistemi operativi a partire dalle loro immagini in formato &lt;code&gt;iso&lt;/code&gt; (ma anche da quelle in formati meno comuni, come &lt;code&gt;wim&lt;/code&gt;, &lt;code&gt;img&lt;/code&gt; o &lt;code&gt;vhd&lt;/code&gt;). Sono &lt;a href=&#34;https://www.ventoy.net/en/isolist.html&#34;&gt;supportate&lt;/a&gt; tutte le versioni di Windows dalla 7 in poi, così come un gran numero di distribuzioni di Linux e di derivati di BSD Unix, ChromeOS e perfino i principali virtualizzatori &lt;em&gt;bare-metal&lt;/em&gt;.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;In pratica, se vogliamo installare un sistema operativo su un PC, invece di trasferirne l&amp;rsquo;immagine &lt;code&gt;iso&lt;/code&gt; su una chiavetta dedicata, usando strumenti come &lt;a href=&#34;https://www.balena.io/etcher/&#34;&gt;balenaEtcher&lt;/a&gt; o &lt;a href=&#34;https://unetbootin.github.io/&#34;&gt;UNetbootin&lt;/a&gt; (entrambi multipiattaforma) o eventualmente &lt;a href=&#34;https://rufus.ie/en/&#34;&gt;Rufus&lt;/a&gt; (solo per Windows), possiamo copiare direttamente l&amp;rsquo;immagine &lt;code&gt;iso&lt;/code&gt; sulla chiavetta USB dove abbiamo installato Ventoy (i dettagli li troverete la &lt;a href=&#34;https://melabit.com/it/2022/11/14/ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/&#34;&gt;prossima volta&lt;/a&gt;), avviare il computer da questa chiavetta e lanciare l&amp;rsquo;installatore direttamente da lì.&lt;/p&gt;&#xA;&lt;p&gt;Cosa cambia? Niente se lo facciamo una sola volta, parecchio se dobbiamo lavorare su più macchine, se vogliamo provare le nuove distribuzioni di Linux o di BSD o, in generale, se ci piace &lt;em&gt;giocare&lt;/em&gt; con queste cose.&lt;/p&gt;&#xA;&lt;p&gt;Perché, a differenza del metodo tradizionale, una chiavetta abbastanza grande può contenere anche decine di file &lt;code&gt;iso&lt;/code&gt; diversi, da lanciare a seconda della necessità o dell&amp;rsquo;estro del momento. Inutile dire che al posto di una chiavetta potremmo anche usare un disco SSD esterno, anche da soli 128 GB, guadagnando parecchio nella velocità di avvio delle varie &lt;code&gt;iso&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p style=&#34;border-style:solid; border-width: medium; border-color:coral; background-color:lightyellow; padding:1em;&#34;&gt;&#xA;Sia che usiate una chiavetta o un disco SSD esterno, è sempre conveniente astenersi dai modelli di marche sconosciute o poco affidabili. È vero che per questo uso specifico l&#39;affidabilità non è fondamentale, però è altrettanto vero che, se si guasta la chiavetta, bisogna ripetere da zero tutto il processo di installazione/configurazione di Ventoy e, soprattutto, la copia delle &lt;code&gt;iso&lt;/code&gt;.  È una bella perdita di tempo, per cui è meglio non rischiare solo per risparmiare qualche euro.[^2]&#xA;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-08-ventoy-il-boot-manager-per-i-geek-curiosi-introduzione/ventoy-windows-10-startup.png&#34; alt=&#34;&#34;&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-08-ventoy-il-boot-manager-per-i-geek-curiosi-introduzione/ventoy-windows-10-installation.png&#34; alt=&#34;&#34;&gt;&#xA;&lt;em&gt;Immagini dell&amp;rsquo;installatore di Windows 10, eseguito da una chiavetta USB con installato Ventoy.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Ventoy può naturalmente essere usato per installare Windows, ma diventa ancora più utile con le distribuzioni di Linux o di BSD, i cui installatori ormai eseguono quasi sempre una versione &lt;em&gt;Live&lt;/em&gt; del sistema operativo, con la quale è possibile provare le funzioni della distribuzione senza rischiare di far danni, sicuri che tutte le modifiche saranno cancellate al riavvio.&lt;/p&gt;&#xA;&lt;p&gt;In questo caso, il vantaggio principale di Ventoy risiede nel fatto che si può usare una sola chiavetta per eseguire tutte le distribuzioni Live che vogliamo, senza dover riavviare ogni volta il sistema operativo principale solo per creare una chiavetta USB &lt;em&gt;ad hoc&lt;/em&gt; con la nuova distribuzione da provare. Una volta trovato ciò che ci aggrada, si può anche decidere di installarlo permanentemente sul computer sempre utilizzando Ventoy.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-08-ventoy-il-boot-manager-per-i-geek-curiosi-introduzione/ventoy-elementary-os-try-or-install.png&#34; alt=&#34;&#34;&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-08-ventoy-il-boot-manager-per-i-geek-curiosi-introduzione/ventoy-lithium-boot-screen.png&#34; alt=&#34;&#34;&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-08-ventoy-il-boot-manager-per-i-geek-curiosi-introduzione/ventoy-lithium-desktop-info.png&#34; alt=&#34;&#34;&gt;&#xA;&lt;em&gt;Esempi di distribuzioni Live di Linux eseguite tramite Ventoy.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Non c&amp;rsquo;è bisogno di dire che Ventoy è uno strumento fondamentale per chi fa assistenza tecnica e si trova a dover installare (o reinstallare) di continuo le varie versioni di Windows sui computer dei clienti, o che deve recuperare i dati da un computer che non si avvia più o che è infestato da virus e malware vario. Con una sola chiavetta può avere a disposizione tutte le &lt;code&gt;iso&lt;/code&gt; di cui ha bisogno, scegliendo di volta in volta lo strumento migliore da utilizzare in quel caso specifico.&lt;/p&gt;&#xA;&lt;h4 id=&#34;boot-manager&#34;&gt;Boot manager&lt;/h4&gt;&#xA;&lt;p&gt;Chi ha qualche capello bianco avrà riconosciuto in Ventoy il meccanismo di funzionamento di un boot manager.&lt;/p&gt;&#xA;&lt;p style=&#34;border-style:solid; border-width: medium; border-color:coral; background-color:lightyellow; padding:1em;&#34;&gt;&#xA;I boot manager hanno avuto il loro periodo di massima popolarità fra la fine degli anni &#39;90 e i primi anni 2000, quando era diventato normale per tanti utenti installare sul proprio PC una distribuzione di Linux (e spesso più di una) in parallelo all&#39;onnipresente Windows. Le versioni di Windows di quegli anni non permettevano di avviare altri sistemi operativi oltre a sé stessi, per cui era necessario usare dei boot manager di terze parti per riuscire ad usare indifferentemente Linux o Windows sulla stessa macchina. Io, ad esempio, usavo &lt;a href=&#34;https://gag.sourceforge.net&#34;&gt;GAG&lt;/a&gt;, che era molto flessibile e avviava praticamente tutto.&#xA;&lt;/br&gt;&#xA;Oggi la situazione è cambiata: la riduzione del costo dei computer associata alla disponibilità di processori potenti e di memorie di massa a stato solido velocissime ha reso molto più pratico dedicare ogni PC ad un solo scopo, oppure virtualizzare più sistemi operativi su una singola macchina, evitando così i noiosissimi riavvii da un sistema operativo all&#39;altro.&#xA;&lt;/br&gt;&#xA;Ma questo non significa che i boot manager di terze parti oggi siano caduti in disuso, anzi. Fra questi, il più noto è di sicuro &lt;a href=&#34;https://www.gnu.org/software/grub/&#34;&gt;GNU GRUB&lt;/a&gt;, usato praticamente da tutte le distribuzioni di Linux (ma GRUB è anche in grado di avviare qualunque altro sistema operativo installato sul computer). Poi ci sono &lt;a href=&#34;https://github.com/CloverHackyColor/CloverBootloader&#34;&gt;Clover&lt;/a&gt; e &lt;a href=&#34;https://macos86.gitbook.io/guida-opencore/introoc&#34;&gt;OpenCore&lt;/a&gt;, ampiamente utilizzati  nel mondo &lt;a href=&#34;https://hackintosh.com/&#34;&gt;Hackintosh&lt;/a&gt; per avviare macOS installato su un semplice PC. Chi usa Windows e vuole una maggiore flessibilità può utilizzare &lt;a href=&#34;https://neosmart.net/EasyBCD&#34;&gt;EasyBCD&lt;/a&gt; al posto dello strumento di avvio nativo, che definire limitato è poco.&#xA;&lt;/p&gt;&#xA;&lt;p&gt;E non si sbaglia, Ventoy si dimostra utilissimo anche in questo campo, perché la stessa chiavetta dove è installato Ventoy permette di avviare un computer su cui Windows (o Linux) si rifiuta di partire, eseguendo una ricerca a basso livello dei sistemi operativi installati sul disco, come si può vedere nell&amp;rsquo;immagine qui sotto. Con Linux succede di rado (e comunque GRUB riesce quasi sempre a metterci una pezza), ma per chi usa Windows è una manna dal cielo.&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2022-11-08-ventoy-il-boot-manager-per-i-geek-curiosi-introduzione/ventoy-boot-manager.png&#34; alt=&#34;&#34;&gt;&#xA;&lt;em&gt;Ventoy può anche essere usato per avviare un sistema operativo che si rifiuta di partire.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;alternative-a-ventoy&#34;&gt;Alternative a Ventoy?&lt;/h4&gt;&#xA;&lt;p&gt;L&amp;rsquo;unica alternativa a Ventoy che io conosca è &lt;a href=&#34;https://www.youtube.com/watch?v=ZSywLblIYa0&#34;&gt;questo disco SSD esterno&lt;/a&gt;, con aggiunto un piccolo schermo e una tastiera con cui scegliere l&amp;rsquo;&lt;code&gt;iso&lt;/code&gt; da avviare. Un bell&amp;rsquo;oggettino, non c&amp;rsquo;è che dire, che proprio per la sua stessa esistenza dimostra quanto sia sentita l&amp;rsquo;esigenza di avviare con facilità le &lt;code&gt;iso&lt;/code&gt; di svariati sistemi operativi. Purtroppo il &lt;a href=&#34;https://www.amazon.it/iodd-Mini-Secure-encrypted-Drive/dp/B07Y465VX1/&#34;&gt;prezzo non proprio popolare&lt;/a&gt; (almeno rispetto a quello che fa e alla capacità del disco) lo rende adatto solo a chi si occupa professionalmente di assistenza tecnica.&lt;/p&gt;&#xA;&lt;p&gt;Per usare Ventoy, invece, non è necessario essere dei professionisti o avere il budget di un professionista. Se volete provare facilmente più di una distribuzione di Linux o se siete l&amp;rsquo;amico che tutti chiamano quando hanno un guaio al computer, Ventoy diventa subito uno strumento praticamente indispensabile.&lt;/p&gt;&#xA;&lt;p&gt;Come introduzione  a Ventoy può bastare. Nella &lt;a href=&#34;https://melabit.com/it/2022/11/14/ventoy-il-boot-manager-per-i-geek-curiosi-installazione-e-uso/&#34;&gt;seconda parte&lt;/a&gt; i dettagli dell&amp;rsquo;installazione e dell&amp;rsquo;uso di questo strumento. A presto!&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;Argomento molto interessante di per sé, che spero di riuscire a trattare qui prima o poi.&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;C&amp;rsquo;è gente che si convince che il computer sia da buttare solo perché Windows non si avvia. E non esagero affatto.&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>Corsi e ricorsi</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2021/05/16/corsi-e-ricorsi/</link>
      <pubDate>Sun, 16 May 2021 12:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2021/05/16/corsi-e-ricorsi/</guid>
      <description>&lt;p&gt;Pensieri oziosi della domenica.&lt;/p&gt;&#xA;&lt;p&gt;Nel 1984 il Macintosh stupì il mondo con la sua interfaccia grafica, che permetteva di interagire con il computer tramite il mouse, i menu e le icone sullo schermo, invece di dover inserire laboriosamente i comandi arcani del DOS tramite la tastiera.&lt;/p&gt;&#xA;&lt;p&gt;Oggi però la vera potenza del computer è tornata ad esprimersi tramite il Terminale, con cui si possono &lt;a href=&#34;https://www.commandlinefu.com&#34;&gt;fare tantissime cose&lt;/a&gt; ed in modo così efficiente che, al confronto, l&amp;rsquo;interfaccia grafica sembra un reperto del passato.&lt;/p&gt;&#xA;&lt;p&gt;E dato che il Terminale è presente nativamente solo in Linux e macOS, anche Microsoft, per non perdere completamente il mondo degli sviluppatori e degli utenti più avanzati, dopo aver scopiazzato a piene mani l&amp;rsquo;interfaccia grafica del Macintosh nel suo Windows, ha ripetuto l&amp;rsquo;opera inserendo in Windows 10 uno strumento che emula un &lt;a href=&#34;https://docs.microsoft.com/it-it/windows/wsl/about&#34;&gt;ambiente Linux completo&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;hr style = &#34;border: none; &#xA;            border-top: 3px double #333; &#xA;            color: #333; &#xA;            overflow: visible; &#xA;            height: 5px; &#xA;            width: 50%; &#xA;            margin-left: auto; &#xA;            margin-right: auto;&#34;&#xA;&gt;&#xA;&#xA;&lt;p&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2021-05-16-corsi-e-ricorsi/1st_floor_computer_70s.jpg&#34; alt=&#34;&#34;&gt;&#xA;&amp;ndash; Fonte: &lt;a href=&#34;http://toto.lib.unca.edu/findingaids/photo/national_climatic_data_center/NCDC_interior.htm&#34;&gt;National Climatic Data Center&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Dalla fine degli anni &amp;lsquo;70 e per tutti gli anni &amp;lsquo;80 il mondo del &lt;em&gt;computing&lt;/em&gt; era diviso in rigorosamente in due: da un lato i computer &lt;em&gt;seri&lt;/em&gt;, grossi &lt;em&gt;mainframe&lt;/em&gt; nascosti in stanze condizionate e gestiti da sacerdoti in camice bianco, a cui solo pochi fortunati potevano accedere collegandosi in remoto tramite un videoterminale &lt;em&gt;stupido&lt;/em&gt;; dall&amp;rsquo;altro i &lt;em&gt;personal computer&lt;/em&gt;, oggetti costosi e fortemente limitati ma che permettevano a tutti di usare un computer  in casa o in ufficio. In pochi anni i personal computer sono cresciuti e hanno soppiantato i mainframe, rimasti solo in qualche azienda o centro di ricerca avanzato.&lt;/p&gt;&#xA;&lt;p&gt;Oggi che i personal computer sono ultrapotenti e alla portata di tutti, stanno diventando centrali i servizi &lt;em&gt;cloud&lt;/em&gt; come Amazon Web Services (AWS) o Google Cloud e Microsoft Azure, che permettono di usare dei sistemi di calcolo potenti e adattabili alle necessità del momento senza doversi sobbarcare dell&amp;rsquo;acquisto e della gestione di computer fisici.&lt;/p&gt;&#xA;&lt;p&gt;Magari fra qualche anno il modo normale di usare un computer sarà quello di collegarsi in remoto  ad un sistema cloud tramite un semplice portatile o tablet. E il cerchio si chiuderà un&amp;rsquo;altra volta.&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>Mac OS X, vent&#39;anni e non sentirli</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2021/03/24/mac-os-x-vent-anni-e-non-sentirli/</link>
      <pubDate>Wed, 24 Mar 2021 18:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2021/03/24/mac-os-x-vent-anni-e-non-sentirli/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2021-03-24-mac-os-x-vent-anni-e-non-sentirli/10-2-Jaguar-Command-Tab.png&#34; alt=&#34;&#34;&gt;&lt;br&gt;&#xA;&amp;ndash; &lt;em&gt;macOS Screenshot Library, &lt;a href=&#34;https://512pixels.net/projects/aqua-screenshot-library/mac-os-x-10-2-jaguar/&#34;&gt;Mac OS X 10.2 Jaguar&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Ricordo ancora benissimo lo stupore che provai la prima volta che vidi Mac OS X in un negozio di Torino. Era il 2003, era appena uscito Jaguar (la prima versione davvero usabile di Mac OS X), e l&amp;rsquo;interfaccia grafica del Mac che vedevo nella vetrina del negozio era davvero stupefacente. Anche i computer erano belli, in particolare l&amp;rsquo;&lt;a href=&#34;https://en.wikipedia.org/wiki/IMac_G4&#34;&gt;iMac G4&lt;/a&gt; e l&amp;rsquo;&lt;a href=&#34;https://en.wikipedia.org/wiki/IBook#iBook_G3_Dual_USB_%28%22Snow%22%29&#34;&gt;iBook G3 bianco&lt;/a&gt;, ma quello che li rendeva davvero straordinari era il fatto che accoppiassero così bene la potenza del motore Unix ad una interfaccia grafica da urlo.&lt;/p&gt;&#xA;&lt;p&gt;All&amp;rsquo;epoca usavo solo Linux, alcuni anni prima mi ero interstardito a dimostrare che si poteva usare un sistema operativo basato su Unix per il lavoro di tutti i giorni e c&amp;rsquo;ero riuscito benissimo. Office l&amp;rsquo;avevo sostituito con Open Office, per navigare usavo &lt;a href=&#34;https://it.wikipedia.org/wiki/Mozilla&#34;&gt;Mozilla&lt;/a&gt; (il browser derivato da Netscape che poi diventerà Firefox), per la posta c&amp;rsquo;era Thunderbird (che uso ancora oggi), e per il lavoro vero e proprio avevo una scelta più che abbondante di software open source adatti alle mie necessità.&lt;/p&gt;&#xA;&lt;p&gt;Da un giorno all&amp;rsquo;altro decisi di cambiare di nuovo e di tornare al Mac, che avevo abbandonato durante tutta la crisi degli anni &amp;lsquo;90, e non me ne sono mai pentito. Da allora ho avuto l&amp;rsquo;iBook G3 e G4, il primissimo &lt;a href=&#34;https://en.wikipedia.org/wiki/IMac_G5&#34;&gt;iMac G5&lt;/a&gt;, il &lt;a href=&#34;https://en.wikipedia.org/wiki/PowerBook_G4&#34;&gt;PowerBook G4 Titanium&lt;/a&gt;, vari iMac e MacBook Intel, ma il fascino di quella prima vetrina non lo dimenticherò mai.&lt;/p&gt;&#xA;&lt;p&gt;Oggi sono esattamente vent&amp;rsquo;anni dalla presentazione di Mac OS X 10.0, Cheetah (ovvero Ghepardo), il sistema operativo che, dopo la presentazione del Macintosh nel 1984, avrebbe rivoluzionato per la seconda volta il modo in cui interagiamo con il computer. In vent&amp;rsquo;anni Mac OS X ne ha fatta di strada e, da sistema operativo di nicchia per pochi utenti un po&amp;rsquo; fissati, è diventato un vero e proprio ecosistema con il quale si può usare indifferentemente (o quasi) il computer, il tablet, il telefono, il tablet e persino l&amp;rsquo;orologio. Ora siamo all&amp;rsquo;inizio di una nuova rivoluzione che renderà ancora più integrati i vari elementi di questo ecosistema, e sarà bello viverla in diretta.&lt;/p&gt;&#xA;&lt;p&gt;Ma intanto, grazie Apple per questi bellissimi vent&amp;rsquo;anni!&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>Il CNR è anche questo: un po&#39; di codice</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2020/12/01/il-cnr-e-anche-questo-un-po-di-codice/</link>
      <pubDate>Tue, 01 Dec 2020 06:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2020/12/01/il-cnr-e-anche-questo-un-po-di-codice/</guid>
      <description>&lt;img src=&#34;https://imgs.xkcd.com/comics/good_code.png&#34; alt=&#34;&#34; title=&#34;XKCD, Good code&#34;&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;em&gt;XKCD, &lt;a href=&#34;https://xkcd.com/844/&#34;&gt;Good code&lt;/a&gt;&lt;/em&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;Per concludere nel miglior modo possibile questa serie di articoli (qui la &lt;a href=&#34;https://melabit.wordpress.com/2020/10/25/il-cnr-e-anche-questo-concorsi-senza-frontiere/&#34;&gt;prima&lt;/a&gt; e la &lt;a href=&#34;https://melabit.wordpress.com/2020/11/08/il-cnr-e-anche-questo-concorsi-in-latex/&#34;&gt;seconda&lt;/a&gt; parte), cosa ci può essere di meglio di un po&amp;rsquo; di codice?&lt;/p&gt;&#xA;&lt;h4 id=&#34;estrarre-il-testo-da-un-file-pdf&#34;&gt;Estrarre il testo da un file PDF&lt;/h4&gt;&#xA;&lt;p&gt;Cominciamo dallo script in R, &lt;code&gt;pdf2csv.R&lt;/code&gt;, che estrae il testo da un file PDF, (che in questo caso specifico ho usato per &lt;a href=&#34;https://melabit.wordpress.com/2020/11/08/il-cnr-e-anche-questo-concorsi-in-latex/&#34;&gt;estrarre i dati&lt;/a&gt; dalla domanda di partecipazione ad un concorso precedente). Qui sotto trovate l&amp;rsquo;immagine dello script, realizzata con &lt;a href=&#34;https://carbon.now.sh/&#34;&gt;Carbon&lt;/a&gt; (perché così è molto più bello), su GitHub c&amp;rsquo;è il &lt;a href=&#34;https://github.com/sabinomaggi/melabit/tree/main/un-po-di-codice&#34;&gt;sorgente vero e proprio&lt;/a&gt;, per chi voglia provare ad usarlo.&lt;/p&gt;&#xA;&lt;img src=&#34;https://melabit.files.wordpress.com/2020/11/pdf2csv-1.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;Per eseguire lo script è necessario aver installato sul proprio computer,  non importa se è un Mac o un PC con Linux o Windows, &lt;a href=&#34;https://www.r-project.org/&#34;&gt;l&amp;rsquo;ambiente R&lt;/a&gt; (in questo momento è disponibile la versione 4.0.3), meglio ancora se accompagnato da &lt;a href=&#34;https://rstudio.com/products/rstudio/&#34;&gt;RStudio Desktop&lt;/a&gt;, che è di gran lunga il migliore sistema integrato di sviluppo (IDE) che abbia mai usato, oltre che uno strumento efficacissimo per affacciarsi all&amp;rsquo;uso di R.&lt;/p&gt;&#xA;&lt;p&gt;Il codice è molto semplificato, ho tolto tutto ciò che non è strettamente necessario a far funzionare lo script. La chiave di tutto è la libreria &lt;a href=&#34;https://cran.r-project.org/web/packages/pdftools/index.html&#34;&gt;pdftools&lt;/a&gt; per R.  Di librerie per estrarre dati dai file PDF ne ho provate moltissime, sia per R che per Python, ma &lt;code&gt;pdftools&lt;/code&gt; le batte tutte per potenza, semplicità e velocità. Ci sono dei &lt;em&gt;tool&lt;/em&gt; che convertono un PDF in testo al ritmo di una pagina al minuto, &lt;code&gt;pdftools&lt;/code&gt; riesce a convertire (molto bene, peraltro) un file di 400 pagine &lt;a href=&#34;https://www.snpambiente.it/2018/02/24/rapporto-controlli-ambientali-del-snpa-aia-seveso-edizione-2017/&#34;&gt;come questo&lt;/a&gt; in appena 5-6 secondi. C&amp;rsquo;è altro da aggiungere?&lt;/p&gt;&#xA;&lt;p&gt;Lo script può essere utilizzato dalla linea di comando (per capirci, dal Terminale), lasciandolo esattamente com&amp;rsquo;è ed eseguendo il comando &lt;code&gt;pdf2csv.R&lt;/code&gt; seguito dal nome dal file da convertire (se il nome del file contiene degli spazi va scritto fra virgolette),&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&#x9;./pdf2csv.R file-da-convertire.pdf&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;che produrrà due file &lt;code&gt;.csv&lt;/code&gt; contenenti il testo estratto dal file PDF. Il primo, con lo stesso nome del file di partenza, ha le righe numerate e cerca di riprodurre per quanto è possibile il &lt;em&gt;layout&lt;/em&gt; del file originale. Nel secondo, salvato con il suffisso &lt;code&gt;-clean&lt;/code&gt;, mancano i numeri di linea e vengono rimossi tutti gli spazi in eccesso, rendendolo più adatto ad una analisi automatica, in particolare quando il testo si estende per tutta la pagina (il primo file, invece, è molto più utile quando il testo è organizzato in colonne).&lt;/p&gt;&#xA;&lt;p&gt;Prima di usare per la prima volta &lt;code&gt;pdf2csv.R&lt;/code&gt; bisogna renderlo eseguibile tramite il comando &lt;code&gt;chmod&lt;/code&gt; (ne ho già scritto diffusamente &lt;a href=&#34;https://melabit.wordpress.com/2018/12/30/script-per-tutti-i-giorni-shell-e-parametri/&#34;&gt;qui&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&#x9;chmod u+x pdf2csv.R&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;In alternativa si può lanciare lo script tramite il comando &lt;code&gt;Rscript&lt;/code&gt; installato con R, senza che sia necessario renderlo eseguibile.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&#x9;Rscript ./pdf2csv.R file-da-convertire.pdf&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;È preferibile che il file PDF da convertire si trovi nella stessa cartella di &lt;code&gt;pdf2csv.R&lt;/code&gt;. In caso contrario il testo estratto viene comunque salvato nella cartella dove si trova la script (ve l&amp;rsquo;avevo detto che lo script era molto semplificato!).&lt;/p&gt;&#xA;&lt;p&gt;Per eseguire &lt;code&gt;pdf2csv.R&lt;/code&gt; all&amp;rsquo;interno di RStudio bisogna commentare la linea &lt;code&gt;12&lt;/code&gt; (basta aggiungere un &lt;code&gt;#&lt;/code&gt; all&amp;rsquo;inizio della riga) e attivare la riga 14 o 15 (ma solo da una delle due) togliendo il &lt;code&gt;#&lt;/code&gt; iniziale. Se si attiva la riga 14, si deve anche modificare la stringa &lt;code&gt;file-da-convertire.pdf&lt;/code&gt;, sostituendola con il nome del file da convertire. Se invece si attiva la riga numero 15, al momento dell&amp;rsquo;esecuzione dello script comparirà una finestra grafica da cui selezionare il file PDF desiderato.&lt;/p&gt;&#xA;&lt;p&gt;Nel &lt;a href=&#34;https://github.com/sabinomaggi/melabit/tree/main/un-po-di-codice&#34;&gt;repository su GitHub&lt;/a&gt; di questo articolo ho inserito dei file PDF di complessità crescente con cui fare qualche prova, fra cui un documento di quasi 1000 pagine (un vecchio manuale di riferimento del formato PDF, potevo scegliere qualcosa di diverso?), che può essere utile per valutare la velocità di conversione dello script. Non è necessario farlo a mano, il tempo di esecuzione di un qualunque programma o script si può misurare in modo preciso dal Terminale anteponendo il comando di sistema &lt;code&gt;time&lt;/code&gt;, come mostrato qui sotto.&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;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&#x9;time ./pdf2csv.R PDFReference.pdf&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Come piccola chicca finale, ho aggiunto al repository su GitHub un file PDF contenente del testo (apparentemente) nascosto, provate a convertirlo e vi accorgerete di quanto sia banale recuperare il testo completo.&lt;/p&gt;&#xA;&lt;h4 id=&#34;generare-automaticamente-dei-documenti-con-awk&#34;&gt;Generare automaticamente dei documenti con AWK&lt;/h4&gt;&#xA;&lt;p&gt;Tirar fuori il testo contenuto in un file PDF è quasi sempre solo il primo passo del lavoro, perché quello che vogliamo veramente è filtrare il contenuto del documento mantenendo solo le informazioni che ci interessano. Nel &lt;a href=&#34;https://melabit.wordpress.com/2020/11/08/il-cnr-e-anche-questo-concorsi-in-latex/&#34;&gt;caso specifico&lt;/a&gt;, io avevo bisogno di selezionare dalla domanda di concorso precedente solo i dati relativi ad una specifica tipologia di attività (ad esempio tutti gli articoli scientifici pubblicati), salvandoli in un file &lt;em&gt;ad hoc&lt;/em&gt;. E, già che c&amp;rsquo;ero, volevo anche costruire una tabella LaTeX per ciascun articolo. Una cosa abbastanza facile da fare con &lt;a href=&#34;https://www.grymoire.com/Unix/Awk.html&#34;&gt;AWK&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Di AWK ho già parlato &lt;a href=&#34;https://melabit.wordpress.com/2019/02/18/script-per-tutti-i-giorni-entra-in-scena-awk/&#34;&gt;tempo fa&lt;/a&gt; e non mi ripeterò, dirò solo che è un linguaggio ideale per analizzare un file di testo una riga alla volta, verificando se si presentano determinate condizioni ed eseguendo le operazioni programmate corrispondenti.&lt;/p&gt;&#xA;&lt;p&gt;Nonostante i suoi tanti pregi, AWK ha una limitazione piuttosto seria: per come è strutturato, AWK deve per forza di cose esaminare tutto il file senza poter &lt;em&gt;tornare indietro&lt;/em&gt;, e quindi è piuttosto difficile fargli eseguire delle operazioni basate su condizioni multiple complesse. È molto meglio (quando è possibile) scrivere più &lt;em&gt;script&lt;/em&gt; AWK, da eseguire in sequenza sullo stesso file di partenza o sull&amp;rsquo;output generato dallo script precedente, piuttosto che cercare di combattere con le limitazioni del linguaggio, complicando a dismisura il codice.&lt;/p&gt;&#xA;&lt;p&gt;In una prima versione di questo articolo avevo pensato di utilizzare un breve estratto della mia domanda di concorso precedente per descrivere il funzionamento degli script in AWK. Ma mentre scrivevo mi sono accorto che il discorso sarebbe stato così specifico da essere quasi inutile. Ho preferito quindi preparare un piccolo file PDF tratto dagli ultimi post pubblicati su Melabit, con l&amp;rsquo;intestazione in &lt;a href=&#34;https://blog.stackpath.com/yaml/&#34;&gt;YAML&lt;/a&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; di ciascun post seguita dalla prima frase del testo in &lt;a href=&#34;https://daringfireball.net/projects/markdown/&#34;&gt;Markdown&lt;/a&gt; e, quando c&amp;rsquo;è, dal link all&amp;rsquo;immagine iniziale. L&amp;rsquo;ho scelto perché la struttura di questo file assomiglia moltissimo a quella della mia domanda di concorso ma, allo stesso tempo, può essere uno schema di partenza applicabile a casi più generali.&lt;/p&gt;&#xA;&lt;div style = &#34;border-style: solid; border-width: 0px 0px 0px 4px; border-color: midnightblue; background-color: aliceblue; padding: 1em;&#34;&gt;&#xA;Questo file PDF può essere considerato come la stampa di un piccolo _database_ di informazioni correlate, dove ogni post è un _record_, suddiviso a sua volta nei vari _campi_, rappresentati dalle righe di intestazione e dalla frase di testo.&#xA;&lt;/div&gt;&#xA;&lt;p&gt;Il file PDF si chiama &lt;code&gt;Melabit ultimi post.pdf&lt;/code&gt; e, come gli altri file PDF, è disponibile nel &lt;a href=&#34;https://github.com/sabinomaggi/melabit/tree/main/un-po-di-codice&#34;&gt;repository su GitHub&lt;/a&gt; di questo articolo. Se lo aprite con Anteprima, noterete subito che ci sono delle righe vuote che separano chiaramente un post (nel linguaggio dei database, un &lt;em&gt;record&lt;/em&gt;) dall&amp;rsquo;altro. Ma convertendo il file in testo,&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&#x9;./pdf2csv.R &amp;#34;Melabit ultimi post.pdf&amp;#34;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;(le virgolette sono necessarie perché il nome del file contiene degli spazi), le righe vuote scompaiono e le uniche interruzioni presenti nei due file CSV prodotti dallo script di conversione corrispondono al cambio pagina. Non so se questo sia un baco o una caratteristica voluta di &lt;code&gt;pdftools&lt;/code&gt;, ma sta di fatto che è una particolarità con la quale dobbiamo fare i conti se vogliamo analizzare il testo con AWK.&lt;/p&gt;&#xA;&lt;p&gt;Sembra una sciocchezza, ma senza le giuste interruzioni non è immediato riconoscere la fine di un record &lt;em&gt;prima&lt;/em&gt; di iniziare ad esaminare quello successivo, in modo da chiudere correttamente la tabella LaTeX corrispondente al record appena esaminato e ad aprire quella relativa al record successivo. Inoltre, mentre in questo caso specifico la struttura del file PDF è volutamente molto semplice e ripetibile, nella maggior parte dei casi reali il documento da cui estrarre i dati può contenere informazioni strutturate in modi diversi, i campi da analizzare possono essere distribuiti in modo irregolare o mancare del tutto e ci possono essere incongruenze nella loro denominazione. Gestire tutti i casi possibili con un unico script lo renderebbe rapidamente troppo complesso.&lt;/p&gt;&#xA;&lt;p&gt;Molto meglio affrontare il problema un pezzetto alla volta, utilizzando uno script specifico per ciascun tipo di informazione da estrarre (io ho avuto bisogno di 6 script AWK per eseguire tutto il lavoro di esportazione dei dati, o meglio &lt;em&gt;quasi tutto&lt;/em&gt; il lavoro, perché per i casi meno frequenti ho preferito il buon vecchio copia-incolla manuale). In fondo è la stessa logica di Unix, che mette a disposizione un gran numero di strumenti semplici che messi insieme, come tanti mattoncini Lego, riescono a fare cose incredibili.&lt;/p&gt;&#xA;&lt;p&gt;Un primo script, &lt;code&gt;addblanklines.awk&lt;/code&gt;, può servire per inserire nel file CSV di partenza una riga vuota &lt;em&gt;prima&lt;/em&gt; di ogni record (una cosa piuttosto semplice da fare in questo caso, dato che ogni post inizia sempre con la stringa &amp;ldquo;layout: post&amp;rdquo;). Lo script, appena quindici linee di codice, lo trovate &amp;ldquo;in bella&amp;rdquo; nell&amp;rsquo;immagine qui sotto (ma anche in questo caso il &lt;a href=&#34;https://github.com/sabinomaggi/melabit/tree/main/un-po-di-codice&#34;&gt;sorgente&lt;/a&gt; è su GitHub).&lt;/p&gt;&#xA;&lt;img src=&#34;https://melabit.files.wordpress.com/2020/11/addblanklines-1.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;Bastano solo due linee di codice, la #4 e la #9, per aggiungere le righe vuote al posto giusto. Ma già che ci siamo, è conveniente dare anche una &lt;em&gt;ripulita&lt;/em&gt; al file CSV togliendo le righe inutili, come quelle che contengono il numero di pagina o la stringa &lt;code&gt;---&lt;/code&gt; che segna l&amp;rsquo;inizio e la fine dell&amp;rsquo;intestazione in YAML (linee #5 e #12). Eseguendo lo script sul file CSV originale, si ottiene un nuovo file CSV con i vari record ben separati uno dall&amp;rsquo;altro.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&#x9;./addblanklines.awk &amp;#34;Melabit ultimi post-clean.csv&amp;#34; &amp;gt; file-con-righe-vuote.csv&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Fatto questo, il passo successivo è semplice. Basta scansionare il file CSV appena generato, &lt;code&gt;file-con-righe-vuote.csv&lt;/code&gt;, in cerca della stringa &lt;em&gt;target&lt;/em&gt; &lt;code&gt;layout: post&lt;/code&gt; e, ogni volta che se ne trova una, generare una nuova tabella LaTeX riempiendola con i dati tratti dalle voci (o più propriamente &lt;em&gt;campi&lt;/em&gt;) successive. Il codice del secondo script, &lt;code&gt;cvs2table.awk&lt;/code&gt;, è visibile nell&amp;rsquo;immagine qui sotto (mentre il &lt;a href=&#34;https://github.com/sabinomaggi/melabit/tree/main/un-po-di-codice&#34;&gt;sorgente&lt;/a&gt; è sempre su GitHub).&lt;/p&gt;&#xA;&lt;img src=&#34;https://melabit.files.wordpress.com/2020/11/cvs2table-1.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;Lo script è relativamente lungo, sono più di 80 linee di codice, compresi commenti e righe vuote, ma una gran parte serve per implementare la funzione (linee #3-25) che riarrangia le informazioni presenti su più linee consecutive del file CSV in modo che vengano stampate su un&amp;rsquo;unica riga, e per generare la struttura di base del documento LaTeX (linee #35-42 e #83).&lt;/p&gt;&#xA;&lt;p&gt;Tolte queste, il resto del codice è semplice, si tratta più che altro di scrivere le stringe giuste al momento giusto e di tenere conto dei casi in cui le informazioni si estendono su più linee consecutive (come succede ad esempio alle linee #61-62 e #66-73). Non entrerò nei dettagli di come funziona lo script, questo non è un corso di AWK (né tantomeno di R), basterà per ora dire che è scritto in modo da essere facilmente adattato a gestire esigenze analoghe. Per usarlo, si deve eseguire lo script usando come file di input &lt;code&gt;file-con-righe-vuote.csv&lt;/code&gt; e salvando il risultato dell&amp;rsquo;elaborazione in un file LaTeX, che qui sotto ho chiamato (con la mia solita scarsa fantasia) &lt;code&gt; lista-articoli.tex&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&#x9;./cvs2table.awk file-con-righe-vuote.csv &amp;gt; lista-articoli.tex&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;h4 id=&#34;mettere-tutto-insieme&#34;&gt;Mettere tutto insieme&lt;/h4&gt;&#xA;&lt;p&gt;Proviamo allora ad eseguire tutti insieme gli script presentati in questo articolo, in modo da ottenere il risultato finale desiderato. Dobbiamo prima di tutto convertire il file PDF in CSV con&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&#x9;./pdf2csv.R &amp;#34;Melabit ultimi post.pdf&amp;#34;&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;che genera automaticamente il file &amp;ldquo;Melabit ultimi post-clean.csv&amp;rdquo;. Fatto questo, si eseguono in sequenza i due script AWK, salvando l&amp;rsquo;output del primo in un file intermedio.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&#x9;./addblanklines.awk &amp;#34;Melabit ultimi post-clean.csv&amp;#34; &amp;gt; file-con-righe-vuote.csv&#xA;&#x9;./cvs2table.awk file-con-righe-vuote.csv &amp;gt; lista-articoli.tex&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Il risultato finale è un file LaTeX ben ordinato con una tabella per ogni articolo, come quello mostrato nella figura qui sotto la cui regolarità, messa in evidenza dai colori delle parole chiave, fa pensare ad uno spartito musicale.&lt;/p&gt;&#xA;&lt;img src=&#34;https://melabit.files.wordpress.com/2020/11/lista-articoli-1.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;Ma ha senso creare un file intermedio solo per trasferire l&amp;rsquo;output del primo script al secondo? Molto meglio usare il &lt;a href=&#34;https://www.geeksforgeeks.org/piping-in-unix-or-linux/&#34;&gt;meccanismo di &lt;em&gt;piping&lt;/em&gt;&lt;/a&gt; tipico in Unix, con il quale si può trasferire automaticamente il risultato dell&amp;rsquo;esecuzione di un comando all&amp;rsquo;ingresso di quello successivo, collegandoli con il carattere &lt;code&gt;|&lt;/code&gt; (&lt;em&gt;pipe&lt;/em&gt;)?&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; Con il &lt;em&gt;piping&lt;/em&gt;, i due comandi AWK precedenti possono essere eseguiti uno dopo l&amp;rsquo;altro in questo modo,&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;&#x9;./addblanklines.awk &amp;#34;Melabit ultimi post-clean.csv&amp;#34; | ./cvs2table.awk &amp;gt; lista-articoli.tex&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;evitando l&amp;rsquo;uso di un file intermedio. In questo caso non fa molta differenza, ma quando si devono trattare file molto grossi, il &lt;em&gt;piping&lt;/em&gt; è molto più efficiente (con i velocissimi dischi SSD odierni non ce ne accorgiamo più, ma ai tempi dei dischi meccanici la scrittura di grossi file sul disco era un vero collo di bottiglia) e, cosa che non guasta mai, evita di intasare il disco rigido con un gran numero di file inutili.&lt;/p&gt;&#xA;&lt;p&gt;E poi il &lt;em&gt;piping&lt;/em&gt; è un meccanismo intrinsecamente elegante, che non a caso è stato adottato anche in alcuni &lt;a href=&#34;http://leetschau.github.io/pipe-operator-in-functional-programming-languages.html&#34;&gt;linguaggi di programmazione odierni&lt;/a&gt;, come si può vedere nello script R mostrato nella prima parte di questo articolo (linee #24-25 e #35-37), dove il simbolo &lt;code&gt;|&lt;/code&gt; usato in Unix è sostituito dalla strana combinazione di caratteri &lt;code&gt;%&amp;amp;#62;%&lt;/code&gt;, piuttosto fastidiosa da scrivere con una tastiera italiana (io almeno sbaglio sempre qualcosa).&lt;/p&gt;&#xA;&lt;h4 id=&#34;conclusioni&#34;&gt;Conclusioni&lt;/h4&gt;&#xA;&lt;p&gt;Chi ha l&amp;rsquo;occhio allenato si accorgerà facilmente che il file LaTeX risultante contiene alcuni errori piuttosto evidenti. Li ho lasciati apposta non solo per non complicare ulteriormente il codice, ma anche per mostrare quanto sia complicato il lavoro di estrazione automatica dei dati da file strutturati in modo non perfettamente regolare. Non è certo un caso che in questo campo ci sia una grossa attività di ricerca che prova a superare gli ostacoli e a rendere il tutto il più semplice e il più efficiente possibile.&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;Il comando &lt;code&gt;time&lt;/code&gt; è presente di default nei sistemi operativi Unix come Linux e macOS. Su Windows &lt;code&gt;time&lt;/code&gt; non esiste, ma si possono usare degli &lt;a href=&#34;https://qastack.it/superuser/228056/windows-equivalent-to-unix-time-command&#34;&gt;strumenti equivalenti&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;YAML è un linguaggio di &lt;em&gt;markup&lt;/em&gt; particolarmente adatto per definire dei file di configurazione e, in generale, per rappresentare informazioni strutturate in modo semplice e leggibile, molto più facile da usare di strumenti più noti come XML e JSON.&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;Il &lt;em&gt;piping&lt;/em&gt; è uno dei meccanismi principali che rendono Unix una specie di Lego informatico.&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>SSD o dischi meccanici? Perché non tutti e due? (prima parte)</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2020/08/05/ssd-o-dischi-meccanici-perche-non-tutti-e-due-prima-parte/</link>
      <pubDate>Wed, 05 Aug 2020 06:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2020/08/05/ssd-o-dischi-meccanici-perche-non-tutti-e-due-prima-parte/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://melabit.files.wordpress.com/2020/08/laura-ockel-qox9ksvpqcm-unsplash.jpg&#34; alt=&#34;&#34;&gt;&lt;br&gt;&#xA;&amp;ndash; &lt;em&gt;Foto di &lt;a href=&#34;https://unsplash.com/@viazavier&#34;&gt;Laura Ockel&lt;/a&gt; su &lt;a href=&#34;https://unsplash.com&#34;&gt;Unsplash&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Ci hanno messo qualche anno di troppo, ma ormai i dischi SSD sono diventati le normali unità di avvio dei computer moderni, complice il calo di prezzi degli ultimi anni. Solo Apple si ostina ad offrire dei lenti dischi meccanici da appena 5400 giri al minuto sui suoi iMac più economici, ma probabilmente smetterà (finalmente!) di farlo alla prossima iterazione del modello, che dovrebbe arrivare molto presto (infatti l&amp;rsquo;&lt;a href=&#34;https://www.apple.com/it/shop/buy-mac/imac&#34;&gt;iMac è stato aggiornato proprio ieri&lt;/a&gt;).&lt;/p&gt;&#xA;&lt;p&gt;Purtroppo gli SSD sono ancora piuttosto cari, in questo momento un SSD da 1 TB di buona qualità costa fra i &lt;a href=&#34;https://www.amazon.it/Crucial-MX500-CT1000MX500SSD1-Interno-Pollici/dp/B078211KBB&#34;&gt;100&lt;/a&gt; e i &lt;a href=&#34;https://www.amazon.it/Samsung-MZ-V7S1T0BW-Unit%C3%A0-PLUS-Arancione/dp/B07MBQPQ62&#34;&gt;200&lt;/a&gt; euro, mentre l&amp;rsquo;equivalente meccanico si trova a 40-50 euro e con 100 euro si può acquistare un modello dignitoso da 3-4 TB. Meglio non parlare dei prezzi da rapina praticati da Apple, che pretende 625 euro per installare un disco SSD da 1 TB al posto dell&amp;rsquo;&lt;a href=&#34;https://melabit.wordpress.com/2018/06/25/ma-il-fusion-drive-serve-ancora/&#34;&gt;obsoleto Fusion Drive&lt;/a&gt; su un nuovo iMac (e definire obsoleto il Fusion Drive è ancora troppo poco), o che sui portatili (ma da ieri anche sugli iMac) ci chiede la bellezza di 500 euro per montare un SSD da 1 TB al posto di quello minimale da 250 GB.&lt;/p&gt;&#xA;&lt;p&gt;Quando acquistiamo un nuovo computer abbiamo quindi il problema di scegliere se pagare a caro prezzo un disco SSD molto capiente, che magari non verrà mai utilizzato completamente, oppure risparmiare scegliendo un modello da 500 GB &amp;ndash; 1 TB che però, complice la solita legge di Murphy, diventerà troppo stretto dopo pochi mesi di utilizzo.&lt;/p&gt;&#xA;&lt;h4 id=&#34;due-dischi-al-posto-di-uno&#34;&gt;Due dischi al posto di uno&lt;/h4&gt;&#xA;&lt;p&gt;Il problema è aggravato dal fatto che nella maggior parte dei Mac, così come in quasi tutti i PC portatili più performanti, è molto difficile, se non impossibile, aggiornare i componenti interni dopo l&amp;rsquo;acquisto.&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; Una valutazione sbagliata al momento dell&amp;rsquo;ordine rischia quindi di rendere rapidamente obsoleto il prodotto acquistato. Un vero spreco, visto che un buon computer moderno può rispondere per parecchi anni in modo più che adeguato alle necessità della stragrande maggioranza degli utenti.&lt;/p&gt;&#xA;&lt;p&gt;Per fortuna si può avere facilmente il meglio dei due mondi, un veloce disco SSD destinato al sistema operativo e ai programmi, accoppiato ad un disco meccanico (HDD) molto più capiente dove conservare tutti i propri documenti (comprendendo con questo termine sia i documenti da ufficio veri e propri &amp;ndash; testi, fogli elettronici, presentazioni, email &amp;ndash; sia i file multimediali, gli ebook, il codice sorgente dei programmi che sviluppiamo, e in generale tutto ciò che elaboriamo tramite il computer).&lt;sup id=&#34;fnref:2&#34;&gt;&lt;a href=&#34;#fn:2&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;2&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;Fare così ha un altro grosso vantaggio: in caso di guai possiamo reinstallare facilmente da zero sia il sistema operativo che le applicazioni senza correre il rischio di cancellare i documenti, che di fatto costituiscono la parte più preziosa di un computer.&lt;/p&gt;&#xA;&lt;p&gt;Separare i dati dalle applicazioni è una pratica normale in Linux, la maggior parte delle distribuzioni consente di farlo in fase di installazione (ma in genere bisogna usare una modalità &lt;em&gt;avanzata&lt;/em&gt; di installazione) e non è troppo difficile farlo anche in un secondo momento. Anche Windows prevede un meccanismo per farlo, è piuttosto rozzo e funziona meglio al momento dell&amp;rsquo;installazione di Windows su un nuovo PC, quando il disco rigido è ancora vuoto, ma sappiamo tutti che da Windows non si può pretendere più di tanto.&lt;/p&gt;&#xA;&lt;p&gt;Anche macOS consente di muovere la cartella &lt;code&gt;Inizio&lt;/code&gt; (o &lt;code&gt;Home&lt;/code&gt;) di un utente su un altro disco (o su un&amp;rsquo;altra partizione), ma bisogna dire che è un metodo tenuto molto ben nascosto, e la stessa Apple sconsiglia di utilizzarlo (si veda l&amp;rsquo;immagine qui sotto).&lt;/p&gt;&#xA;&lt;!-- ![](https://melabit.files.wordpress.com/2020/08/advanced-options.png) --&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://support.apple.com/library/content/dam/edam/applecare/images/it_IT/macos/macos-mojave-system-preferences-users-groups-advanced-options.jpg&#34; alt=&#34;&#34;&gt;&#xA;&amp;ndash; &lt;em&gt;Immagine tratta dall&amp;rsquo;articolo &lt;a href=&#34;https://support.apple.com/it-it/HT201548&#34;&gt;Modificare il nome dell&amp;rsquo;account utente macOS e della cartella Inizio&lt;/a&gt;, pubblicato sul sito di &lt;a href=&#34;https://support.apple.com&#34;&gt;supporto Apple&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Chi volesse provare lo stesso, deve andare nelle Preferenze di Sistema, selezionare Utenti e Gruppi, cliccare sul simbolo del lucchetto e inserire la password dell&amp;rsquo;amministratore del Mac, poi scegliere l&amp;rsquo;account da modificare, fare click con il tasto destro del mouse, selezionare Opzioni avanzate e infine modificare la cartella Inizio, facendo in modo che punti ad una cartella sul disco meccanico.&lt;/p&gt;&#xA;&lt;p&gt;Ma perché complicarsi la vita quando esiste un meccanismo intrinseco a macOS che permette di fare più o meno la stessa cosa senza correre alcun rischio? E che funziona allo stesso modo su qualunque sistema operativo, da macOS a Linux e a tutte le infinite varianti di sistemi operativi basati su Unix, e ormai &lt;a href=&#34;https://www.howtogeek.com/howto/16226/complete-guide-to-symbolic-links-symlinks-on-windows-or-linux/&#34;&gt;perfino in Windows&lt;/a&gt;? E che ha pure il grosso vantaggio di non modificare la posizione di certe cartelle e di certi file che il sistema operativo si aspetta di trovare in posizioni ben definite, in modo che possa continuare a funzionare perfettamente anche se per qualche motivo non riesce a trovare il secondo disco meccanico.&lt;/p&gt;&#xA;&lt;h4 id=&#34;collegamenti-simbolici&#34;&gt;Collegamenti simbolici&lt;/h4&gt;&#xA;&lt;p&gt;Il meccanismo in questione è costituito dai &lt;em&gt;collegamenti simbolici&lt;/em&gt; (o &lt;em&gt;soft link&lt;/em&gt;), di cui ho parlato nell&amp;rsquo;articolo &lt;a href=&#34;https://melabit.wordpress.com/2020/07/18/il-crepuscolo-di-dropbox/&#34;&gt;dedicato a Dropbox&lt;/a&gt; di qualche giorno fa e &lt;a href=&#34;https://melabit.wordpress.com/2014/03/21/come-mettere-un-piolo-quadrato-in-un-buco-rotondo/&#34;&gt;molto più diffusamente qui&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Con un uso accorto dei soft link possiamo fare in modo che le cartelle presenti sul disco rigido meccanico sembrino appartenere a tutti gli effetti al disco SSD (senza però consumare spazio prezioso sull&amp;rsquo;unità a stato solido) e solo un osservatore attento può accorgersi della differenza.&lt;/p&gt;&#xA;&lt;p&gt;I dettagli di come si può fare li ho già descritti &lt;a href=&#34;https://melabit.wordpress.com/2014/03/21/come-mettere-un-piolo-quadrato-in-un-buco-rotondo/&#34;&gt;in un articolo di parecchi anni fa&lt;/a&gt; e nel frattempo non è cambiato nulla, per cui non è il caso di ripetersi. Mi limito solo a mostrare l&amp;rsquo;immagine della &lt;code&gt;Home&lt;/code&gt; di uno dei miei Mac di casa, dove si può vedere che in macOS i soft link vengono rappresentati da una freccetta sovrapposta alla normale icona del file o, come in questo caso, della cartella. Una rappresentazione visiva efficace, che rende bene l&amp;rsquo;idea che il file o la cartella in questione &lt;em&gt;punti&lt;/em&gt; da qualche altra parte, in questo caso particolare alle cartelle presenti fisicamente sul disco rigido meccanico &lt;code&gt;Data HD&lt;/code&gt; (lo so, la fantasia a volte mi fa difetto).&lt;/p&gt;&#xA;&lt;img src=&#34;https://melabit.files.wordpress.com/2020/08/my-home.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;Uso questo metodo da anni su tutti i miei Mac e non ho mai avuto problemi. Anzi, con il tempo mi sono accorto che il disco meccanico è in grado di gestire senza rallentamenti particolari tutti i miei documenti, anche quelli su cui lavoro ogni giorno, cosa che mi ha consentito di separare ancora di più (e meglio) i miei dati dalle applicazioni.&lt;/p&gt;&#xA;&lt;p&gt;Bene, per ora può bastare. La &lt;a href=&#34;https://melabit.wordpress.com/2020/08/14/ssd-o-dischi-meccanici-perche-non-tutti-e-due-seconda-parte/&#34;&gt;seconda parte&lt;/a&gt; dell&amp;rsquo;articolo sarà dedicata a descrivere alcuni possibili scenari pratici, con le relative scelte hardware. A presto!&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;Gli unici modelli facilmente aggiornabili rimasti in circolazione sono i normali PC desktop e, per quanto riguarda il mondo Apple, i nuovi Mac Pro (che però sono rivolti ad un pubblico professionale per il quale il costo di un SSD è trascurabile rispetto al valore dell&amp;rsquo;intera macchina).&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;Ci possono essere casi particolari in cui è più conveniente tenere i documenti sul disco SSD principale, penso soprattutto ai file multimediali in corso di elaborazione, ma una volta finito il lavoro niente impedisce di archiviarli sul disco meccanico.&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>La falsa sicurezza delle app VPN per Android (e non solo)</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2019/05/22/la-falsa-sicurezza-delle-app-vpn-per-android-e-non-solo/</link>
      <pubDate>Wed, 22 May 2019 06:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2019/05/22/la-falsa-sicurezza-delle-app-vpn-per-android-e-non-solo/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://melabit.files.wordpress.com/2019/05/bernard-hermant-590572.jpg&#34; alt=&#34;&#34;&gt;&#xA;&amp;ndash; &lt;em&gt;Fonte: &lt;a href=&#34;https://unsplash.com/@bernardhermant&#34;&gt; Bernard Hermant&lt;/a&gt; su &lt;a href=&#34;https://unsplash.com&#34;&gt;Unsplash&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Fino a pochi anni fa le &lt;a href=&#34;https://it.wikipedia.org/wiki/Virtual_Private_Network&#34;&gt;reti private virtuali&lt;/a&gt; (VPN, Virtual Private Network) erano un prodotto di nicchia, riservato prevalentemente a chi era spesso fuori dall&amp;rsquo;ufficio per lavoro e aveva bisogno di connettersi in modo sicuro alla rete aziendale dal bar o dall&amp;rsquo;hotel di turno, oppure a chi viveva in paesi a rischio censura e voleva esprimere il suo pensiero senza poter essere rintracciato o più semplicemente desiderava accedere liberamente ai siti web oscurati dal proprio governo.&lt;/p&gt;&#xA;&lt;p&gt;Poi, proprio all&amp;rsquo;inizio dell&amp;rsquo;amministrazione Trump, il Congresso degli Stati Uniti ha deciso di consentire ai fornitori di servizi di accesso alla rete (ISP, Internet Service Provider), gli equivalenti dei nostri Fastweb, Infostrada o Vodafone, di &lt;a href=&#34;https://medium.freecodecamp.org/how-to-set-up-a-vpn-in-5-minutes-for-free-and-why-you-urgently-need-one-d5cdba361907&#34;&gt;rivendere a chiunque e senza dover richiedere alcuna autorizzazione&lt;/a&gt;, i dati di navigazione dei propri utenti. Un business che vale &lt;a href=&#34;https://www.washingtonpost.com/news/the-switch/wp/2017/03/28/republicans-are-poised-to-roll-back-landmark-fcc-privacy-rules-heres-what-you-need-to-know/&#34;&gt;80 miliardi di dollari&lt;/a&gt; di sola pubblicità online.&lt;/p&gt;&#xA;&lt;p&gt;In questi dati c&amp;rsquo;è di tutto, fra cui moltissime informazioni strettamente private: la storia della navigazione su internet con l&amp;rsquo;elenco di tutti i siti visitati, le ricerche effettuate, il contenuto delle email, informazioni mediche e finanziarie, indirizzi, date di nascita, numeri di telefono, e persino i dettagli della posizione geografica dell&amp;rsquo;utente nel corso della giornata. Di conseguenza l&amp;rsquo;uso delle VPN è letteralmente esploso.&lt;/p&gt;&#xA;&lt;p&gt;Purtroppo &lt;a href=&#34;https://www.theregister.co.uk/2016/02/26/ssl_vpns_survey/&#34;&gt;non è affatto detto che una rete VPN aumenti la sicurezza delle proprie comunicazioni online&lt;/a&gt;. Anzi può essere persino peggio, una VPN può dare un falso senso di sicurezza che invita ad &lt;em&gt;abbassare la guardia&lt;/em&gt;, con conseguenze potenzialmente catastrofiche (in particolare per coloro che hanno la sfortuna di vivere in paesi governati dal dittatorello di turno).&lt;/p&gt;&#xA;&lt;p&gt;Lo dimostra una &lt;a href=&#34;https://dl.acm.org/citation.cfm?id=2987471&#34;&gt;ricerca pubblicata nel 2016&lt;/a&gt;, immediatamente prima della deregolamentazione decisa dal Congresso USA. Per motivi pratici la ricerca è focalizzata sulle sole app VPN (gratuite) per Android e trascura completamente il mondo iOS e tutte le applicazioni analoghe per i sistemi operativi desktop, Windows e macOS e Linux. Ma pur con tutti i suoi limiti, i risultati della ricerca danno un quadro piuttosto chiaro di quanto sia  critica la situazione in questo settore, e allargando ulteriormente il campo di analisi la situazione non potrebbe che peggiorare.&lt;/p&gt;&#xA;&lt;p&gt;Qui sotto ho riassunto brevemente i risultati della ricerca, nel corso della quale i ricercatori hanno analizzato ben 283 app VPN disponibili gratuitamente sul Play Store di Google all&amp;rsquo;inizio dell&amp;rsquo;analisi (settembre 2015). Chi desidera approfondire può scaricare liberamente dai siti istituzionali degli autori sia l&amp;rsquo;&lt;a href=&#34;https://www.icir.org/vern/papers/vpn-apps-imc16.pdf&#34;&gt;articolo completo&lt;/a&gt; che le &lt;a href=&#34;https://research.csiro.au/ng/wp-content/uploads/sites/106/2016/09/vpnapps_imc16_presented_slides.pdf&#34;&gt;slide della conferenza&lt;/a&gt; nella quale è stato presentato il lavoro.&lt;/p&gt;&#xA;&lt;p&gt;Bisogna notare che, anche se tutte le app analizzate sono gratuite, più della metà richiede il pagamento di un importo mensile per l&amp;rsquo;uso effettivo della rete VPN, una cosa assolutamente normale visti i costi associati alla gestione di una infrastruttura di rete.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Reti peer-to-peer&lt;/strong&gt;: un gran numero di app VPN non utilizza una infrastruttura di rete costruita &lt;em&gt;ad hoc&lt;/em&gt; ma si basa sui nodi di accesso messi a disposizione dagli altri utenti (spesso in cambio di sconti), formando quindi una rete &lt;em&gt;peer-to-peer&lt;/em&gt; molto più economica da gestire ma che non garantisce assolutamente la trasparenza e la sicurezza necessarie.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Modello gratuito&lt;/strong&gt;: mettere su una rete VPN ha dei costi significativi e quindi in questo caso specifico il modello &lt;em&gt;free&lt;/em&gt; non può funzionare; per poter proporre delle VPN gratuite o a basso costo le aziende utilizzano spesso una serie di trucchi poco accettabili, con i quali portano gli utenti inconsapevoli sui siti dei partner pubblicitari oppure utilizzano codice JavaScript più o meno oscuro per iniettare gli annunci pubblicitari direttamente nel flusso dei dati. La pubblicità in sé può anche essere innocua, ma &lt;em&gt;mettere le mani&lt;/em&gt; nel flusso dei dati trasmessi sulla connessione VPN può portare ad abusi molto più seri e pericolosi per chi utilizza la rete in questione.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Malware&lt;/strong&gt;: più di un terzo delle app VPN era infestato da qualche forma di &lt;em&gt;malware&lt;/em&gt;: non solo il quasi inoffensivo &lt;em&gt;adware&lt;/em&gt; (pubblicità non richiesta) ma spesso anche da veri e propri &lt;em&gt;spyware&lt;/em&gt; (programmi che spiano l&amp;rsquo;attività online dell&amp;rsquo;utente) o &lt;em&gt;trojan&lt;/em&gt; (programmi installati di nascosto che possono eseguire operazioni dannose sul sistema).&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Crittografia&lt;/strong&gt;: non è affatto detto che il traffico di rete che transita attraverso queste app VPN sia crittografato e quindi risulti illeggibile agli ISP o alle agenzie governative un po&amp;rsquo; troppo &lt;em&gt;curiose&lt;/em&gt;; e anche quando lo è, può succedere che errori di implementazione o di configurazione delle app mostrino in chiaro gli accessi ai server DNS (quelli che traducono i nomi dei siti web negli indirizzi numerici comprensibili ai computer), rivelando così l&amp;rsquo;attività effettuata in rete dagli utenti, una cosa che in certi paesi può essere più che sufficiente per finire in carcere.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Certificati&lt;/strong&gt;: alcune app VPN riescono perfino ad installare i propri certificati digitali al posto di quelli ufficiali del dispositivo Android (certificati &lt;em&gt;root&lt;/em&gt;), rendendo del tutto inefficace la cifratura dei dati in transito sul dispositivo, perché chi dispone del certificato digitale dispone anche delle chiavi con cui decodificare tutto quello che passa attraverso la rete VPN.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Consapevolezza del rischio&lt;/strong&gt;: solo l&#39;1% delle recensioni sul Play Store solleva dei dubbi sull&amp;rsquo;attività potenzialmente fraudolenta svolta dalle app VPN; l&amp;rsquo;utente medio di questi prodotti non ha le capacità tecniche per accorgersi dei rischi che corre quando usa un&amp;rsquo;app di questo tipo e purtroppo il sistema operativo sottostante fa ben poco per aiutarlo.&lt;/p&gt;&#xA;&lt;p&gt;Insomma, nonostante i limiti già ricordati, questa ricerca dimostra in modo inoppugnabile che le app VPN per Android (ma non solo) danno solo un falso senso di sicurezza, che le rende inutili e perfino controproducenti. Dubito fortemente che si otterrebbero risultati diversi analizzando le app analoghe per gli altri sistemi operativi mobili o desktop. E dubito altrettanto fortemente (se non di più) che dal 2016 ad oggi la situazione sia migliorata.&lt;/p&gt;&#xA;&lt;p&gt;Perché?&lt;/p&gt;&#xA;&lt;p&gt;Primo, perché tutti i sistemi operativi attuali fanno pochissimo per aiutare l&amp;rsquo;utente a valutare correttamente i rischi connessi a certe attività di rete. Far comparire di continuo avvisi e richieste di autorizzazione di tutti i tipi non è sufficiente, se non si spiega in modo corretto e comprensibile quello che succede. E in ogni caso, troppe richieste inutili non fanno altro che affogare ciò che è veramente importante in un rumore di fondo indistinto, da cui l&amp;rsquo;utente medio esce cliccando automaticamente, senza nemmeno leggere. Facile quindi infilare delle app più o meno malevole negli store online dei vari sistemi operativi, in particolare di quelli più diffusi,  Android per il mobile e Windows per il desktop. Apple per fortuna riesce a controllare meglio di altri gli store di macOS e di iOS, ma possiamo essere sicuri che ci riesca al 100%?&lt;/p&gt;&#xA;&lt;p&gt;Secondo, perché in questo campo il modello &lt;em&gt;free&lt;/em&gt; non funziona a priori. Gestire una infrastruttura di una rete ha dei costi che devono essere ripagati in qualche modo, lecito (attraverso gli acquisti &lt;em&gt;in-app&lt;/em&gt; e gli abbonamenti mensili) o illecito. E comunque non è nemmeno detto che una rete VPN a pagamento (anche di costo rilevante) assicuri un livello di sicurezza decente. Poter spiare una connessione considerata sicura può assicurare tanti di quei benefici, sia a livello economico (ad esempio, conoscere le attività e i progetti di certe aziende) che politico (primo fra tutti riuscire a individuare gli oppositori politici), che è meglio non fidarsi.&lt;/p&gt;&#xA;&lt;p&gt;Che fare?&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>RIP Linux Journal</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2017/12/15/rip-linux-journal/</link>
      <pubDate>Fri, 15 Dec 2017 18:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2017/12/15/rip-linux-journal/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://melabit.files.wordpress.com/2017/12/final-tux.jpg&#34; alt=&#34;&#34;&gt;&#xA;&amp;ndash; &lt;em&gt;Fonte: &lt;a href=&#34;https://www.linuxjournal.com/&#34;&gt;Linux Journal&lt;/a&gt;&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;La notizia è di pochi giorni fa, non ci sono più soldi e &lt;a href=&#34;https://www.linuxjournal.com/content/linux-journal-ceases-publication&#34;&gt;Linux Journal ha dovuto cessare le pubblicazioni&lt;/a&gt;. L&amp;rsquo;ennesima rivista che muore perché non riesce più a reggere la concorrenza del web.  Ha resistito più di &lt;a href=&#34;http://www.halfhill.com/bytefaq.html&#34;&gt;BYTE&lt;/a&gt; e di &lt;a href=&#34;http://www.drdobbs.com/architecture-and-design/farewell-dr-dobbs/240169421&#34;&gt;Dr. Dobb&amp;rsquo;s&lt;/a&gt;, sarà solo una piccola soddisfazione ma è sempre meglio di niente.&lt;/p&gt;&#xA;&lt;p&gt;Linux Journal è stata per tanti anni la migliore rivista dedicata a Linux e al mondo del free software, nessuna rivista concorrente è mai riuscita ad ergersi al suo livello.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;Purtroppo anche per Linux Journal  a un certo punto è arrivata la crisi: la pervasività di internet, la disponibilità pressoché immediata sul web di notizie e di informazioni tecniche, spesso anche di livello eccellente, ha reso sempre più irrilevanti le riviste tradizionali. Che senso aveva comprare Linux Journal per (ri)leggere cose che avevi già visto due mesi prima sul web?&lt;/p&gt;&#xA;&lt;p style=&#34;text-align:center&#34; &gt;&#xA;    &lt;img style=&#34;margin: 0px 10px; border: 1px solid #ddd; border-radius: 4px; padding: 5px; width: 40%&#34; src=&#34;https://www.linuxjournal.com/files/linuxjournal.com/linuxjournal/issues/001/cover1.jpg&#34; alt=&#34;Linux Journal #1&#34; /&gt;  &lt;img style=&#34;margin:0px 10px; border: 1px solid #ddd; border-radius: 4px; padding: 5px; width: 40%&#34; src=&#34;https://www.linuxjournal.com/files/linuxjournal.com/linuxjournal/issues/005/cover5.jpg&#34; alt=&#34;Linux Journal #5&#34; /&gt;&#xA;&lt;/p&gt;&#xA;&lt;p style=&#34;text-align:center&#34;&gt;&#xA;    &lt;img style=&#34;margin: 0px 10px; border: 1px solid #ddd; border-radius: 4px; padding: 5px; width: 40%&#34; src=&#34;https://www.linuxjournal.com/files/linuxjournal.com/linuxjournal/issues/025/cover25.jpg&#34; alt=&#34;Linux Journal #25&#34; /&gt;    &lt;img style=&#34;margin: 0px 10px; border: 1px solid #ddd; border-radius: 4px; padding: 5px; width: 40%&#34; src=&#34;https://www.linuxjournal.com/files/linuxjournal.com/linuxjournal/issues/100/cover100.jpg&#34; alt=&#34;Linux Journal #100&#34; /&gt;&#xA;&lt;/p&gt;&#xA;&lt;p&gt;Nemmeno l&amp;rsquo;abolizione della versione cartacea della rivista ed il passaggio ad una diffusione solo elettronica sono riuscite a invertire la parabola discendente, anzi forse l&amp;rsquo;hanno persino accentuata. Parecchi lettori insoddisfatti sono &lt;a href=&#34;http://www.foliomag.com/how-readers-respond-when-magazine-goes-digital-only/&#34;&gt;scappati via&lt;/a&gt;, la diminuzione degli introiti ha avuto conseguenze negative sulla qualità dei contenuti allontanando ancora di più i lettori affezionati, che conservavano religiosamente le copie di carta dei tempi belli (anche io sono stato a lungo fra questi).&lt;/p&gt;&#xA;&lt;p&gt;Ma i ricordi e la storia sono importanti e, nonostante la disaffezione, ho voluto subito comprare l&amp;rsquo;&lt;a href=&#34;https://lj.mybigcommerce.com/categories/Archive-CD/&#34;&gt;archivio completo della rivista&lt;/a&gt; (in html), con gli articoli pubblicati dal primo numero del 1994 all&amp;rsquo;ultimo di novembre di quest&amp;rsquo;anno. Un paio di anni fa infatti, a causa di una perdita d&amp;rsquo;acqua, ho perso tutti i vecchi numeri tenuti incautamente in uno scatolone in cantina, e anche se non sono esattamente un appassionato della lettura su congegni elettronici, la versione elettronica della rivista è sempre meglio che niente. Del resto costa meno di 11 euro, un vero affare, anzi praticamente un furto.&lt;/p&gt;&#xA;&lt;p&gt;Riuscire ad acquistare l&amp;rsquo;archivio di Linux Journal però non è facile, ad ulteriore dimostrazione del decadimento degli ultimi tempi. Sulla home page non si trova nessun link, con Google sono arrivato a &lt;a href=&#34;https://lj.mybigcommerce.com/linux-journal-archive-1994-2017/&#34;&gt;questa pagina&lt;/a&gt;, dalla quale però non si riesce ad inserire l&amp;rsquo;ordine nel carrello. Invece &lt;a href=&#34;https://lj.mybigcommerce.com/categories/Archive-CD/&#34;&gt;questo link funziona perfettamente&lt;/a&gt;, ma ci ho messo dei giorni per accorgermene.&lt;/p&gt;&#xA;&lt;p&gt;Se è difficile comprare regolarmente ciò che resta di Linux Journal, è facilissimo invece arrivare ad una pagina non protetta del sito della rivista che contiene tutti i numeri disponibili in formato elettronico (che in teoria sono ancora in vendita), prima solo in pdf e poi anche in epub e mobi. Ho comprato regolarmente l&amp;rsquo;archivio ufficiale e quindi non mi sento in colpa a scaricarli (ma penso che l&amp;rsquo;amministratore del sito farebbe meglio a cambiare mestiere).&lt;/p&gt;&#xA;&lt;p&gt;Per chi ha più scrupoli di me, segnalo che &lt;a href=&#34;https://archive.org/details/linuxjournalmagazine?sort=-date&#34;&gt;tutti i numeri usciti in pdf di Linux Journal&lt;/a&gt; (cioè quelli pubblicati a partire da aprile 2005) sono già stati archiviati anche su &lt;a href=&#34;https://archive.org&#34;&gt;Archive.org&lt;/a&gt;, dove chiunque può leggerli o scaricarli in modo del tutto legale.&lt;/p&gt;&#xA;&lt;p&gt;Il contenuto della rivista in formato html è accessibile anche dal sito di Linux Journal, ma come al solito non c&amp;rsquo;è nessun link che permetta di arrivarci dalla pagina principale (e probabilmente nemmeno dalle altre). Lo &lt;em&gt;storico&lt;/em&gt; primo numero si trova a questo link, &lt;a href=&#34;https://www.linuxjournal.com/issue/1&#34;&gt;https://www.linuxjournal.com/issue/1&lt;/a&gt;, per accedere agli altri basta cambiare opportunamente il numero alla fine dell&amp;rsquo;URL (l&amp;rsquo;ultimo numero disponibile è il 206 di giugno 2011). In questo caso l&amp;rsquo;amministratore del sito non ha colpe, era normale per Linux Journal rendere liberamente accessibili i numeri della rivista dopo alcuni mesi dalla pubblicazione. Probabilmente hanno smesso di farlo quando hanno lanciato &lt;a href=&#34;http://www.linuxjournaldigital.com/linuxjournal&#34;&gt;l&amp;rsquo;edizione digitale &lt;em&gt;migliorata&lt;/em&gt;&lt;/a&gt; della rivista. Provatela ed avrete una sorpresa.&lt;/p&gt;&#xA;&lt;p&gt;R.I.P., Linux Journal, che gli elettroni ti siano lievi.&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;A parte &lt;a href=&#34;http://linuxgazette.net&#34;&gt;Linux Gazette&lt;/a&gt;, che però più che una rivista era una &lt;em&gt;fanzine&lt;/em&gt; per il web pubblicata da volontari appassionati di Linux (l&amp;rsquo;archivio funzionante di tutti i numeri di LG &lt;a href=&#34;http://www.tldp.org/LDP/LGNET/archives.html&#34;&gt;si trova qui&lt;/a&gt;).&amp;#160;&lt;a href=&#34;#fnref:1&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/div&gt;&#xA;</description>
    </item>
    <item>
      <title>Nostalgia di sfondo</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2017/07/13/nostalgia-di-sfondo/</link>
      <pubDate>Thu, 13 Jul 2017 06:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2017/07/13/nostalgia-di-sfondo/</guid>
      <description>&lt;img src=&#34;https://melabit.files.wordpress.com/2017/07/jaguar-aqua-blue.jpg&#34; alt=&#34;&#34;&gt;&lt;p&gt;Era il 2002, &lt;a href=&#34;https://arstechnica.com/apple/2002/09/macosx-10-2/&#34;&gt;Jaguar era uscito da poco&lt;/a&gt;, e io dopo tanti anni decisi di tornare al Mac. Da anni usavo a tempo pieno Linux, ma la grafica spettacolare di OS X unita al cuore che batteva Unix erano troppo allettanti per farsele sfuggire.&lt;/p&gt;&#xA;&lt;p&gt;Una delle cose che mi piacevano di più di Jaguar era lo sfondo del desktop. Semplicemente spettacolare, niente a che vedere con quello che si vedeva su Linux, un sistema operativo tecnicamente ineccebile ma di aspetto grafico miserrimo.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;Gli sfondi installati di default diventavano sempre più belli ad ogni nuova versione di OS X, i miei preferiti sono stati senza dubbio quelli di &lt;a href=&#34;http://oswallpapers.com/wp-content/uploads/2016/07/Tiger-Aqua-Blue.jpg&#34;&gt;Tiger&lt;/a&gt; e di &lt;a href=&#34;http://oswallpapers.com/wp-content/uploads/2016/07/DefaultDesktop.jpg&#34;&gt;Snow Leopard&lt;/a&gt;. Per chi è nostalgico, tutti (tutti!) &lt;a href=&#34;http://oswallpapers.com/category/mac-os/&#34;&gt;gli sfondi originali di OS X (e macOS) si possono trovare qui&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Purtroppo i Mac Retina attuali, con la loro super risoluzione, non rendono giustizia a questi capolavori grafici. Ringraziamo quindi caldamente (è proprio il caso di dirlo, di questi tempi) &lt;a href=&#34;https://512pixels.net/&#34;&gt;512Pixels&lt;/a&gt; per averne fatto una &lt;a href=&#34;https://512pixels.net/projects/default-mac-wallpapers-in-5k/&#34;&gt;versione 5K di ottima qualità&lt;/a&gt;. I nostalgici saranno contenti.&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;Oggi Linux è migliorato parecchio anche da questo punto di vista.&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>Linux per tutti i giorni</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2017/03/20/linux-per-tutti-i-giorni/</link>
      <pubDate>Mon, 20 Mar 2017 06:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2017/03/20/linux-per-tutti-i-giorni/</guid>
      <description>&lt;img src=&#34;https://imgs.xkcd.com/comics/cautionary.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;Qualche giorno fa una &lt;a href=&#34;http://macintelligence.org/blog/2017/03/13/la-pubblicita-e-l-anima/&#34;&gt;bella domanda di andy69&lt;/a&gt; su &lt;a href=&#34;http://macintelligence.org&#34;&gt;QuickLook&lt;/a&gt; mi ha stimolato ad elencare quelle che, secondo me, sono le distribuzioni di Linux più adatte per la vita di tutti i giorni.&lt;/p&gt;&#xA;&lt;p&gt;L&amp;rsquo;argomento mi interessa parecchio e ho pensato di riprenderlo e di estenderlo un po&amp;rsquo; in questo articolo.&lt;/p&gt;&#xA;&lt;h4 id=&#34;tante-distribuzioni-troppe-distribuzioni&#34;&gt;Tante distribuzioni, troppe distribuzioni&lt;/h4&gt;&#xA;&lt;p&gt;Le distribuzioni di Linux sono &lt;em&gt;troppe&lt;/em&gt;. E sono quasi tutte &lt;em&gt;inutili&lt;/em&gt;, semplici rimasticature delle distribuzioni maggiori.&lt;/p&gt;&#xA;&lt;p&gt;Ho cercato su &lt;a href=&#34;https://distrowatch.com/&#34;&gt;Distrowatch&lt;/a&gt; le distribuzioni che contengono una qualunque versione di &lt;code&gt;bash&lt;/code&gt; (se manca bash che distribuzione è?) e sono venute fuori ben 759 distribuzioni diverse, di cui solo ben 266 attive. Con &lt;code&gt;tar&lt;/code&gt; (idem) i risultati sono simili: ci sono 751 distribuzioni che lo contengono, di cui 263 sono attive.&lt;sup id=&#34;fnref:1&#34;&gt;&lt;a href=&#34;#fn:1&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;1&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;Di queste alcune sono iper-specializzate,  vedi &lt;a href=&#34;https://fermilinux.fnal.gov/&#34;&gt;Fermi Linux&lt;/a&gt;, sviluppata al &lt;a href=&#34;http://www.fnal.gov/&#34;&gt;FermiLab&lt;/a&gt;, il concorrente USA del &lt;a href=&#34;https://home.cern/&#34;&gt;CERN&lt;/a&gt;. Oppure &lt;a href=&#34;http://gparted.sourceforge.net/livecd.php&#34;&gt;GParted Live&lt;/a&gt; e &lt;a href=&#34;http://www.clonezilla.org/&#34;&gt;Clonezilla&lt;/a&gt;, che servono a partizionare o produrre immagini complete di backup del disco rigido, e &lt;a href=&#34;http://www.openmediavault.org/&#34;&gt;openmediavault&lt;/a&gt;, una distribuzione specifica per i &lt;a href=&#34;https://it.wikipedia.org/wiki/Network_Attached_Storage&#34;&gt;sistemi NAS&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Ma il mondo ha veramente bisogno di &lt;a href=&#34;https://distrowatch.com/table.php?distribution=mangaka&#34;&gt;Linux Mangaka&lt;/a&gt;, &lt;a href=&#34;https://distrowatch.com/table.php?distribution=korora&#34;&gt;Korora Project&lt;/a&gt;, &lt;a href=&#34;https://distrowatch.com/table.php?distribution=wattos&#34;&gt;wattOS&lt;/a&gt;, o di &lt;a href=&#34;https://distrowatch.com/table.php?distribution=voyager&#34;&gt;Voyager Live&lt;/a&gt;?&lt;/p&gt;&#xA;&lt;p&gt;Del resto uno dei problemi della mancata affermazione di Linux sul Desktop è proprio la eccessiva frammentazione della piattaforma:&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; gli utenti sono confusi e non sanno che distribuzione scegliere, per gli sviluppatori è ancora peggio perché già supportare solo le distribuzioni maggiori è un grattacapo non da poco.&lt;/p&gt;&#xA;&lt;p&gt;E allora facciamo un po&amp;rsquo; di spazio e vediamo quali sono le &lt;em&gt;migliori distribuzioni di Linux&lt;/em&gt;, intendendo con questa espressione le distribuzioni &lt;em&gt;veramente utili&lt;/em&gt;, adatte all&amp;rsquo;utente che voglia &lt;em&gt;usare&lt;/em&gt; Linux al posto di Windows o di (non si sa mai!) macOS/OS X per il suo lavoro di tutti i giorni, ma che sappia poco o nulla di sviluppo del software o di amministrazione dei sistemi operativi.&lt;/p&gt;&#xA;&lt;img src=&#34;https://itsfoss.com/wp-content/uploads/2013/07/Windows_Vs_Mac_Vs_Linux_10.jpg&#34; alt=&#34;&#34;&gt;&lt;h4 id=&#34;quali-distribuzioni&#34;&gt;Quali distribuzioni?&lt;/h4&gt;&#xA;&lt;p&gt;Cercare di stabilire quali siano le &lt;em&gt;migliori distribuzioni&lt;/em&gt; di Linux significa scatenare una guerra di religione peggiore della &lt;a href=&#34;http://www.alfonsomartone.itb.it/rqftcg.html&#34;&gt;grande guerra fra Commodoriani e Sinclairisti&lt;/a&gt;, durata per gran parte degli anni &amp;lsquo;80.&lt;/p&gt;&#xA;&lt;p&gt;Però, anche se non è il caso di parlare di distribuzioni &lt;em&gt;migliori&lt;/em&gt; o &lt;em&gt;peggiori&lt;/em&gt; in assoluto (dipende moltissimo dall&amp;rsquo;uso finale, un desktop ha richieste ben diverse da quelle di un server o di un NAS ), si può provare ad elencare quelle più adatte per essere usate ogni giorno dagli utenti che vogliano lavorare con Linux e non pasticciare continuamente con il sistema.&lt;/p&gt;&#xA;&lt;p&gt;Tutte opinioni personali, sia ben chiaro, decine di altri articoli su carta e su web presentano le cose in modo ben diverso.&lt;/p&gt;&#xA;&lt;h5 id=&#34;debian&#34;&gt;Debian&lt;/h5&gt;&#xA;&lt;p&gt;Dal mio punto di vista non c&amp;rsquo;è storia, la distribuzione Linux che preferisco in assoluto è &lt;a href=&#34;https://www.debian.org/&#34;&gt;Debian&lt;/a&gt;. Uso Debian dal 1997, l&amp;rsquo;ho installata per la prima volta sul mio Compaq 386 portatile caricando pazientemente decine di floppy disk e aggiustando a mano le &lt;a href=&#34;http://arachnoid.com/modelines/index.html&#34;&gt;modeline&lt;/a&gt; dello schermo.&lt;/p&gt;&#xA;&lt;p&gt;Debian ha parecchie asprezze iniziali e un po&amp;rsquo; di fissazioni sul software installato di default. Ma una volta attivata la sezione non-free, che consente fra l&amp;rsquo;altro di installare i driver specifici per la propria scheda grafica (avere una scheda grafica di qualità ed usarla con i driver generici è una vera assurdità) e dopo essersi documentati un po&amp;rsquo; in rete sugli aspetti più ostici, gli aspetti positivi di Debian vengono fuori alla grande.&lt;/p&gt;&#xA;&lt;p&gt;Su tutti la facilità di installazione del software: per questo non c&amp;rsquo;è sistema migliore di Debian, nemmeno l&amp;rsquo;App Store arriva allo stesso livello di comodità d&amp;rsquo;uso.&lt;/p&gt;&#xA;&lt;p&gt;Anzi, il concetto stesso di App Store centralizzato è stato inventato proprio da Debian: tutti i pacchetti software (&lt;em&gt;package&lt;/em&gt;) accettati nella distribuzione sono disponibili negli archivi (&lt;em&gt;repository&lt;/em&gt;)  ufficiali, non c&amp;rsquo;è bisogno di andarli a cercare qui a là per la rete come succede purtroppo con RedHat e derivate (vedi sotto). Tanto per dare una idea, in questo momento in Debian ci sono oltre 40.000 package disponibili, che soddisfano praticamente tutte le necessità degli utenti.&lt;sup id=&#34;fnref:3&#34;&gt;&lt;a href=&#34;#fn:3&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;3&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;p&gt;Una volta selezionato un package per l&amp;rsquo;installazione, il sistema di gestione dei pacchetti &lt;code&gt;apt&lt;/code&gt; è in grado di selezionare ed installare automaticamente tutte le &lt;em&gt;dipendenze&lt;/em&gt;, cioè i pacchetti e le librerie da cui il package selezionato dipende.&lt;/p&gt;&#xA;&lt;p&gt;Ormai anche in Linux si sta affermando un metodo diverso di distribuzione del software, con il quale tutte le librerie e i file accessori vengono inglobate nel pacchetto principale (&lt;em&gt;bundle&lt;/em&gt;), lo stesso meccanismo che esiste da sempre in Mac OS X (e prima in NeXTSTEP). Ma vent&amp;rsquo;anni fa lo spazio sugli hard-disk non era abbondante come oggi ed il meccanismo messo a punto da Debian riusciva a trovare un buon equilibrio fra lo spazio occupato sul disco rigido e la facilità d&amp;rsquo;uso. Non è certo un caso che alla fine quasi tutte le distribuzioni concorrenti l&amp;rsquo;abbiano adottato.&lt;/p&gt;&#xA;&lt;h5 id=&#34;linux-mint&#34;&gt;Linux Mint&lt;/h5&gt;&#xA;&lt;p&gt;Il difetto principale di Debian è anche il suo pregio (per chi lo apprezza): bisogna configurare quasi da zero il proprio sistema, scegliendo in fase di installazione cosa farà la macchina e di conseguenza la base software da installare (che si può estendere facilmente in seguito). Anche l&amp;rsquo;aspetto grafico va definito praticamente a mano, scegliendo il tema grafico, lo sfondo, le icone, fra le migliaia e migliaia di opzioni disponibili.&lt;/p&gt;&#xA;&lt;p&gt;Tutto ciò è molto flessibile per chi sa come muoversi, ma contribuisce anche a disorientare l&amp;rsquo;utente alle prime armi.&lt;/p&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://linuxmint.com/&#34;&gt;Linux Mint&lt;/a&gt; è un buon compromesso: base derivata da Debian (e perfettamente compatibile con la distribuzione principale), ma tema grafico ben definito e piuttosto accattivante, anche per chi è abituato al Mac. Non chiedetemi però la differenza fra le versioni &amp;ldquo;Cinnammon&amp;rdquo; e &amp;ldquo;MATE&amp;rdquo; di Mint, perché non me la ricordo mai. La versione &amp;ldquo;Xfce&amp;rdquo; va bene per chi vuole ridurre il peso del sistema grafico sul proprio computer, mentre la &amp;ldquo;KDE&amp;rdquo; va bene per chi vuol farsi male da solo.&lt;/p&gt;&#xA;&lt;h5 id=&#34;ubuntu&#34;&gt;Ubuntu&lt;/h5&gt;&#xA;&lt;p&gt;Ubuntu è una derivazione di Debian, che in pochi anni è diventata la distribuzione più diffusa di Linux.&lt;/p&gt;&#xA;&lt;p&gt;All&amp;rsquo;inizio era una vera bomba, l&amp;rsquo;ho usata e consigliata parecchio, mi sono perfino registrato per ricevere i CD/DVD delle nuove &lt;em&gt;release&lt;/em&gt; che distribuivo a chiunque mi capitasse a tiro (parliamo di tempi in cui scaricare un intero CD o peggio un DVD dalla rete era una impresa preclusa a chi aveva solo una connessione via modem alla rete).&lt;/p&gt;&#xA;&lt;p&gt;Poi Ubuntu è cresciuta, forse troppo ed ha perso il suo smalto. Aggiornare Ubuntu da una release all&amp;rsquo;altra è una impresa quasi impossibile (o almeno, è una impresa che porta un sacco di grattacapi) e anche il fatto di promettere da anni innovazioni strepitose che poi non si concretizzano mai (leggi Wayland prima e Mir poi, i server grafici che avrebbero dovuto rimpiazzare il venerando X, attesi &lt;a href=&#34;http://www.markshuttleworth.com/archives/551&#34;&gt;dal lontano 2010&lt;/a&gt; e non ancora diventati realmente usabili, o Ubuntu Phone che ha fatto più o meno la fine del corrispettivo Microsoft).&lt;/p&gt;&#xA;&lt;h5 id=&#34;opensuse&#34;&gt;openSUSE&lt;/h5&gt;&#xA;&lt;p&gt;A parte Debian, l&amp;rsquo;altra distribuzione che mi è sempre piaciuta è SuSE Linux o meglio, come si chiama oggi la versione desktop, &lt;a href=&#34;https://www.opensuse.org/&#34;&gt;openSUSE&lt;/a&gt;. Una distribuzione tedesca, precisa e rigorosa come chi l&amp;rsquo;ha sviluppata, la prima che ha sviluppato uno strumento integrato di configurazione e di gestione di tutto il sistema operativo. Anche l&amp;rsquo;installatore qualche anno fa era avanti anni luce rispetto alle altre distribuzioni.&lt;/p&gt;&#xA;&lt;p&gt;Non la uso, se non occasionalmente, da parecchio perché ha qualche problema con Parallels, che è ormai lo strumento principale con cui uso Linux oggi (vediamo se con la beta di quest&amp;rsquo;anno si riesce a migliorarne il supporto).&lt;/p&gt;&#xA;&lt;p&gt;Potrebbe essere interessante provarla con la &lt;a href=&#34;https://itunes.apple.com/it/app/parallels-desktop-lite/id1085114709&#34;&gt;versione Lite di Parallels&lt;/a&gt;, che viene distribuita gratuitamente da qualche giorno sull&amp;rsquo;App Store.&lt;sup id=&#34;fnref:4&#34;&gt;&lt;a href=&#34;#fn:4&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;4&lt;/a&gt;&lt;/sup&gt;&lt;/p&gt;&#xA;&lt;h5 id=&#34;redhat-fedora-centos&#34;&gt;RedHat, Fedora, CentOS?&lt;/h5&gt;&#xA;&lt;p&gt;Non voglio parlare qui di &lt;a href=&#34;https://www.redhat.com/en&#34;&gt;RedHat&lt;/a&gt; e derivate, come &lt;a href=&#34;https://getfedora.org/&#34;&gt;Fedora&lt;/a&gt; e &lt;a href=&#34;https://www.centos.org/&#34;&gt;CentOS&lt;/a&gt;. Non mi sono mai piaciute e quindi non le uso. Ci ho provato ogni tanto con RedHat, ma ho sempre lasciato perdere.&lt;/p&gt;&#xA;&lt;p&gt;Uso ogni tanto su un server una versione specifica di CentOS, richiesta dal software scientifico professionale (e piuttosto costoso) che ci gira sopra. E ogni volta che lo faccio mi chiedo come si faccia ad avere la pazienza di andare a cercare per ogni dove i pacchetti software che servono. Forse è colpa mia che non so gestire al meglio questo tipo di distribuzioni.&lt;/p&gt;&#xA;&lt;h5 id=&#34;pixel&#34;&gt;Pixel&lt;/h5&gt;&#xA;&lt;p&gt;Se avete un vecchio computer a cui dare nuova vita, &lt;a href=&#34;https://www.raspberrypi.org/blog/pixel-pc-mac/&#34;&gt;Pixel&lt;/a&gt; è la distribuzione che fa per voi. Pixel è una distribuzione sviluppata originariamente per il &lt;a href=&#34;https://www.raspberrypi.org/&#34;&gt;Raspberry Pi&lt;/a&gt; &amp;ndash; il microcomputer a bassissimo costo tanto popolare fra chi vuole riuscire a mettere le mani &lt;em&gt;dentro&lt;/em&gt; un computer e fargli fare le cose più impensate e impensabili &amp;ndash; ed è stato poi portato ai computer con processore Intel.&lt;/p&gt;&#xA;&lt;p&gt;Pixel gira molto bene sui Raspberry Pi più recenti, e a maggior ragione può andare a pennello per il vecchio portatile buttato in cantina a prendere polvere, che è a priori molto più potente di un qualunque Raspberry Pi.&lt;/p&gt;&#xA;&lt;p&gt;Un discorso analogo vale per &lt;a href=&#34;https://elementary.io/&#34;&gt;Elementary OS&lt;/a&gt;, per il quale esiste un &lt;a href=&#34;https://github.com/aroman/elementary-on-a-mac&#34;&gt;progetto dedicato specificatamente ad installarlo sul Mac&lt;/a&gt;, in parallelo a macOS/OS X. Interessante questo &lt;a href=&#34;https://taoofmac.com/space/blog/2016/10/29/2240&#34;&gt;racconto dell&amp;rsquo;esperienza di un utente Mac&lt;/a&gt;, deluso dalle ultime novità hardware prodotte da Apple.&lt;/p&gt;&#xA;&lt;h5 id=&#34;frebsd&#34;&gt;FreBSD&lt;/h5&gt;&#xA;&lt;p&gt;&lt;a href=&#34;https://www.freebsd.org/&#34;&gt;FreeBSD&lt;/a&gt; non è Linux, ma rappresenta la base UNIX originale su cui si fonda macOS/OS X. Di conseguenza può essere un&amp;rsquo;ottima alternativa a Linux per chi usa il Mac. In pratica, le &lt;a href=&#34;https://www.freebsd.org/doc/en/articles/explaining-bsd/comparing-bsd-and-linux.html&#34;&gt;differenze fra FreeBSD e Linux&lt;/a&gt; sono minime (o quasi) e spesso &lt;a href=&#34;https://www.over-yonder.net/~fullermd/rants/bsd4linux/01&#34;&gt;comprensibili solo a chi è particolarmente competente&lt;/a&gt; di sistemi operativi e sviluppo del software. Lo stesso vale per i tanti derivati di FreeBSD, fra cui non si possono non menzionare &lt;a href=&#34;http://www.openbsd.org/&#34;&gt;NetBSD&lt;/a&gt;, che gira praticamente ovunque o &lt;a href=&#34;http://www.openbsd.org/&#34;&gt;OpenBSD&lt;/a&gt;, particolarmente focalizzato sulla sicurezza).&lt;/p&gt;&#xA;&lt;h4 id=&#34;stabile-o-instabile&#34;&gt;Stabile o instabile?&lt;/h4&gt;&#xA;&lt;p&gt;Nessun dubbio su questo: chi vuole iniziare ad usare Linux deve scegliere la versione &lt;em&gt;stabile&lt;/em&gt; di Debian (o di qualunque altra distribuzione), lasciando le versioni di &lt;em&gt;test&lt;/em&gt; o peggio quelle &lt;em&gt;instabili&lt;/em&gt; (chiamate sempre e non a caso &amp;ldquo;sid&amp;rdquo; su Debian)&lt;sup id=&#34;fnref:5&#34;&gt;&lt;a href=&#34;#fn:5&#34; class=&#34;footnote-ref&#34; role=&#34;doc-noteref&#34;&gt;5&lt;/a&gt;&lt;/sup&gt; per il futuro, quando si avrà più esperienza e pratica con Linux. È meno divertente ma di sicuro è molto più conveniente.&lt;/p&gt;&#xA;&lt;p&gt;Per uno sviluppatore &lt;a href=&#34;https://raphaelhertzog.com/2010/12/20/5-reasons-why-debian-unstable-does-not-deserve-its-name/&#34;&gt;anche sid può andare bene&lt;/a&gt; come distribuzione da usare tutti i giorni, e spesso è più stabile di tanti altri sistemi operativi, ma il solo fatto di dover aggiornare decine e decine di pacchetti ogni giorno non è di certo una cosa adatta all&amp;rsquo;utente &lt;em&gt;normale&lt;/em&gt;, che voglia usare il proprio computer per lavorare e non per giocare con il sistema (cosa peraltro bellissima per chi lo sa fare).&lt;/p&gt;&#xA;&lt;img src=&#34;https://itsfoss.com/wp-content/uploads/2013/07/Windows-Vs-Mac-Vs-Linux-Jokes_1.jpg&#34; alt=&#34;&#34;&gt;&lt;h4 id=&#34;conclusioni&#34;&gt;Conclusioni&lt;/h4&gt;&#xA;&lt;p&gt;Linux può essere una bella esperienza anche per un utente Apple. Si può installare senza troppi problemi sul proprio Mac, in parallelo a macOS/OS X. Si può installare in una macchina virtuale gestita da &lt;a href=&#34;https://www.virtualbox.org/&#34;&gt;VirtualBox&lt;/a&gt; (gratuito) oppure da &lt;a href=&#34;http://www.parallels.com/it/&#34;&gt;Parallels&lt;/a&gt; o &lt;a href=&#34;http://www.vmware.com/products/fusion.html&#34;&gt;VMWare Fusion&lt;/a&gt; (a pagamento, ma c&amp;rsquo;è anche la versione &lt;em&gt;Lite&lt;/em&gt; di parallels citata prima), senza toccare nulla sul Mac. O si può usare per far rivivere un vecchio Mac lasciato in un angolo, persino un modello con processore PPC su cui può girare al massimo Leopard.&lt;/p&gt;&#xA;&lt;p&gt;E non c&amp;rsquo;è niente di meglio per far rivivere un vecchio Netbook, macchine popolarissime dieci anni fa, nate con Linux ma &lt;em&gt;uccise&lt;/em&gt; dalla Microsoft dell&amp;rsquo;era Ballmer, che pretendeva di farci girare Windows pur con limitazioni hardware tanto stringenti quanto assurde.&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;Sarei proprio curioso di sapere quali distribuzioni &lt;em&gt;non contengono&lt;/em&gt; &lt;code&gt;bash&lt;/code&gt; o &lt;code&gt;tar&lt;/code&gt; e perché.&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;Il discorso vale più o meno negli stessi termini anche per Android.&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;Come se non bastasse, ci sono ulteriori repository &lt;a href=&#34;https://wiki.debian.org/UnofficialRepositories&#34;&gt;non ufficiali&lt;/a&gt;, che soddisfano necessità più specifiche e che possono essere aggiunti facilmente alla lista dei repository standard.&amp;#160;&lt;a href=&#34;#fnref:3&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:4&#34;&gt;&#xA;&lt;p&gt;Purtroppo con Parallels (ma anche con VMware se è per questo), il vero scoglio non è tanto installare la distribuzione quanto installare i tool di supporto specifici dell&amp;rsquo;emulatore, che servono a migliorare l&amp;rsquo;interazione fra il Mac e la macchina virtuale.&amp;#160;&lt;a href=&#34;#fnref:4&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;li id=&#34;fn:5&#34;&gt;&#xA;&lt;p&gt;I nomi delle distribuzioni Debian sono tratti tutti da &lt;a href=&#34;https://it.wikipedia.org/wiki/Toy_Story_-_Il_mondo_dei_giocattoli&#34;&gt;Toy Story&lt;/a&gt; (film straordinario); Sid è il ragazzino cattivo che distrugge i giocattoli per il puro piacere di farlo.&amp;#160;&lt;a href=&#34;#fnref:5&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/div&gt;&#xA;</description>
    </item>
    <item>
      <title>Divertirsi con il terminale</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2017/02/12/divertirsi-con-il-terminale/</link>
      <pubDate>Sun, 12 Feb 2017 06:05:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2017/02/12/divertirsi-con-il-terminale/</guid>
      <description>&lt;img src=&#34;https://c1.staticflickr.com/1/756/32436572466_37a142d66a_z.jpg&#34; alt=&#34;&#34; title=&#34;Paul Brouns, Imaginary Symphony&#34;&gt;&lt;p&gt;Siete dei fanatici della linea di comando? Volete mettere alla prova la vostra conoscenza del terminale &amp;ndash; l&amp;rsquo;interfaccia a linea di comando di Linux o di macOS/OS X &amp;ndash; e della shell &lt;code&gt;bash&lt;/code&gt;?&lt;/p&gt;&#xA;&lt;p&gt;Se avete risposto &amp;lsquo;si&amp;rsquo; ad entrambe le domande, fatevi un giretto su &lt;a href=&#34;https://cmdchallenge.com/&#34;&gt;Commandline Challenge&lt;/a&gt; e mettete alla prova le vostre capacità, risolvendo le sfide proposte.&lt;/p&gt;&#xA;&lt;p&gt;Alcune &lt;a href=&#34;https://about.cmdchallenge.com/&#34;&gt;possibili soluzioni&lt;/a&gt; sono molto più involute ed intricate di quanto sarebbe normale, ma dimostrano allo stesso tempo una maestria con i comandi della shell che rasenta l&amp;rsquo;arte.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;Post Scriptum&lt;/em&gt;. Non prendetevela con me se la vostra produttività crolla vertiginosamente dopo aver letto questo post!&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>Command line fun</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2017/02/12/command-line-fun/</link>
      <pubDate>Sun, 12 Feb 2017 06:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2017/02/12/command-line-fun/</guid>
      <description>&lt;img src=&#34;https://farm8.staticflickr.com/7403/26761999542_7864fda90e_z.jpg&#34; alt=&#34;&#34; title=&#34;Paul Brouns, London Symphony&#34;&gt;&lt;p&gt;Are you a fan of the command line? Do you wish to test your knowledge of the terminal &amp;ndash; the command line interface of Linux or macOS/OS X &amp;ndash; and of the &lt;code&gt;bash&lt;/code&gt; shell?&lt;/p&gt;&#xA;&lt;p&gt;If you answered &amp;lsquo;yes&amp;rsquo; to the questions above, head your browser to &lt;a href=&#34;https://cmdchallenge.com/&#34;&gt;Commandline Challenge&lt;/a&gt; and test your skills trying to solve the challenges proposed there.&lt;/p&gt;&#xA;&lt;p&gt;Some of the &lt;a href=&#34;https://about.cmdchallenge.com/&#34;&gt;possible solutions&lt;/a&gt; are much more convoluted than normal, but they also show a technical mastery that resembles art.&lt;/p&gt;&#xA;&lt;p&gt;Disclaimer. It is not &lt;em&gt;my&lt;/em&gt; fault if your productivity sinks after reading this post!&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>Windows apre a Linux: gli ex nemici diventano amici?</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2016/04/14/windows-apre-a-linux-gli-ex-nemici-diventano-amici/</link>
      <pubDate>Thu, 14 Apr 2016 06:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2016/04/14/windows-apre-a-linux-gli-ex-nemici-diventano-amici/</guid>
      <description>&lt;p&gt;La recente mossa di Microsoft di integrare in Windows 10 il supporto alle applicazioni Linux ha stupito più di un commentatore. Per anni, ai tempi del dominio incontrastato di Windows, Linux era &lt;em&gt;il male assoluto&lt;/em&gt;, il sistema operativo che andava contro i principi ispiratori del fondatore Bill Gates, e del suo epigono, Steve Ballmer. Anzi, Microsoft ha fatto per anni di tutto per &lt;a href=&#34;http://www.keyforweb.it/windows-10-impedira-di-installare-linux-su-notebook-e-pre-assemblati/&#34;&gt;scoraggiare&lt;/a&gt;, e perfino per &lt;a href=&#34;http://www.pcworld.com/article/2901262/microsoft-tightens-windows-10s-secure-boot-screws-where-does-that-leave-linux.html&#34;&gt;impedire&lt;/a&gt;, l&amp;rsquo;installazione di Linux al posto o in parallelo al suo sistema operativo&lt;/p&gt;&#xA;&lt;p&gt;Ma i tempi cambiano, Windows non è più la piattaforma dominante, il &lt;em&gt;mobile&lt;/em&gt; e il &lt;em&gt;cloud&lt;/em&gt; le stanno assestando colpi potentissimi, se Android e iOS non l&amp;rsquo;hanno ancora soppiantato in termini numerici lo hanno fatto di sicuro &amp;ndash; cosa ancora più preoccupante &amp;ndash; in termini di interesse degli sviluppatori.&lt;/p&gt;&#xA;&lt;p&gt;Ma cosa significa &lt;em&gt;in pratica&lt;/em&gt; integrare Linux in Windows? I particolari della mossa di Microsoft sono ancora troppo scarsi e frammentari per poter rispondere in modo dettagliato alla domanda. L&amp;rsquo;articolo più completo e affidabile che ho letto finora sull&amp;rsquo;argomento &lt;a href=&#34;http://arstechnica.com/information-technology/2016/04/why-microsoft-needed-to-make-windows-run-linux-software/&#34;&gt;è stato pubblicato su ArsTecnica&lt;/a&gt; (e poteva essere diversamente?) qualche giorno fa. Ecco un riassunto delle principali informazioni tratte dall&amp;rsquo;articolo, insieme a qualche considerazione personale.&lt;/p&gt;&#xA;&lt;h4 id=&#34;windows-subsystem-for-linux&#34;&gt;Windows Subsystem for Linux&lt;/h4&gt;&#xA;&lt;p&gt;Il prossimo &lt;a href=&#34;http://arstechnica.com/information-technology/2016/03/windows-10-270-million-users-binbash-supporting-anniversary-update-coming-summer/&#34;&gt;aggiornamento di Windows 10&lt;/a&gt; previsto per l&amp;rsquo;estate conterrà il cosiddetto &lt;a href=&#34;https://blogs.windows.com/buildingapps/2016/03/30/run-bash-on-ubuntu-on-windows/&#34;&gt;Windows Subsystem for Linux (WSL)&lt;/a&gt;, un insieme di nuovi componenti di base di Windows in grado di eseguire le applicazioni fondamentali di Linux (e del mondo Unix in generale): sicuramente la shell &lt;a href=&#34;https://www.gnu.org/software/bash/&#34;&gt;bash&lt;/a&gt; e i relativi strumenti di sistema &lt;a href=&#34;https://www.gnu.org/software/sed/manual/sed.html&#34;&gt;sed&lt;/a&gt;, &lt;a href=&#34;http://www.gnu.org/software/gawk/manual/gawk.html&#34;&gt;awk&lt;/a&gt;, &lt;a href=&#34;https://en.wikipedia.org/wiki/Diff_utility&#34;&gt;diff&lt;/a&gt;, &lt;a href=&#34;https://en.wikipedia.org/wiki/Grep&#34;&gt;grep&lt;/a&gt;, probabilmente &lt;a href=&#34;https://www.gnu.org/software/make/&#34;&gt;make&lt;/a&gt; per la compilazione &lt;em&gt;intelligente&lt;/em&gt; delle applicazionie, &lt;a href=&#34;https://www.gnu.org/software/gdb/&#34;&gt;gdb&lt;/a&gt; per il debug e &lt;a href=&#34;https://git-scm.com/&#34;&gt;git&lt;/a&gt; per il controllo di versione, i &lt;a href=&#34;https://gcc.gnu.org/&#34;&gt;compilatori&lt;/a&gt; e gli interpreti dei &lt;a href=&#34;https://www.python.org/&#34;&gt;principali&lt;/a&gt; &lt;a href=&#34;https://www.ruby-lang.org/en/&#34;&gt;linguaggi&lt;/a&gt; di &lt;a href=&#34;https://nodejs.org/en/&#34;&gt;programmazione&lt;/a&gt;, con le relative librerie. Tutta roba da sviluppatori, tutta roba che si usa dalla linea di comando. Niente applicazioni grafiche per l&amp;rsquo;utente finale, WSL non contiene X11, il software che gestisce le applicazioni grafiche in Linux e Unix.&lt;/p&gt;&#xA;&lt;p&gt;L&amp;rsquo;infrastruttura e i componenti di base sono stati sviluppati da Microsoft, mentre le applicazioni Linux verranno fornite da Canonical, l&amp;rsquo;azienda che sviluppa &lt;a href=&#34;http://www.ubuntu.com&#34;&gt;Ubuntu&lt;/a&gt;, la distribuzione più popolare di Linux. Tali applicazioni sono esattamente le stesse che girano su Ubuntu, senza bisogno di ricompilazioni o di adattamenti particolari per Windows.&lt;/p&gt;&#xA;&lt;p&gt;Le applicazioni fondamentali fornite da Canonical verranno installate tramite un tipico programma di installazione per Windows. Ci sarà la possibilità di aggiungere ulteriori applicazioni tramite i comandi &lt;code&gt;apt-get&lt;/code&gt; e &lt;code&gt;dpkg&lt;/code&gt;, usati da Ubuntu (e da tutte le distribuzioni Linux derivate da &lt;a href=&#34;https://www.debian.org/&#34;&gt;Debian&lt;/a&gt;) per l&amp;rsquo;installazione del software dalla linea di comando.&lt;/p&gt;&#xA;&lt;h4 id=&#34;windows-come-piattaforma-di-sviluppo&#34;&gt;Windows come piattaforma di sviluppo&lt;/h4&gt;&#xA;&lt;p&gt;Con questa mossa Microsoft riconosce di non essere più la principale piattaforma di sviluppo del software, come era diciamo fino a una decina di anni fa. Ormai lo sviluppo &lt;em&gt;vero&lt;/em&gt; si è spostato sul web (non si contano le applicazioni, anche di ottima qualità, che girano direttamente in un browser) e sui dispositivi mobili. Due campi in cui la Microsoft è quasi irrilevante, da un lato perché le applicazioni web sono independenti dal sistema operativo sottostante, dall&amp;rsquo;altro per il sostanziale fallimento dell&amp;rsquo;idea di unificare sistemi fissi e mobili in un ibrido mal fatto e mal venduto.&lt;/p&gt;&#xA;&lt;p&gt;Inoltre, i programmatori e i sistemisti che escono dalle università americane crescono in un ambiente dominato da Linux (e Unix), sono abituati ad usare gli strumenti di sviluppo di questo ambiente e si trovano a mal partito con quelli tipici di Windows.&lt;/p&gt;&#xA;&lt;p&gt;Gli stessi programmatori/sistemisti sono abituati da anni ad usare i prodotti Apple, magari sono partiti da iOS per approdare a OS X, con il suo cuore Unix già pronto e ben configurato, senza le complicazioni associate a Linux e alle sue infinite distribuzioni differenti e senza (almeno finora!) i pericoli di sicurezza e i fastidi di gestione del sistema tipici di un PC con Windows. Nemmeno il costo è un vero problema perché, c&amp;rsquo;è poco da fare, un computer con caratteristiche analoghe a quelle dei sistemi Apple ha costi comparabili e una qualità media decisamente minore.&lt;/p&gt;&#xA;&lt;p&gt;Per cercare di contrastare questo stato di cose, la Microsoft ha anche deciso di &lt;a href=&#34;http://arstechnica.com/information-technology/2016/03/xamarin-now-free-in-visual-studio/&#34;&gt;integrare gratuitamente Xamarin&lt;/a&gt; (un tipico strumento di sviluppo orientato al mondo mobile) in Visual Studio. Accoppiata alla disponibilità di un emulatore Android di qualità e al supporto sempre maggiore allo sviluppo per Android, dimostra in modo palese come Microsoft stia cercando di rendere Windows la piattaforma preferita dagli sviluppatori Android (e forse anche iOS), provando a recuperare il tempo e le posizioni perdute.&lt;/p&gt;&#xA;&lt;h4 id=&#34;virtualizzazione&#34;&gt;Virtualizzazione&lt;/h4&gt;&#xA;&lt;p&gt;Francamente sono stupito dalla banalità dell&amp;rsquo;approccio Microsoft all&amp;rsquo;integrazione di Linux in Windows, e dalla risonanza che ha avuto. In fondo il WSL di Windows 10 non è altro che un emulatore, o meglio un virtualizzatore, niente di particolarmente nuovo o sofisticato.&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;a href=&#34;https://blogs.windows.com/buildingapps/2016/03/30/run-bash-on-ubuntu-on-windows/&#34;&gt;Lo dice fra le righe la stessa Microsoft&lt;/a&gt;: come è tipico di un emulatore/virtualizzatore, &lt;code&gt;bash&lt;/code&gt; e tutte le applicazioni Linux sono isolate e non possono comunicare con le applicazioni per Windows: non si può lanciare una applicazione per Windows da bash o al contrario eseguire bash dal terminale standard di Windows (l&amp;rsquo;orrido, quasi inusabile &lt;code&gt;cmd&lt;/code&gt;) o dal più performante &lt;a href=&#34;https://it.wikipedia.org/wiki/Windows_PowerShell&#34;&gt;PowerShell&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;La Microsoft ha già fatto qualcosa di molto simile ai tempi di Windows 7. Le edizioni &lt;em&gt;professionali&lt;/em&gt; di Windows 7 dispongono infatti della cosiddetta &lt;a href=&#34;http://windows.microsoft.com/it-it/windows7/install-and-use-windows-xp-mode-in-windows-7&#34;&gt;modalità Windows XP&lt;/a&gt;, utilizzando la quale è possibile far girare le applicazioni per Windows XP non compatibili in una macchina virtuale separata all&amp;rsquo;interno di Windows 7. La macchina virtuale è preconfigurata dalla Microsoft, per cui l&amp;rsquo;utente non si accorge (o quasi) della sua esistenza.&lt;/p&gt;&#xA;&lt;p&gt;Per di più su Windows esiste da anni il progetto &lt;a href=&#34;https://www.cygwin.com&#34;&gt;Cygwin&lt;/a&gt; che fa &lt;em&gt;praticamente&lt;/em&gt; la stessa cosa dell&amp;rsquo;accoppiata WSL/Ubuntu. Anzi parecchio di più, dato che funziona su una qualunque versione di Windows da XP in poi e permette di usare non solo le applicazioni da linea di comando ma anche quelle grafiche.&lt;/p&gt;&#xA;&lt;p&gt;È vero che le applicazioni provenienti da Linux devono essere adattate per poter essere compilate e per girare sotto Cygwin, ma lo stesso succede anche per Ubuntu, dove chi prepara i pacchetti binari di installazione di ciascuna applicazione deve preoccuparsi di adattare il codice sorgente originale in modo che sia compatibile con le librerie e il resto del software presente nella distribuzione, ripetendo il processo ad ogni aggiornamento del codice sorgente e della distribuzione. Un lavoro non banale, soprattutto per le applicazioni più complesse.&lt;/p&gt;&#xA;&lt;p&gt;E poi, dai, siamo seri, vedere nelle foto della presentazione di WSL i dischi &lt;code&gt;C:&lt;/code&gt;, &lt;code&gt;D:&lt;/code&gt;, &lt;code&gt;E:&lt;/code&gt;, &lt;code&gt;F:&lt;/code&gt; tipici di Windows, o meglio reperti archeologici del DOS, essere tradotti nel sistema Linux all&amp;rsquo;interno di Windows in &lt;code&gt;/mnt/c/&lt;/code&gt;, &lt;code&gt;/mnt/d/&lt;/code&gt; e così via, da quel senso di &lt;em&gt;déjà vu&lt;/em&gt; ammuffito che fa stringere il cuore.&lt;/p&gt;&#xA;&lt;img src=&#34;http://cdn.arstechnica.net/wp-content/uploads/2016/04/img_0018-640x426.jpg&#34; alt=&#34;&#34;&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;Un emulatore simula il funzionamento completo di una macchina che può avere componenti hardware completamente diversi da quelli del sistema &lt;em&gt;ospite&lt;/em&gt; su cui gira l&amp;rsquo;emulatore (si pensi ad esempio all&amp;rsquo;emulatore di un Apple II su un PC o su un Mac). Un virtualizzatore invece fa girare un altro sistema operativo utilizzando direttamente l&amp;rsquo;hardware del sistema ospite.&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>Swift open source</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2015/06/09/swift-open-source/</link>
      <pubDate>Tue, 09 Jun 2015 06:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2015/06/09/swift-open-source/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://melabit.files.wordpress.com/2015/06/swift_open_source.png&#34;&gt;&lt;img src=&#34;https://melabit.files.wordpress.com/2015/06/swift_open_source.png?w=605&#34; alt=&#34;Swift open source&#34; width=&#34;605&#34; height=&#34;481&#34; class=&#34;aligncenter size-large wp-image-1910&#34; /&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;Per motivi familiari oggi non ho potuto seguire il WWDC, e in questo momento (poco prima di mezzanotte) &lt;a href=&#34;http://www.apple.com/live/2015-june-event/&#34;&gt;il keynote non è ancora dsponibile&lt;/a&gt; sul sito di Apple.&lt;/p&gt;&#xA;&lt;p&gt;Sono però riuscito a scorrere gli &lt;em&gt;highlight&lt;/em&gt; del keynote e mi ha colpito immediatamente leggere che, fra qualche mese, Swift diventerà open source e sarà disponibile non più solo per OS X e iOS, ma anche per Linux.&lt;/p&gt;&#xA;&lt;p&gt;È un segno dei tempi, l&amp;rsquo;open source è un fenomeno straordinario con il quale anche Apple deve fare i conti.&lt;/p&gt;&#xA;&lt;p&gt;Ma significa anche che Apple si è finalmente decisa a diffondere Swift in un ambito più ampio, cercando di farlo adottare anche dagli sviluppatori non strettamente legati alla sua piattaforma.&lt;/p&gt;&#xA;&lt;p&gt;Una bella notizia. Per quanto mi riguarda è un forte stimolo a iniziare a giocherellare con Swift. Speriamo che Apple renda disponibili ulteriori dettagli al più presto.&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>Automatizzare il Mac dal Terminale - Ancora Launchd</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2015/04/28/automatizzare-il-mac-dal-terminale-ancora-launchd/</link>
      <pubDate>Tue, 28 Apr 2015 06:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2015/04/28/automatizzare-il-mac-dal-terminale-ancora-launchd/</guid>
      <description>&lt;p&gt;A volte bisogna saper ammettere i propri errori. Questa è una di quelle volte.&lt;/p&gt;&#xA;&lt;p&gt;Nel mio &lt;a href=&#34;https://melabit.wordpress.com/2014/12/11/automatizzare-il-mac-dal-terminale-una-soluzione-targata-apple/&#34;&gt;post su launchd&lt;/a&gt; di qualche mese fa non avevo nascosto il mio scetticismo per una soluzione molto lontana dai &lt;a href=&#34;http://www.faqs.org/docs/artu/ch01s06.html&#34;&gt;canoni di Unix&lt;/a&gt; e troppo complicata per essere usata al posto di cron, il programma che nei sistemi operativi derivati da Unix è incaricato di eseguire periodicamente dei comandi o degli interi script in modo automatico.&lt;/p&gt;&#xA;&lt;p&gt;Leggendo però &lt;a href=&#34;http://www.macstories.net/tutorials/how-i-control-my-mac-with-automatic-ifttt-dropbox/&#34;&gt;questo post su MacStories&lt;/a&gt;, mi sono reso conto dell&amp;rsquo;esistenza di una ulteriore opzione di launchd, &lt;code&gt;QueueDirectories&lt;/code&gt;, che permette di di tenere sotto controllo una (o più) &lt;a href=&#34;https://melabit.wordpress.com/le-parole-per-dirlo/&#34;&gt;directory&lt;/a&gt; del Mac e di eseguire automaticamente un comando ogni qualvolta si aggiunge un file alla directory osservata.&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;Oltre a questa esiste una opzione più generale, &lt;code&gt;WatchPaths&lt;/code&gt;, che permette di tenere sotto controllo uno o più file (o directory) ed eseguire un comando quando uno di questi file (o directory) viene modificato.&lt;/p&gt;&#xA;&lt;p&gt;Con queste due nuove (almeno per me!) opzioni si può estendere notevolmente il campo di applicazione di launchd, facendogli eseguire un comando o uno script non solo in modo periodico (in sostituzione di cron), ma anche al verificarsi di un evento come l&amp;rsquo;aggiunta di un file ad una directory o la modifica di un determinato file.&lt;/p&gt;&#xA;&lt;h4 id=&#34;launchd-losservatore&#34;&gt;Launchd, l&amp;rsquo;osservatore&lt;/h4&gt;&#xA;&lt;p&gt;Riprendiamo quindi il &lt;a href=&#34;http://en.wikipedia.org/wiki/Property_list&#34;&gt;file plist&lt;/a&gt; di configurazione del &lt;a href=&#34;https://melabit.wordpress.com/2014/12/11/automatizzare-il-mac-dal-terminale-una-soluzione-targata-apple/&#34;&gt;post precedente&lt;/a&gt; e vediamo cosa possiamo fare se aggiungiamo l&amp;rsquo;opzione &lt;code&gt;QueueDirectories&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Il punto di partenza è &lt;a href=&#34;https://melabit.wordpress.com/2014/12/11/automatizzare-il-mac-dal-terminale-una-soluzione-targata-apple/&#34;&gt;sempre lo stesso&lt;/a&gt;: vogliamo eseguire automaticamente lo script &lt;code&gt;~/bin/makeblog&lt;/code&gt; e &lt;a href=&#34;http://melabit.wordpress.com/2014/11/06/automatizzare-il-mac-dal-terminale-il-comando-at/&#34;&gt;rigenerare automaticamente il blog&lt;/a&gt; &amp;ldquo;Pazzi per la mela&amp;rdquo;.&lt;/p&gt;&#xA;&lt;p&gt;Questa volta però vogliamo rigenerare il blog non ad un&amp;rsquo;ora ben definita ed immutabile, ma solo quando inseriamo un nuovo post nella directory &lt;code&gt;~/Dropbox/blog/&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;In questo caso usare Dropbox (o un qualunque servizio analogo, &lt;a href=&#34;https://www.box.com/&#34;&gt;Box&lt;/a&gt;, &lt;a href=&#34;https://www.copy.com&#34;&gt;Copy&lt;/a&gt;, &lt;a href=&#34;https://www.google.com/drive/&#34;&gt;Google Drive&lt;/a&gt;, o perfino &lt;a href=&#34;https://onedrive.live.com&#34;&gt;OneDrive&lt;/a&gt; di Microsoft) è particolarmente utile, perché permette di aggiungere il post anche lontano dal Mac, magari dopo averlo preparato sull&amp;rsquo;iPad o sull&amp;rsquo;iPhone.&lt;/p&gt;&#xA;&lt;p&gt;Il file plist di configurazione &lt;a href=&#34;https://melabit.wordpress.com/2014/12/11/automatizzare-il-mac-dal-terminale-una-soluzione-targata-apple/&#34;&gt;del post precedente&lt;/a&gt; diventa&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; style=&#34;color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;&#34;&gt;&lt;code class=&#34;language-xml&#34; data-lang=&#34;xml&#34;&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;?xml version=&amp;#34;1.0&amp;#34; encoding=&amp;#34;UTF-8&amp;#34;?&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#75715e&#34;&gt;&amp;lt;!DOCTYPE plist PUBLIC &amp;#34;-//Apple//DTD PLIST 1.0//EN&amp;#34; &amp;#34;http://www.apple.com/DTDs/PropertyList-1.0.dtd&amp;#34;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;plist&lt;/span&gt; &lt;span style=&#34;color:#a6e22e&#34;&gt;version=&lt;/span&gt;&lt;span style=&#34;color:#e6db74&#34;&gt;&amp;#34;1.0&amp;#34;&lt;/span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;dict&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;key&amp;gt;&lt;/span&gt;Label&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/key&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;string&amp;gt;&lt;/span&gt;it.pazziperlamela.makeblog&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/string&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;key&amp;gt;&lt;/span&gt;Program&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/key&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;string&amp;gt;&lt;/span&gt;/Users/utente/bin/makeblog&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/string&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;key&amp;gt;&lt;/span&gt;QueueDirectories&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/key&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;array&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;    &#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;string&amp;gt;&lt;/span&gt;/Users/utente/Dropbox/blog/&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/string&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/array&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;key&amp;gt;&lt;/span&gt;StandardOutPath&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/key&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;string&amp;gt;&lt;/span&gt;/Users/utente/Documenti/makeblog.log&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/string&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;key&amp;gt;&lt;/span&gt;StandardErrorPath&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/key&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;string&amp;gt;&lt;/span&gt;/Users/utente/Documenti/makeblog.err&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/string&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;key&amp;gt;&lt;/span&gt;RunAtLoad&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/key&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&#x9;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;false/&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/dict&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span style=&#34;display:flex;&#34;&gt;&lt;span&gt;&lt;span style=&#34;color:#f92672&#34;&gt;&amp;lt;/plist&amp;gt;&lt;/span&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Per attivarlo, come abbiamo già visto, basta salvarlo nella directory &lt;code&gt;~/Library/LaunchAgents/&lt;/code&gt; del proprio account (dove il &lt;a href=&#34;https://melabit.wordpress.com/2014/11/06/script-di-shell-in-os-x/&#34;&gt;simbolo &lt;code&gt;~&lt;/code&gt; indica la cartella &lt;code&gt;Inizio&lt;/code&gt;&lt;/a&gt; o &lt;code&gt;home&lt;/code&gt; dell&amp;rsquo;utente che sta usando il Mac) con il nome &lt;code&gt;it.pazziperlamela.makeblog.plist&lt;/code&gt; (il nome del file deve essere uguale a quello senza estensione utilizzato alla riga 6 del file plist), ed eseguirlo una prima volta dal Terminale con il comando&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;$ launchctl load it.pazziperlamela.makeblog.plist&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Ai successivi riavvii sarà il sistema operativo ad eseguire periodicamente lo script.&lt;/p&gt;&#xA;&lt;h4 id=&#34;conclusioni&#34;&gt;Conclusioni&lt;/h4&gt;&#xA;&lt;p&gt;Devo ammettere che le opzioni &lt;code&gt;QueueDirectories&lt;/code&gt; e  &lt;code&gt;WatchPaths&lt;/code&gt; rendono launchd molto più interessante di quanto mi sia mai reso conto, permettendo di eseguire dei comandi di sistema o degli interi script in modo asincrono, al verificarsi di eventi particolari come la scrittura o la modifica di un file in una directory.&lt;/p&gt;&#xA;&lt;p&gt;Intendiamoci, le mie riserve sulla complessità di launchd rimangono intatte. Inoltre continua a non piacermi il fatto che sia uno strumento confinato al solo OS X, con poche prospettive di diffusione al di fuori del mondo Apple fra i sistemi operativi derivati da Unix, come &lt;a href=&#34;http://www.linux.org/&#34;&gt;Linux&lt;/a&gt; e &lt;a href=&#34;http://www.bsd.org/&#34;&gt;BSD&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Però pragmaticamente mi rendo conto che in certe circostanze launchd può rivelarsi uno strumento utilissimo e senza eguali. Basta solo usarlo con moderazione.&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;Qualcosa di simile alle cosiddette &amp;ldquo;Folder Actions&amp;rdquo;, introdotte già da parecchi anni in OS X senza troppo successo, che istruivano il sistema operativo a tenere sotto controllo una directory e ad eseguire dei comandi AppleScript o Automator ogni volta che un file veniva aggiunto o rimosso da quella directory, oppure quando quest&amp;rsquo;ultima veniva aperta, chiusa o spostata.&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>Tante parole</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2015/01/08/tante-parole/</link>
      <pubDate>Thu, 08 Jan 2015 06:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2015/01/08/tante-parole/</guid>
      <description>&lt;p&gt;Ogni volta che scrivo un post per questo blog mi sforzo di esporre l&amp;rsquo;argomento trattato nel modo più chiaro possibile e di presupporre che chi legge non sappia nulla, o quasi, dell&amp;rsquo;argomento trattato. L&amp;rsquo;aspetto negativo di questo atteggiamento è che mi obbliga a ripetere continuamente il significato di alcuni termini fondamentali, correndo il rischio di far perdere il filo del discorso a chi conosce già il significato di questi concetti e appesantendo il tono generale del post.&lt;/p&gt;&#xA;&lt;p&gt;Per semplificare le cose ho quindi deciso di raccogliere le definizioni che mi vengono via via in mente in una pagina apposita, &lt;a href=&#34;http://melabit.wordpress.com/le-parole-per-dirlo/&#34;&gt;&lt;em&gt;Le parole per dirlo&lt;/em&gt;&lt;/a&gt;, accessibile direttamente dal menu principale del blog.&lt;/p&gt;&#xA;&lt;p&gt;La lista di definizioni inserite finora è piuttosto breve e segue un ordine vagamente &lt;em&gt;logico&lt;/em&gt;. Magari con il tempo ci sarà bisogno di dare una struttura più ordinata alla lista.&lt;/p&gt;&#xA;&lt;p&gt;Spero che non mancheranno i suggerimenti sui nuovi termini da inserire e le correzioni a quelli esistenti.&lt;/p&gt;&#xA;</description>
    </item>
  </channel>
</rss>
