<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Hugo on Melabit</title>
    <link>https://static.233.196.69.159.clients.your-server.de/it/tags/hugo/</link>
    <description>Recent content in Hugo on Melabit</description>
    <generator>Hugo</generator>
    <language>it</language>
    <lastBuildDate>Wed, 31 Dec 2025 06:00:00 +0000</lastBuildDate>
    <atom:link href="https://static.233.196.69.159.clients.your-server.de/it/tags/hugo/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Un anno di melabit.com</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2025/12/31/un-anno-di-melabit-com/</link>
      <pubDate>Wed, 31 Dec 2025 06:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2025/12/31/un-anno-di-melabit-com/</guid>
      <description>&lt;p&gt;Il 2025 è stato un anno di svolta per questo piccolo blog. Abbandonare la &lt;em&gt;comfort zone&lt;/em&gt; di Wordpress.com non è stato facile né tanto meno indolore, soprattutto quando ho scoperto che &lt;a href=&#34;https://melabit.com/it/2025/01/02/2025-01-02-da-melabit-a-melabit-addio-wordpress-ciao-jekyll/&#34;&gt;una volta messo online&lt;/a&gt; il sito in Jekyll era lento, troppo lento per essere usabile.&lt;/p&gt;&#xA;&lt;p&gt;Per fortuna &lt;a href=&#34;https://melabit.com/it/2025/05/24/jeeeeeekyll-no-hugo/&#34;&gt;Hugo ha salvato la situazione&lt;/a&gt;, anche se ci sono ancora tanti dettagli da sistemare, primo fra tutti l&amp;rsquo;aspetto grafico del sito.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-12-31-un-anno-di-melabit-com/Gemini_Generated_Image_r0phqqr0phqqr0ph.jpeg&#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;p&gt;Anche gestire i post in due lingue diverse non è facile, ma ne vale la pena visto che i post in inglese permettono di raggiungere un bacino di utenti inimmaginabile scrivendo solo nella nostra lingua.&lt;/p&gt;&#xA;&lt;p&gt;Il cruccio principale del nuovo sito e l&amp;rsquo;assenza o quasi di commenti ai post. Non so se è perché sono troppo complicati, troppo lunghi o entrambe le cose. Fatto sta che la scarsezza di commenti è davvero preoccupante. E questo nonostante ci sia un buon numero di visitatori e che in media il 5% passa 15 minuti o più sul sito. Magari alla fine sono troppo esausti per riuscire a commentare, chissà!&lt;/p&gt;&#xA;&lt;hr style=&#34;border: none; border-top: 3px double #333; color: #333; overflow: visible; height: 5px; width: 50%; margin-left: auto; margin-right: auto;&#34;&gt;&#xA;&lt;p&gt;Inutile dire che l&amp;rsquo;IA sta ben lontana dalla scrittura dei testi, al massimo la uso per rivedere qualche termine tecnico di cui non mi ricordo l&amp;rsquo;equivalente in italiano (&lt;code&gt;Tab&lt;/code&gt; è la mia bestia nera, ogni volta mi dimentiche che in italiano si dice &lt;code&gt;Scheda&lt;/code&gt; e non &lt;code&gt;Linguetta&lt;/code&gt;). A volte provo ad usarla per rendere qualche frase più scorrevole, ma quasi sempre è tempo perso, alla fine diventano così piatte che tanto vale non scriverle.&lt;/p&gt;&#xA;&lt;p&gt;Ammetto, invece, che la base delle traduzioni la faccio fare all&amp;rsquo;IA. Mi serve più che altro per risparmiare tempo di battitura, anche se poi ci vuole un bel po&amp;rsquo; per sistemare il risultato e rendere il testo tradotto più fluido e vivace.&lt;/p&gt;&#xA;&lt;p&gt;Uso anche spesso l&amp;rsquo;IA per generare le immagini in testa ai post. In questo caso non ho scelta, se con la scrittura bene o male me la cavo, in disegno e grafica sono sempre stato il penultimo della classe, e solo perché l&amp;rsquo;ultimo era davvero terribile. Quindi vi faccio un favore. Ma, anche con il tanto celebrato &lt;a href=&#34;https://gemini.google/overview/image-generation/&#34;&gt;Nano Banana&lt;/a&gt; di Google, c&amp;rsquo;è voluto del bello e del buono per convincerlo a generare l&amp;rsquo;immagine di questo post, con le scritte giuste, l&amp;rsquo;homepage vera e così via. Chi dice che Nano Banana è tanto intelligente da capire al volo quello che volete racconta balle.&lt;/p&gt;&#xA;&lt;hr style=&#34;border: none; border-top: 3px double #333; color: #333; overflow: visible; height: 5px; width: 50%; margin-left: auto; margin-right: auto;&#34;&gt;&#xA;&lt;p&gt;Se tutto va bene il 2026 porterà qualche novità, non so bene in che ordine ma la revisione del tema grafico è di sicuro ai primi posti della lista.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;Stay tuned&lt;/em&gt;! Nel frattempo, tanti auguri per il 2026, che sia un anno pieno di cose buone e di felicità per tutti!&lt;/p&gt;&#xA;</description>
    </item>
    <item>
      <title>Jeeeeeekyll? No, Hugo!</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2025/05/24/jeeeeeekyll-no-hugo/</link>
      <pubDate>Sat, 24 May 2025 00:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2025/05/24/jeeeeeekyll-no-hugo/</guid>
      <description>&lt;p&gt;Mentre &lt;a href=&#34;https://melabit.com/it/2025/01/21/da-melabit-a-melabit-perche-jekyll/&#34;&gt;descrivevo come ero passato da Wordpress a Jekyll&lt;/a&gt;, sapevo già che avrei dovuto cambiare di nuovo.&lt;/p&gt;&#xA;&lt;p&gt;Da un punto di vista tecnico, &lt;a href=&#34;https://jekyllrb.com/&#34;&gt;Jekyll&lt;/a&gt; è una piattaforma fantastica: è facile da programmare, ha una documentazione ineccepibile e funziona perfettamente durante la fase di sviluppo, quando il numero di pagine e di post di test è limitato. Ma, come ho sperimentato in prima persona, una volta che Jekyll si trova a dover gestire un sito vero con centinaia di post, le prestazioni calano drasticamente e i tempi di risposta aumentano in modo intollerabile (e piuttosto imbarazzante).&lt;/p&gt;&#xA;&lt;p&gt;A fine anni &amp;lsquo;90 era normale aspettare diversi secondi prima di visualizzare una pagina web.&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; Ma oggi siamo abituati a pagine che si caricano immediatamente, e una attesa di tre, quattro secondi è inaccettabile.&lt;/p&gt;&#xA;&lt;h4 id=&#34;un-prezzo-troppo-alto-da-pagare&#34;&gt;Un prezzo troppo alto da pagare&lt;/h4&gt;&#xA;&lt;p&gt;Prima di iniziare a lavorare sul nuovo sito sapevo bene che Jekyll era lento, ma questa lentezza si riferiva sempre alla &lt;strong&gt;fase di generazione del sito&lt;/strong&gt;, una operazione che si esegue di rado e può essere facilmente automatizzata. E in effetti è proprio così: durante lo sviluppo, con poche decine di post, rigeneravo il sito in 10-20 secondi, una cosa seccante ma non drammatica; ora ci vogliono 15 minuti per rigenerare l&amp;rsquo;intero &lt;a href=&#34;https://melabit.com/&#34;&gt;melabit.com&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Quello che non sapevo era che anche il &lt;strong&gt;sito generato&lt;/strong&gt; avrebbe sofferto dello stessa problema, come è diventato evidente non appena ho terminato la fase di sviluppo e ho iniziato a lavorare con tutti i post.&lt;/p&gt;&#xA;&lt;p&gt;In quel momento ero ancora convinto che l&amp;rsquo;ottimizzazione del codice e delle immagini e un &lt;em&gt;caching&lt;/em&gt; aggressivo avrebbe potuto attenuare il problema. E comunque ero andato troppo avanti per fermarmi. Ma dopo poco mi sono accorto che questa strategia non era sufficiente, e che ci voleva un ripensamento radicale. E ho cominciato a guardarmi attorno.&lt;/p&gt;&#xA;&lt;h4 id=&#34;alternative&#34;&gt;Alternative&lt;/h4&gt;&#xA;&lt;p&gt;I generatori di siti statici sono come le distribuzioni di Linux: abbondano e quasi sempre non si capisce il senso della loro esistenza. In questo momento, &lt;a href=&#34;https://jamstack.org/generators/&#34;&gt;Jamstack ne elenca&lt;/a&gt; 366, mentre &lt;a href=&#34;https://staticsitegenerators.net/&#34;&gt;Static Site Generators&lt;/a&gt; arriva a quasi 500. La maggior parte è stata abbandonata, magari perché nessuno le utilizzava o perché lo sviluppatore non era interessato a continuarne lo sviluppo. Diciamo che quelle interessanti sono una decina o poco più.&lt;/p&gt;&#xA;&lt;p&gt;Fra queste ho considerato (brevemente, lo ammetto) &lt;a href=&#34;https://www.bridgetownrb.com/&#34;&gt;Bridgetown&lt;/a&gt;, che &lt;a href=&#34;https://www.bridgetownrb.com/news/time-to-visit-bridgetown/&#34;&gt;deriva da Jekyll&lt;/a&gt; e quindi, a prima vista, sembrava una evoluzione naturale. Ma poi mi sono accorto che lo usano in pochi, che i plugin sono scarsi e i temi ancora meno. E poi, se Bridgetown discende da Jekyll, non è che soffre dello stesso problema di lentezza? Meglio stare alla larga e tenersi l&amp;rsquo;originale.&lt;/p&gt;&#xA;&lt;p&gt;Altro candidato era &lt;a href=&#34;https://middlemanapp.com/&#34;&gt;Middleman&lt;/a&gt;, sviluppato in Ruby come Jekyll, Ma Middleman è destinato a generare il classico sito web, e ci vuole una estensione specifica per fargli supportare le funzioni tipiche di un blog (liste di articoli, tassonomie, feed, commenti). E poi il linguaggio di &lt;em&gt;templating&lt;/em&gt; è &lt;a href=&#34;https://github.com/ruby/erb&#34;&gt;ERB&lt;/a&gt; (Embedded Ruby), che in sé è una scelta sensata dato che è integrato nello stesso Ruby, ma che per me significava dover reimparare tutto da zero.&lt;/p&gt;&#xA;&lt;p&gt;Ve la faccio breve: alla fine dei conti l&amp;rsquo;unico candidato serio era&amp;hellip; il solito &lt;a href=&#34;https://gohugo.io/&#34;&gt;Hugo&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h4 id=&#34;alla-ricerca-della-velocità&#34;&gt;Alla ricerca della velocità&lt;/h4&gt;&#xA;&lt;p&gt;Di Hugo &lt;a href=&#34;https://melabit.com/it/2014/12/28/hugo-la-prova/&#34;&gt;avevo già scritto molti anni fa&lt;/a&gt;, trovandolo interessante, ma azzoppato da una documentazione che definire &lt;em&gt;scarsa&lt;/em&gt; era un complimento.&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;Però la qualità non è in discussione, non a caso Hugo, proprio come Jekyll, finisce sistematicamente in cima a tutte le classifiche che si prefiggono di valutare la qualità dei vari generatori di siti statici.&lt;/p&gt;&#xA;&lt;p&gt;E poi Hugo ha un vero asso nella manica: è veloce, anzi è velocissimo.&lt;/p&gt;&#xA;&lt;p&gt;Non so dire se Hugo sia davvero &lt;em&gt;il più veloce framework al mondo per la costruzione di siti web&lt;/em&gt;, come sostiene lo &lt;a href=&#34;https://gohugo.io/&#34;&gt;slogan in cima alla sua home page&lt;/a&gt;. Ma ho verificato in prima persona che Hugo è in grado di generare questo sito in meno di un minuto, cioè 15 volte più rapidamente di Jekyll. E, quello che più conta, anche il sito generato risulta essere veloce e reattivo, proprio come ci si aspetta da un sito web moderno. Questo fa passare tutto il resto in secondo piano.&lt;/p&gt;&#xA;&lt;h4 id=&#34;hugo&#34;&gt;Hugo&lt;/h4&gt;&#xA;&lt;p&gt;E allora da oggi &lt;a href=&#34;https://melabit.com/&#34;&gt;melabit.com&lt;/a&gt; passa ad Hugo, con una nuova grafica&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; e cercando di mantenere tutte le funzioni della versione basata su Jekyll. Prima fra tutte il &lt;a href=&#34;https://melabit.com/it/2025/03/05/da-melabit-a-melabit-gestire-i-commenti-con-jekyll/&#34;&gt;sistema di commenti basato su Comma&lt;/a&gt;, che dopo il trapianto ha funzionato praticamente al primo colpo.&lt;/p&gt;&#xA;&lt;p&gt;I &lt;a href=&#34;https://it.wikipedia.org/wiki/Permalink&#34;&gt;permalink&lt;/a&gt; sono cambiati e ora distinguono esplicitamente la lingua del post, che è una cosa più razionale. Anche il feed è cambiato, per ora è il vecchio RSS, prima o poi verificherò se è possibile aggiungere ATOM.&lt;/p&gt;&#xA;&lt;p&gt;La funzione di ricerca per ora è basata su Google, e non funzionerà finché il sito non sarà indicizzato di nuovo. La paginazione va rivista, così come la logica che mostra il post in evidenza anche nella lista di tutti i post. Ma ci sarà tempo per sistemare questi dettagli.&lt;/p&gt;&#xA;&lt;p&gt;Per formazione mentale mi piacerebbe entrare nei dettagli di come ho modificato Hugo e il tema grafico prescelto, ma temo di risultare noioso, soprattutto dopo tutti gli articoli, dettagliatissimi ma ormai praticamente inutili, scritti su Jekyll. Ci penserò un po&amp;rsquo; su, nel frattempo se qualcuno è interessato a saperne di più può scriverlo nei commenti.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-05-24-jeeeeeekyll-no-hugo/jekyll-vs-hugo.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 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;Però ci si poteva distrarre guardando le immagini comparire una riga alla volta sullo schermo&amp;hellip; 😂&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;Rispetto ad allora non è cambiato molto. Uno dei pochi articoli che posso consigliare senza riserve è questo sulla gestione del &lt;a href=&#34;https://www.smashingmagazine.com/2021/02/context-variables-hugo-static-site-generator/&#34;&gt;contesto e delle variabili in Hugo&lt;/a&gt;. Una lettura molto tecnica, ma indispensabile per imparare le basi necessarie a modificare ed estendere Hugo.&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;Che non mi fa impazzire, ma che per ora è il meglio che sono riuscito a fare.&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: conclusioni</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2019/07/03/da-melabit-a-melabit-conclusioni/</link>
      <pubDate>Wed, 03 Jul 2019 06:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2019/07/03/da-melabit-a-melabit-conclusioni/</guid>
      <description>&lt;p&gt;&lt;em&gt;&amp;ldquo;Dopo tutto questo parlare di hosting, domini, provider e cloud, si può sapere &lt;a href=&#34;https://melabit.wordpress.com/2018/04/16/da-melabit-a-melabit-introduzione/&#34;&gt;cosa hai deciso&lt;/a&gt; alla fine di fare per questo blog?&amp;rdquo;&lt;/em&gt;&lt;/p&gt;&#xA;&lt;p&gt;Sono consapevole di &lt;a href=&#34;https://melabit.wordpress.com/2014/12/31/and-the-winner-is/&#34;&gt;contraddire&lt;/a&gt; quello che avevo scritto alcuni anni fa ma, dopo aver soppesato tutte le alternative, mi sono reso conto che la cosa migliore da fare in questo momento era cambiare il meno possibile, per cui ho deciso di  continuare ad usare WordPress, ospitato questa volta su una piattaforma di hosting tradizionale.&lt;/p&gt;&#xA;&lt;p&gt;Per ora niente generatori di siti statici come &lt;a href=&#34;https://jekyllrb.com&#34;&gt;Jekyll&lt;/a&gt; (che nonostante tutto continua a piacermi tantissimo), &lt;a href=&#34;https://getgrav.org&#34;&gt;Grav&lt;/a&gt; o &lt;a href=&#34;https://gohugo.io&#34;&gt;Hugo&lt;/a&gt;, niente CMS alternativi, magari più veloci ed efficienti di WordPress. Passare dalla &amp;ldquo;gabbia&amp;rdquo; dorata di &lt;a href=&#34;https://wordpress.com/&#34;&gt;Wordpress.com&lt;/a&gt; &amp;ndash; nella quale devo solo occuparmi di scrivere e a tutto il resto ci pensa &lt;a href=&#34;https://automattic.com/&#34;&gt;Automattic&lt;/a&gt; &amp;ndash; ad una piattaforma autogestita è già abbastanza complicato per volersi imbarcare in una transizione ancora più radicale. Qualche anno fa sarebbe stato più facile, ma in questo momento è un rischio che non voglio (e che non ho nemmeno il tempo di) correre.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://melabit.files.wordpress.com/2019/07/amador-loureiro-unsplash.jpg&#34; alt=&#34;&#34;&gt;&#xA;&amp;ndash; &lt;em&gt;Fonte: &lt;a href=&#34;https://unsplash.com/@amadorloureiroblanco&#34;&gt;Amador Loureiro&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;Senza dimenticare che negli ultimi tre anni ho avuto modo di sperimentare a fondo la stabilità e l&amp;rsquo;affidabilità di WordPress gestendo un sito (semi)professionale con un carico di lavoro nettamente superiore a quello prodotto da questo blog e con &lt;em&gt;editor&lt;/em&gt; multipli, interventi sul forum, un gran numero di utenti registrati, infinite richieste di supporto tecnico nonché (potevano mancare?) innumerevoli attacchi al sito. WordPress si è comportato benissimo, perché buttare via questa esperienza sul campo?&lt;/p&gt;&#xA;&lt;p&gt;Non nascondo di essere stato attratto a lungo dall&amp;rsquo;ipotesi &amp;ldquo;WordPress + Raspberry Pi&amp;rdquo;, mi intrigava moltissimo l&amp;rsquo;idea di gestire tutto autonomamente, ma poi ho deciso che &lt;a href=&#34;https://melabit.wordpress.com/2019/06/18/da-melabit-a-melabit-fare-da-se/&#34;&gt;il gioco non valeva la candela&lt;/a&gt; e ho lasciato perdere.&lt;/p&gt;&#xA;&lt;p&gt;Ormai è tutto pronto o quasi. Il nome c&amp;rsquo;è, l&amp;rsquo;hosting pure, ho anche scelto un tema nuovo e più adatto (spero!) a mostrare i contenuti disponibili, manca solo il tocco finale, la pressione del classico bottone di avvio. Se non ci sono imprevisti &lt;del&gt;luglio&lt;/del&gt; settembre dovrebbe essere il momento buono.&lt;/p&gt;&#xA;&lt;p&gt;Ma niente è per sempre e non è detto che, dopo aver completato questa prima transizione, non decida di farne un&amp;rsquo;altra più radicale adottando Jekyll, la piattaforma che considero ancora la più vicina al mio spirito di programmatore, seppur solo &lt;em&gt;part-time&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;h4 id=&#34;da-melabit-a-melabit-la-serie-completa-degli-articoli&#34;&gt;Da melabit a melabit, la serie completa degli articoli&lt;/h4&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://melabit.wordpress.com/2018/04/16/da-melabit-a-melabit-introduzione/&#34;&gt;Da melabit a melabit: introduzione&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://melabit.wordpress.com/2018/05/21/da-melabit-a-melabit-la-scelta-dell-hosting/&#34;&gt;Da melabit a melabit: la scelta dell’hosting&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://melabit.wordpress.com/2018/06/19/da-melabit-a-melabit-la-scelta-del-dominio/&#34;&gt;Da melabit a melabit: la scelta del dominio&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://melabit.wordpress.com/2019/06/18/da-melabit-a-melabit-fare-da-se/&#34;&gt;Da melabit a melabit: fare da sé?&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://melabit.wordpress.com/2019/06/24/da-melabit-a-melabit-andare-sul-cloud/&#34;&gt;Da melabit a melabit: andare sul cloud&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://melabit.wordpress.com/2019/07/03/da-melabit-a-melabit-conclusioni/&#34;&gt;Da melabit a melabit: conclusioni&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
    </item>
    <item>
      <title>Da melabit a melabit: andare sul cloud</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2019/06/24/da-melabit-a-melabit-andare-sul-cloud/</link>
      <pubDate>Mon, 24 Jun 2019 06:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2019/06/24/da-melabit-a-melabit-andare-sul-cloud/</guid>
      <description>&lt;p&gt;&lt;img src=&#34;https://melabit.files.wordpress.com/2019/06/daniel-falcao-418402-unsplash.jpg&#34; alt=&#34;&#34;&gt;&#xA;&amp;ndash; &lt;em&gt;Fonte: &lt;a href=&#34;https://unsplash.com/@danielsfalcao&#34;&gt;Daniel Falcão&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;Il &lt;em&gt;cloud computing&lt;/em&gt; è ovunque e ci sono decine di servizi diversi che ci permettono di usare un computer &lt;em&gt;virtuale&lt;/em&gt; situato da qualche parte nel mondo come se fosse il computer fisico che abbiamo sulla scrivania. In questo campo i grossi calibri sono &lt;a href=&#34;https://aws.amazon.com&#34;&gt;Amazon AWS&lt;/a&gt;, &lt;a href=&#34;https://cloud.google.com&#34;&gt;Google Cloud&lt;/a&gt;, &lt;a href=&#34;https://azure.microsoft.com&#34;&gt;Microsoft Azure&lt;/a&gt;, &lt;a href=&#34;https://www.openshift.com/&#34;&gt;Red Hat OpenShift&lt;/a&gt; (in rigoroso ordine alfabetico), ma ci sono anche i servizi offerti da fornitori di servizi di hosting come &lt;a href=&#34;https://it.siteground.com/cloud-hosting&#34;&gt;SiteGround&lt;/a&gt;, &lt;a href=&#34;https://www.dreamhost.com/cloud/&#34;&gt;DreamHost&lt;/a&gt; o &lt;a href=&#34;https://www.netsons.com&#34;&gt;Netsons&lt;/a&gt; oppure da &lt;em&gt;provider&lt;/em&gt; più orientati al mondo degli sviluppatori come &lt;a href=&#34;https://www.digitalocean.com/products/droplets&#34;&gt;Digital Ocean&lt;/a&gt;, &lt;a href=&#34;https://codenvy.com&#34;&gt;Codenvy&lt;/a&gt;, &lt;a href=&#34;https://www.heroku.com&#34;&gt;Heroku&lt;/a&gt;, &lt;a href=&#34;https://upcloud.com/&#34;&gt;UpCloud&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Descrivere tutto quello che fanno questi servizi è impossibile, le opzioni e le configurazioni sono tante e tanto diverse che cercare di orientarsi fra le varie possibilità fa letteralmente girare la testa (provate a districarvi nel sito di Amazon AWS e poi ditemi). Ma rimanendo a quello che ci interessa qui, tutti questi servizi mettono a disposizione un computer &lt;em&gt;virtuale&lt;/em&gt; ospitato sull&amp;rsquo;onnipresente cloud dove possiamo installare un sistema operativo (generalmente Linux) e tutte le applicazioni necessarie per realizzare il nostro sito web.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://melabit.files.wordpress.com/2019/06/debian-on-cloud1.png&#34; alt=&#34;&#34;&gt;&#xA;&lt;img src=&#34;https://melabit.files.wordpress.com/2019/06/debian-on-cloud2.png&#34; alt=&#34;&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;Anche in questo caso valgono &lt;a href=&#34;https://melabit.wordpress.com/2019/06/18/da-melabit-a-melabit-fare-da-se/&#34;&gt;considerazioni analoghe a quelle fatte una settimana fa per il Raspberry Pi&lt;/a&gt;, con l&amp;rsquo;ovvia differenza che ora non dobbiamo preoccuparci degli aspetti legati all&amp;rsquo;hardware, visto che la &lt;em&gt;macchina&lt;/em&gt; fisica e l&amp;rsquo;indirizzo IP sono forniti dal fornitore di servizi di cloud computing (in realtà la nostra macchina fisica non esiste nemmeno, il nostro computer virtuale sul cloud è solo un &lt;a href=&#34;https://www.html.it/pag/62783/docker-e-i-container/&#34;&gt;contenitore Docker&lt;/a&gt; ospitato insieme a mille altri su un server di un qualche datacenter).&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; A noi rimarranno comunque alcuni oneri importanti, come ad esempio quello di aggiornare e mantenere in sicurezza il sistema operativo e i pacchetti software che utilizziamo per realizzare il sito web.&lt;/p&gt;&#xA;&lt;p&gt;Ma oltre a non doverci preoccupare di gestire l&amp;rsquo;hardware, il vero vantaggio di ospitare il sito su un servizio di cloud computing è quello di essere liberi di utilizzare per il sito il software che preferiamo, senza i vincoli stabiliti dai normali fornitori di servizio di hosting che normalmente danno la possibilità di scegliere solo fra un certo numero di applicazioni predefinite, selezionate fra quelle più popolari.&lt;/p&gt;&#xA;&lt;p&gt;Se per il nostro sito vogliamo usare un CMS come Wordpress, Drupal, CMS Made Simple o Kirby non fa nessuna differenza, anzi un servizio di hosting tradizionale può essere preferibile perché ci permette di concentrarci sui contenuti, lasciando tutta la gestione del sito al fornitore del servizio di hosting. Ma se vogliamo utilizzare dei CMS meno diffusi come &lt;a href=&#34;https://ghost.org&#34;&gt;Ghost&lt;/a&gt; o &lt;a href=&#34;https://www.postleaf.org&#34;&gt;Postleaf&lt;/a&gt; oppure dei generatori di siti statici come &lt;a href=&#34;https://jekyllrb.com/&#34;&gt;Jekyll&lt;/a&gt;, &lt;a href=&#34;https://gohugo.io&#34;&gt;Hugo&lt;/a&gt;, &lt;a href=&#34;https://getgrav.org&#34;&gt;Grav&lt;/a&gt; o &lt;a href=&#34;https://hexo.io&#34;&gt;Hexo&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; la soluzione &lt;em&gt;cloud&lt;/em&gt; ci offre una flessibilità impareggiabile, nettamente maggiore di quella offerta da un normale servizio di hosting.&lt;/p&gt;&#xA;&lt;p&gt;Tutto questo però ha un prezzo da pagare. Un servizio di hosting decente può costare anche solo qualche decina di euro all&amp;rsquo;anno, per usufruire di un computer (anche se solo virtuale) nel cloud la cifra da sborsare è nettamente maggiore, dell&amp;rsquo;ordine di almeno 20-30 euro al mese (con variazioni enormi fra le offerte dei diversi provider).&lt;/p&gt;&#xA;&lt;p&gt;Prima di scegliere fra hosting e cloud bisognerà quindi valutare realisticamente quello che vogliamo fare con il sito web (un blog personale è ben diverso da un sito di commercio elettronico), tenendo bene in conto dell&amp;rsquo;impegno richiesto per mantenerlo in &lt;em&gt;forma&lt;/em&gt; e delle competenze tecniche necessarie per gestire un servizio mediamente complesso come questo. Trascurare quest&amp;rsquo;ultimo punto in particolare potrebbe significare dover spendere cifre nettamente maggiori per rimediare ai problemi di configurazione, o peggio di sicurezza, che potrebbero danneggiare gravemente non solo il sito ma anche la nostra immagine. In questo campo i costi non sono solo quelli che si vedono sul cartellino del prezzo.&lt;/p&gt;&#xA;&lt;h4 id=&#34;da-melabit-a-melabit-la-serie-completa-degli-articoli&#34;&gt;Da melabit a melabit, la serie completa degli articoli&lt;/h4&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://melabit.wordpress.com/2018/04/16/da-melabit-a-melabit-introduzione/&#34;&gt;Da melabit a melabit: introduzione&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://melabit.wordpress.com/2018/05/21/da-melabit-a-melabit-la-scelta-dell-hosting/&#34;&gt;Da melabit a melabit: la scelta dell’hosting&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://melabit.wordpress.com/2018/06/19/da-melabit-a-melabit-la-scelta-del-dominio/&#34;&gt;Da melabit a melabit: la scelta del dominio&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://melabit.wordpress.com/2019/06/18/da-melabit-a-melabit-fare-da-se/&#34;&gt;Da melabit a melabit: fare da sé?&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://melabit.wordpress.com/2019/06/24/da-melabit-a-melabit-andare-sul-cloud/&#34;&gt;Da melabit a melabit: andare sul cloud&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;li&gt;&lt;a href=&#34;https://melabit.wordpress.com/2019/07/03/da-melabit-a-melabit-conclusioni/&#34;&gt;Da melabit a melabit: conclusioni&lt;/a&gt;.&lt;/li&gt;&#xA;&lt;/ul&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 nostro unico problema sarà quello di associare l&amp;rsquo;indirizzo IP al nome di dominio (ma in genere lo stesso fornitore del nome di dominio ci mette a disposizione gli strumenti per farlo da soli).&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;Dei primi tre ne ho scritto parecchio anche qui, chi vuole può leggere i vecchi articoli su &lt;a href=&#34;https://melabit.wordpress.com/2015/05/28/grav-bello-ma-impossibile/&#34;&gt;Grav&lt;/a&gt;, &lt;a href=&#34;https://melabit.wordpress.com/2014/12/28/hugo-la-prova/&#34;&gt;Hugo&lt;/a&gt; e &lt;a href=&#34;https://melabit.wordpress.com/2014/12/31/and-the-winner-is/&#34;&gt;Jekyll&lt;/a&gt;.&amp;#160;&lt;a href=&#34;#fnref:2&#34; class=&#34;footnote-backref&#34; role=&#34;doc-backlink&#34;&gt;&amp;#x21a9;&amp;#xfe0e;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;/li&gt;&#xA;&lt;/ol&gt;&#xA;&lt;/div&gt;&#xA;</description>
    </item>
    <item>
      <title>And the winner is...</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2014/12/31/and-the-winner-is/</link>
      <pubDate>Wed, 31 Dec 2014 06:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2014/12/31/and-the-winner-is/</guid>
      <description>&lt;p&gt;Riassunto delle puntate precedenti. &lt;a href=&#34;http://wordpress.com/&#34;&gt;Wordpress.com&lt;/a&gt; è un&amp;rsquo;ottima piattaforma di blogging, ed ha il grosso vantaggio di liberare l&amp;rsquo;utente da tutte le preoccupazioni riguardanti la manutenzione del proprio blog.&#xA;Non è però una piattaforma che si adatta bene al mio modo di lavorare, e ne ho già &lt;a href=&#34;http://melabit.wordpress.com/2014/08/01/i-limiti-di-wordpress-com/&#34;&gt;scritto diffusamente&lt;/a&gt; alcuni mesi fa.&#xA;Però &lt;a href=&#34;http://melabit.wordpress.com/2014/08/06/i-limiti-di-wordpress-com-una-nuova-piattaforma-per-il-blog/&#34;&gt;cosa scegliere&lt;/a&gt; fra le varie tipologie disponibili: wiki o CMS o piattaforme di blog, siti statici o siti dinamici? Per vari motivi mi sono orientato verso un &lt;a href=&#34;http://luftmensch.net/blog/2013/12/22/building-a-static-website-the-website-generator/&#34;&gt;generatore di siti statici&lt;/a&gt;, un programma che prende una serie di file di testo, di immagini e di documenti e li converte in un sito web completo secondo un tema grafico predefinito.&#xA;In rete ci sono letteralmente &lt;a href=&#34;https://staticsitegenerators.net/&#34;&gt;decine e decine di generatori di siti statici&lt;/a&gt; ed il loro numero cresce molto rapidamente: erano 289 all&amp;rsquo;inizio di agosto, oggi sono ben &lt;a href=&#34;https://staticsitegenerators.net/&#34;&gt;388&lt;/a&gt;!&#xA;&lt;a href=&#34;http://melabit.wordpress.com/2014/08/09/i-limiti-di-wordpress-com-generatori-di-siti-web-statici/&#34;&gt;Come orientarsi&lt;/a&gt; in questo marasma? Basandomi su una lista di &lt;a href=&#34;http://melabit.wordpress.com/2014/08/06/i-limiti-di-wordpress-com-una-nuova-piattaforma-per-il-blog/&#34;&gt;caratteristiche irrinunciabili&lt;/a&gt; (almeno per me), ne ho &lt;a href=&#34;http://melabit.wordpress.com/2014/08/12/i-limiti-di-wordpress-com-cosa-ho-scartato-e-perche/&#34;&gt;provati e scartati&lt;/a&gt; parecchi, buon ultimo  &lt;a href=&#34;http://melabit.wordpress.com/2014/12/28/hugo-la-prova/&#34;&gt;Hugo&lt;/a&gt;, promettente ma rivelatosi alla fine piuttosto immaturo.&lt;/p&gt;&#xA;&lt;p&gt;In realtà avevo deciso subito. Tutte le prove che ho fatto mi sono servite solo ad esplorare il più possibile il &lt;em&gt;territorio&lt;/em&gt;, a provare le alternative e a verificarne i vantaggi e gli svantaggi.&lt;/p&gt;&#xA;&lt;p&gt;La scelta più ragionevole, date le premesse, era solo una: &lt;a href=&#34;http://jekyllrb.com/&#34;&gt;Jekyll&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Per due ragioni fondamentali: prospettive di sviluppo del codice a medio-lungo termine e disponibilità di documentazione abbondante e di buona qualità. Senza queste due caratteristiche non si va avanti. Tutti gli altri generatori di siti web statici possono anche apparire interessanti, ma impallidiscono se li si confronta a Jekyll su questi due aspetti.&lt;/p&gt;&#xA;&lt;p&gt;Tanto per fare un esempio: che senso avrebbe avuto scegliere uno dei tanti progetti &lt;em&gt;giocattolo&lt;/em&gt; di un singolo programmatore? Può anche essere eccellente, ma quante sono le probabilità che continui ad essere sviluppato fra uno, due, tre anni? Magari fra sei mesi il programmatore si stanca e passa ad altro, non rispondendo più alle richieste di supporto o di correzione degli inevitabili errori. Che si fa, allora?&#xA;Oppure: come si può cercare di configurare ed estendere il sistema prescelto se non esiste della buona documentazione, se magari l&amp;rsquo;unico modo per capire cosa fa il programma è analizzarne i sorgenti (auguri)?&lt;/p&gt;&#xA;&lt;p&gt;Infatti fra i 388 generatori di siti statici elencati oggi da &lt;a href=&#34;https://staticsitegenerators.net/&#34;&gt;Static Site Generators&lt;/a&gt;, ben 171 non sono aggiornati da almeno un anno e 225 da sei mesi. E solo una settantina ha ricevuto un aggiornamento nell&amp;rsquo;ultimo mese. Insomma, ci sono circa 320 progetti censiti che in realtà sono morti, inutili, da scartare a priori.&lt;/p&gt;&#xA;&lt;p&gt;I primi due generatori di siti web statici nella lista di &lt;a href=&#34;https://www.staticgen.com/&#34;&gt;StaticGen&lt;/a&gt;, Jekyll e il suo derivato &lt;a href=&#34;http://octopress.org/&#34;&gt;Octopress&lt;/a&gt;, hanno ricevuto insieme su GitHub più di un terzo delle &lt;a href=&#34;https://help.github.com/articles/about-stars/&#34;&gt;stelle&lt;/a&gt; &amp;ndash; cioè delle manifestazioni esplicite di interesse nel progetto &amp;ndash; guadagnate da tutti i 67 progetti elencati nel sito.&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;Non sarà che sono ritenuti così interessanti perché sono fatti bene e sono (relativamente) facili da usare e da metterci le mani?&lt;/p&gt;&#xA;&lt;p&gt;Ora rimane solo da rimboccarsi le maniche, configurare Jekyll e trasportare il blog sulla nuova piattaforma.&lt;/p&gt;&#xA;&lt;blockquote&gt;&#xA;&lt;p&gt;&lt;strong&gt;Ma prima di allora, auguro a tutti coloro che pazientemente seguono questo blog un 2015 felice e, se possibile, migliore dell&amp;rsquo;anno che ci stiamo lasciando alle spalle!&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&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;Immagino che StaticGen censisca solo i progetti sviluppati attivamente. Probabilmente non è un caso che, se si considerano &lt;em&gt;attivi&lt;/em&gt; solo i progetti aggiornati nell&amp;rsquo;ultimo mese, i numeri di Static Site Generators e di StaticGen concidano. Sarebbe interessante verificare se i progetti sono veramente gli stessi.&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>Hugo, la prova</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2014/12/28/hugo-la-prova/</link>
      <pubDate>Sun, 28 Dec 2014 06:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2014/12/28/hugo-la-prova/</guid>
      <description>&lt;blockquote&gt;&#xA;&lt;p&gt;Massimiliano vene scostumato. Cioè&amp;hellip; niente, lo so&amp;hellip; È proprio il nome che è scostumato.&#xA;Perché Massimiliano&amp;hellip; Per esempio, questo ragazzo sta vicino alla mamma&amp;hellip; questo ragazzo si muove per andare a qualche parte? La mamma prima di chiamare Mas-si-mi-lia-no, il ragazzo già chissà dove è andato, chissà cosa sta facendo! Non ubbidisce, perche è troppo lungo!&#xA;Invece Ugo, quello come sta vicino alla mamma e sta per muoversi: Ugo! Il ragazzo non ha nemmeno il tempo di fare un passo. Ugo!, e deve tornare per forza, perche lo sente, il nome.&#xA;&amp;ndash; Massimo Troisi, Ricomincio da tre (1981)&lt;/p&gt;&lt;/blockquote&gt;&#xA;&lt;div style=&#34;position: relative; padding-bottom: 56.25%; height: 0; overflow: hidden;&#34;&gt;&#xA;      &lt;iframe allow=&#34;accelerometer; autoplay; clipboard-write; encrypted-media; gyroscope; picture-in-picture; web-share&#34; allowfullscreen=&#34;allowfullscreen&#34; loading=&#34;eager&#34; referrerpolicy=&#34;strict-origin-when-cross-origin&#34; src=&#34;https://www.youtube.com/embed/yOLr5RiGTf4?autoplay=0&amp;amp;controls=1&amp;amp;end=0&amp;amp;loop=0&amp;amp;mute=0&amp;amp;start=0&#34; style=&#34;position: absolute; top: 0; left: 0; width: 100%; height: 100%; border:0;&#34; title=&#34;YouTube video&#34;&gt;&lt;/iframe&gt;&#xA;    &lt;/div&gt;&#xA;&#xA;&lt;p&gt;Sono passati diversi mesi dalla mia (quasi) &lt;a href=&#34;http://melabit.wordpress.com/2014/08/12/i-limiti-di-wordpress-com-cosa-ho-scartato-e-perche/&#34;&gt;promessa di provare&lt;/a&gt; approfonditamente &lt;a href=&#34;http://gohugo.io/&#34;&gt;Hugo&lt;/a&gt;, uno dei generatori di siti web statici più promettenti. Finalmente sono riuscito ad avere un po&amp;rsquo; di tempo libero da lavoro e famiglia per installare e provare Hugo, ed ecco qui le mie impressioni.&lt;/p&gt;&#xA;&lt;p&gt;Lo dico subito: Hugo non mi è piaciuto. Il primo impatto è buono, non lo nego, ma appena ho cominciato ad usarlo con un sito di test mi sono accorto che presenta delle notevoli debolezze, almeno rispetto alle mie idee circa la futura implementazione di questo blog.&lt;/p&gt;&#xA;&lt;h4 id=&#34;installazione&#34;&gt;Installazione&lt;/h4&gt;&#xA;&lt;p&gt;Hugo è facilissimo da installare. La pagina &lt;a href=&#34;https://github.com/spf13/hugo/releases&#34;&gt;Hugo Releases&lt;/a&gt; contiene il codice di Hugo compilato per le diverse piattaforme. L&amp;rsquo;ultima versione di Hugo per i Mac recenti è &lt;code&gt;hugo_0.12_darwin_amd64.zip&lt;/code&gt; (i Mac hanno sempre usato processori Intel, chissà perché la versione a 64 bit per OS X è etichettata con il suffisso &lt;code&gt;amd64&lt;/code&gt;), ma va comunque benissimo anche la versione a 32 bit, &lt;code&gt;hugo_0.12_darwin_386.zip&lt;/code&gt;, compatibile anche con i Mac Intel più vecchi.&lt;/p&gt;&#xA;&lt;p&gt;Una volta scaricato il file .zip, bisogna scompattarlo e copiare l&amp;rsquo;eseguibile &lt;code&gt;hugo_0.12_darwin_amd64&lt;/code&gt; in &lt;code&gt;/usr/local/bin&lt;/code&gt; o &lt;a href=&#34;http://melabit.wordpress.com/2014/11/06/script-di-shell-in-os-x/&#34;&gt;preferibilmente&lt;/a&gt; in &lt;code&gt;~/bin&lt;/code&gt;. Per evitare di dover scrivere ogni volta un comando così lungo, consiglio di rinominare l&amp;rsquo;eseguibile in &lt;code&gt;hugo&lt;/code&gt; o, meglio, di creare un soft-link al file originale.&lt;/p&gt;&#xA;&lt;p&gt;Da Terminale e supponendo di aver già scaricato il file .zip nella cartella Downloads&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;$ cd Downloads&#xA;$ unzip hugo_0.12_darwin_amd64.zip&#xA;$ cd /usr/local/bin&#xA;$ sudo cp -p ~/Downloads/hugo_0.12_darwin_amd64/hugo_0.12_darwin_amd64 .&#xA;$ ln -s hugo_0.12_darwin_amd64 hugo&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Se si vuole invece installare Hugo in &lt;code&gt;~/bin&lt;/code&gt; non serve usare il &lt;a href=&#34;http://www.linux.com/learn/tutorials/306766:linux-101-introduction-to-sudo&#34;&gt;comando &lt;code&gt;sudo&lt;/code&gt;&lt;/a&gt;&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;$ cd Downloads&#xA;$ unzip hugo_0.12_darwin_amd64.zip&#xA;$ cd ~/bin&#xA;$ cp -p ~/Downloads/hugo_0.12_darwin_amd64/hugo_0.12_darwin_amd64 .&#xA;$ ln -s hugo_0.12_darwin_amd64 hugo&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Per chi usa &lt;a href=&#34;http://melabit.wordpress.com/2014/04/29/homebrew-software-per-il-mac-fatto-in-casa/&#34;&gt;Homebrew&lt;/a&gt;, l&amp;rsquo;installazione è ancora più semplice. È sufficiente eseguire da Terminale&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;$ brew install hugo&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;che, oltre ad Hugo, installerà automaticamente il compilatore &lt;a href=&#34;https://golang.org/&#34;&gt;Go&lt;/a&gt; e i sistemi di controllo di revisione &lt;a href=&#34;http://bazaar.canonical.com/en/&#34;&gt;Bazaar&lt;/a&gt; e &lt;a href=&#34;http://mercurial.selenic.com/&#34;&gt;Mercurial&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h4 id=&#34;un-sito-di-prova&#34;&gt;Un sito di prova&lt;/h4&gt;&#xA;&lt;p&gt;Hugo permette di creare automaticamente la struttura di default di un sito, da cui partire per ulteriori personalizzazioni ed aggiunte. Spostiamoci in una directory del nostro account, ad esempio Documenti, e creiamo il sito &lt;code&gt;testhugo&lt;/code&gt; con il comando&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;$ cd Documenti&#xA;$ hugo new site testhugo&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;La struttura del sito di default è molto semplice [1^],&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;$ tree testhugo&#xA;testhugo/&#xA;├── archetypes&#xA;├── config.toml&#xA;├── content&#xA;├── layouts&#xA;└── static&#xA;4 directories, 1 file&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;contiene solo il file di configurazione &lt;code&gt;config.toml&lt;/code&gt; e le quattro directory standard del sistema.&#xA;Fra queste, la più importante è &lt;code&gt;content&lt;/code&gt;, che contiene i file originali delle pagine e dei post del sito in formato &lt;a href=&#34;http://daringfireball.net/projects/markdown/&#34;&gt;markdown&lt;/a&gt; ovvero, prendendo a prestito un termine tipico della programmazione, i &lt;em&gt;sorgenti&lt;/em&gt; del sito.&lt;/p&gt;&#xA;&lt;p&gt;Tutte le operazioni successive vanno eseguite da Terminale tramite il comando &lt;code&gt;hugo&lt;/code&gt; seguito dalle relative opzioni. Il comando deve essere eseguito necessariamente dall&amp;rsquo;interno della directory del sito&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;  $ cd Documenti/testhugo&#xA;  $ hugo [opzioni]&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Un sito web non serve a niente se non ci sono dei contenuti. Hugo ha un comando per creare una nuova pagina del sito. Eseguendo&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt; $ hugo new chi-sono.md&#xA; /Users/.../Documenti/testhugo/content/chi-sono.md created&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Hugo crea il file &lt;code&gt;chi-sono.md&lt;/code&gt; nella directory &lt;code&gt;content&lt;/code&gt;,&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;$ tree testhugo/&#xA;testhugo/&#xA;├── archetypes&#xA;├── config.toml&#xA;├── content&#xA;│   └── chi-sono.md&#xA;├── layouts&#xA;└── static&#xA;&#xA;4 directories, 2 files&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;e aggiunge automaticamente stato, titolo e data di creazione (in &lt;a href=&#34;http://www.cl.cam.ac.uk/~mgk25/iso-time.html&#34;&gt;formato ISO8601/Zulu&lt;/a&gt;) nel &lt;a href=&#34;http://gohugo.io/content/front-matter/&#34;&gt;&lt;em&gt;frontespizio&lt;/em&gt;&lt;/a&gt; (front matter) del file.&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;+++&#xA;draft = true&#xA;title = &amp;quot;chi-sono&amp;quot;&#xA;date = 2014-12-27T21:19:56Z&#xA;+++&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Il frontespizio di default è in formato &lt;a href=&#34;https://github.com/toml-lang/toml&#34;&gt;TOML&lt;/a&gt; (identificabile dal fatto che le variabili sono racchiuse fra una coppia di linee contenenti la sequenza &lt;code&gt;+++&lt;/code&gt;), ma in alternativa possono anche essere usati i formati &lt;a href=&#34;http://www.yaml.org/&#34;&gt;YAML&lt;/a&gt; e &lt;a href=&#34;http://www.json.org/&#34;&gt;JSON&lt;/a&gt; più diffusi.&lt;/p&gt;&#xA;&lt;p&gt;Ovviamente il contenuto vero e proprio della pagina deve essere inserito a mano, con un editor di testo.&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; Editiamo il file &lt;code&gt;chi-sono.md&lt;/code&gt;, aggiungendo le righe seguenti&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;+++&#xA;draft = true&#xA;title = &amp;quot;about&amp;quot;&#xA;date = 2014-05-20T10:04:31Z&#xA;+++&#xA;&#xA;### Chi sono&#xA;&#xA;Io sono. Io chi sono? Il cielo è primordialmente puro ed immutabile mentre le nubi sono temporanee. Le comuni apparenze scompaiono con l&#39;esaurirsi di tutti i fenomeni. Tutto è illusorio privo di sostanza, tutto è vacuità.&#xA;&#xA;Io sono. Io chi sono?&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Per creare una pagina in una directory contenuta all&amp;rsquo;interno della directory principale &lt;code&gt;content&lt;/code&gt;, dobbiamo scrivere il percorso completo al file markdown della pagina, relativamente alla directory &lt;code&gt;content&lt;/code&gt;. Quindi&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;$ hugo new cartella/annidata/nuova-pagina.md&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;crea il file &lt;code&gt;nuova-pagina.md&lt;/code&gt;, contenuto nella directory &lt;code&gt;content/cartella/annidata/&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Un esempio particolare di questo meccanismo è costituito dai post di un blog, che vanno obbligatoriamente inseriti nella directory &lt;code&gt;content/post/&lt;/code&gt;. Il comando&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;$ hugo new post/un-post.md&#xA;/Users/.../Documenti/testhugo/content/post/un-post.md created&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;crea il nuovo post &lt;code&gt;un-post.md&lt;/code&gt;, inserendolo nella directory &lt;code&gt;content/post/&lt;/code&gt;. Di conseguenza, la struttura del sito diventa&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;$ tree testhugo/&#xA;testhugo/&#xA;├── archetypes&#xA;├── config.toml&#xA;├── content&#xA;│   ├── chi-sono.md&#xA;│   └── post&#xA;│       └── un-post.md&#xA;├── layouts&#xA;└── static&#xA;&#xA;5 directories, 3 files&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;Anche in questo caso valgono le considerazioni fatte prima: Hugo crea automaticamente il frontespizio del post, a cui naturalmente va poi aggiunto il contenuto vero e proprio.&lt;/p&gt;&#xA;&lt;p&gt;Hugo integra anche un semplice server web. Non è quindi necessario installare o configurare un server web completo, come &lt;a href=&#34;http://www.apache.org/&#34;&gt;apache&lt;/a&gt; o &lt;a href=&#34;http://nginx.org/&#34;&gt;nginx&lt;/a&gt;, per visualizzare le pagine web create dal sistema.&lt;/p&gt;&#xA;&lt;p&gt;Una volta definiti i contenuti del sito, basta eseguire il comando&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;$ hugo server --buildDrafts&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;per convertire i sorgenti in markdown nelle pagine html del sito, che saranno visibili puntando il browser all&amp;rsquo;indirizzo &lt;code&gt;http://localhost:1313&lt;/code&gt;.&#xA;L&amp;rsquo;opzione &lt;code&gt;--buildDrafts&lt;/code&gt; istruisce Hugo a convertire in html anche le pagine ancora in formato &lt;code&gt;draft&lt;/code&gt; (o bozza), cioè quelle che contengono nel preambolo la riga &lt;code&gt;draft = true&lt;/code&gt;. Questa opzione è utilissima quando si effettuano delle prove, ma non dovrebbe mai essere usata per un sito &lt;em&gt;vero&lt;/em&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Il processo di conversione dei sorgenti in pagine html è velocissimo: con il mio sito di test contenente tutti i sorgenti di questo blog la conversione è praticamente immediata. Anzi, una delle caratteristiche principali di Hugo e una delle ragioni per cui è stato sviluppato in origine è proprio la sua grande efficienza nel convertire i sorgenti in markdown in file html, anche nel caso di siti contenenti migliaia di documenti.&lt;/p&gt;&#xA;&lt;h4 id=&#34;un-po-di-stile&#34;&gt;Un po&amp;rsquo; di stile&lt;/h4&gt;&#xA;&lt;p&gt;Se proviamo ad eseguire il comando &lt;code&gt;hugo server --buildDrafts&lt;/code&gt; otterremo un sito funzionale ma assolutamente povero dal punto di vista grafico.&lt;/p&gt;&#xA;&lt;p&gt;Per fortuna Hugo permette di installare facilmente un gran numero di temi predefiniti, con cui si può cambiare facilmente l&amp;rsquo;aspetto grafico del sito. Per farlo basta eseguire una volta per tutte&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;$ cd Documenti/testhugo&#x9;&#x9;# per spostarsi all&#39;interno della directory del sito&#xA;$ git clone --recursive https://github.com/spf13/hugoThemes themes&#xA;Cloning into &#39;themes&#39;...&#xA;remote: Counting objects: 83, done.&#xA;remote: Compressing objects: 100% (6/6), done.&#xA;remote: Total 83 (delta 2), reused 0 (delta 0)&#xA;Unpacking objects: 100% (83/83), done.&#xA;...&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;che installa nella directory del sito tutti i temi disponibili alla pagina &lt;a href=&#34;https://github.com/spf13/hugoThemes/&#34;&gt;hugoThemes&lt;/a&gt;. Dopo l&amp;rsquo;installazione la struttura del sito diventa&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;$ tree testhugo/&#xA;testhugo/&#xA;├── archetypes&#xA;├── config.toml&#xA;├── content&#xA;│   ├── chi-sono.md&#xA;│   └── post&#xA;│       └── un-post.md&#xA;├── layouts&#xA;└── static&#xA;└── themes&#xA;    ├── LICENSE&#xA;    ├── README.md&#xA;    ├── herring-cove&#xA;    │   ├── ...&#xA;&#x9;├── html5&#xA;    │   ├── ...&#xA;&#x9;...&#xA;&#x9;└── tinyce&#xA;        ├── ...&#xA;&#x9;&#x9;└── theme.toml&#xA;&#x9;&#xA;183 directories, 625 files&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;In alternativa, si può scaricare il file zip presente nella pagina web &lt;a href=&#34;https://github.com/spf13/hugoThemes/&#34;&gt;hugoThemes&lt;/a&gt;, scompattarlo e copiare tramite il Finder o il Terminale la directory &lt;code&gt;themes&lt;/code&gt; in &lt;code&gt;Documenti/testhugo/&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;A questo punto possiamo provare a ricreare il sito web di prova usando uno dei temi appena installati&lt;/p&gt;&#xA;&lt;pre&gt;&lt;code&gt;$ hugo server --theme=hyde --buildDrafts&#xA;&lt;/code&gt;&lt;/pre&gt;&#xA;&lt;p&gt;e caricando di nuovo la pagina &lt;code&gt;http://localhost:1313&lt;/code&gt; nel browser. Ora il sito appare decisamente meglio.&lt;/p&gt;&#xA;&lt;h4 id=&#34;tutto-bene&#34;&gt;Tutto bene?&lt;/h4&gt;&#xA;&lt;p&gt;In sintesi: Hugo è facile da installare, ha una struttura piuttosto semplice, dispone di parecchi temi preconfezionati, crea automaticamente le nuove pagine e i nuovi post. Tutto bene, allora?&lt;/p&gt;&#xA;&lt;p&gt;Nemmeno per sogno.&lt;/p&gt;&#xA;&lt;p&gt;La maggior parte dei temi non funzionano &amp;ndash; o funzionano soltanto dopo una serie di modifiche &lt;em&gt;ad-hoc&lt;/em&gt; più o meno complicate &amp;ndash; nonostante siano distribuiti come i temi più o meno &lt;em&gt;ufficiali&lt;/em&gt; di Hugo. È vero che il progetto è giovane e in rapida evoluzione, ma credo che sarebbe stato decisamente meglio distribuire ufficialmente solo i temi già pronti per essere usati &lt;em&gt;out-of-the-box&lt;/em&gt;, cioè quelli che non hanno bisogno di configurazioni o modifiche particolari.&lt;/p&gt;&#xA;&lt;p&gt;Disporre di un comando specifico per creare nuove pagine o nuovi post è utile solo fino ad un certo punto. Innanzi tutto perché non può essere utilizzato da chi usa spesso l&amp;rsquo;iPad per preparare i propri post (non guardate me, io per ora l&amp;rsquo;ho fatto solo in estate).  E poi, qual&amp;rsquo;è il vero vantaggio &amp;ndash; in termini di tempo o di facilità d&amp;rsquo;uso &amp;ndash; di creare automaticamente un nuovo file in markdown con qualche riga di frontespizio preconfezionata, quando poi la parte inevitabilmente più lunga e complicata del lavoro è quella di &lt;em&gt;scrivere&lt;/em&gt; il contenuto della pagina (o del post)?&lt;/p&gt;&#xA;&lt;p&gt;Per il frontespizio si possono usare ben tre formati diversi, &lt;a href=&#34;https://github.com/toml-lang/toml&#34;&gt;TOML&lt;/a&gt;, &lt;a href=&#34;http://www.yaml.org/&#34;&gt;YAML&lt;/a&gt; e &lt;a href=&#34;http://www.json.org/&#34;&gt;JSON&lt;/a&gt;. Già così la cosa è abbastanza confusionaria, ma questo è il meno. Quello che è veramente &lt;em&gt;grave&lt;/em&gt; è che nella documentazione di Hugo, &lt;a href=&#34;http://gohugo.io/content/front-matter/&#34;&gt;a parte questa brevissima pagina&lt;/a&gt;, non si trova nessun dettaglio sui tre formati del frontespizio, sulle variabili predefinite, su come crearne di nuove o su come passare da un formato all&amp;rsquo;altro. Può anche darsi che le informazioni ci siano ma che io non sia riuscito a trovarle, ma allora perché tenerle così ben nascoste nei meandri del sito del progetto?&lt;/p&gt;&#xA;&lt;p&gt;E qui arriviamo al punto dolente più importante: la documentazione. La documentazione su Hugo è veramente scarsa, tutto si risolve più o meno nelle poche pagine che costituiscono il &lt;a href=&#34;http://gohugo.io&#34;&gt;sito del progetto&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;In rete non si trova praticamente nessun tutorial indipendente, nessuna pagina di trucchi o di consigli, nessun informazione del tipo &lt;em&gt;io ho fatto così&lt;/em&gt;. Tutto quello che c&amp;rsquo;è è più o meno un copia e incolla dal sito ufficiale di &lt;a href=&#34;http://gohugo.io/&#34;&gt;Hugo&lt;/a&gt;, come &lt;a href=&#34;http://www.cirrushosting.com/web-hosting-blog/an-introduction-to-hugo/&#34;&gt;questo post&lt;/a&gt; o &lt;a href=&#34;https://peteraba.com/blog/first-impressions-of-hugo/&#34;&gt;quest&amp;rsquo;altro&lt;/a&gt;.&#xA;&lt;a href=&#34;https://gowalker.org/github.com/reedobrien/hugo&#34;&gt;Questa pagina&lt;/a&gt; sembra ben fatta, ma in fondo è solo una sintesi in un documento singolo di quello che si trova disperso sul sito ufficiale. La cosa migliore che ho trovato finora su Hugo è &lt;a href=&#34;http://npf.io/2014/08/hugo-is-awesome/&#34;&gt;questa serie di post&lt;/a&gt;: non male, ma troppo poco approfondita.&lt;/p&gt;&#xA;&lt;p&gt;Di conseguenza è quasi impossibile &lt;em&gt;mettere le mani&lt;/em&gt; in Hugo e imparare ad estenderne le funzionalità oltre a quelle predefinite. A parte studiare i sorgenti, ovviamente.&lt;/p&gt;&#xA;&lt;p&gt;Anche in questo caso potrei sbagliarmi o essere stato troppo superficiale nel leggere la documentazione disponibile. Ma se nel corso delle mie prove con Hugo non sono riuscito a fare una cosa banale come visualizzare le categorie e i tag dei post del mio sito di test, non riesco nemmeno ad immaginare quanto potrebbe essere ostico cercare di aggiungere qualche funzione leggermente più complessa: un &lt;a href=&#34;http://it.wikipedia.org/wiki/Breadcrumb&#34;&gt;breadcrumb&lt;/a&gt;, un box di ricerca, l&amp;rsquo;elenco dei tag più usati, o magari un servizio di commenti alternativo a &lt;a href=&#34;http://gohugo.io/extras/comments/&#34;&gt;Disqus&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h4 id=&#34;conclusioni&#34;&gt;Conclusioni&lt;/h4&gt;&#xA;&lt;p&gt;Come ho già detto il primo impatto con Hugo è positivo, ma appena si cerca di usarlo in pratica ci si scontra con i suoi limiti attuali, la scarsità di documentazione su tutti.&lt;/p&gt;&#xA;&lt;p&gt;Sarà anche facile da installare, sarà perfino relativamente semplice da usare così com&amp;rsquo;è, ma per ora, mi dispiace, Hugo non fa per me.&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;Consiglio come al solito &lt;a href=&#34;http://macromates.com/&#34;&gt;TextMate 2&lt;/a&gt;, &lt;a href=&#34;http://www.barebones.com/products/textwrangler/&#34;&gt;TextWrangler&lt;/a&gt;, &lt;a href=&#34;https://atom.io/&#34;&gt;Atom&lt;/a&gt;, &lt;a href=&#34;http://brackets.io/&#34;&gt;Brackets&lt;/a&gt;, più o meno in ordine di (personale) preferenza. Altri editor &lt;em&gt;veri&lt;/em&gt;, da &lt;a href=&#34;http://www.barebones.com/products/bbedit/&#34;&gt;BBEdit&lt;/a&gt; o &lt;a href=&#34;http://www.sublimetext.com/&#34;&gt;Sublime Text&lt;/a&gt; (che prima o poi mi deciderò a provare a fondo) agli editor &lt;em&gt;storici&lt;/em&gt; emacs o vi, presenti di default in OS X, vanno naturalmente altrettanto bene.&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>
  </channel>
</rss>
