<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
  <channel>
    <title>Maggie on Melabit</title>
    <link>https://static.233.196.69.159.clients.your-server.de/it/tags/maggie/</link>
    <description>Recent content in Maggie on Melabit</description>
    <generator>Hugo</generator>
    <language>it</language>
    <lastBuildDate>Mon, 28 Jul 2025 06:00:00 +0000</lastBuildDate>
    <atom:link href="https://static.233.196.69.159.clients.your-server.de/it/tags/maggie/index.xml" rel="self" type="application/rss+xml" />
    <item>
      <title>Fare una Maggie</title>
      <link>https://static.233.196.69.159.clients.your-server.de/it/2025/07/28/fare-una-maggie/</link>
      <pubDate>Mon, 28 Jul 2025 06:00:00 +0000</pubDate>
      <guid>https://static.233.196.69.159.clients.your-server.de/it/2025/07/28/fare-una-maggie/</guid>
      <description>&lt;p&gt;&lt;a href=&#34;https://melabit.com/it/2025/07/22/macos-tahoe-developer-beta-3/&#34;&gt;L&amp;rsquo;ultimo articolo&lt;/a&gt; mi ha fatto letteralmente impazzire. Non per la lunghezza, anche se scrivere un testo di più di tremila parole e ventimila caratteri in due lingue diverse non è una sciocchezza.&lt;/p&gt;&#xA;&lt;p&gt;Il vero problema è nato dal fatto che a un certo punto il file Markdown dell&amp;rsquo;articolo si è corrotto. Quando &lt;a href=&#34;https://melabit.com/it/2025/05/24/jeeeeeekyll-no-hugo/&#34;&gt;Hugo&lt;/a&gt; provava a convertirlo in &lt;code&gt;HTML&lt;/code&gt;, il file generato conteneva, al posto delle lettere accentate italiane, il &lt;a href=&#34;https://en.wikipedia.org/wiki/Specials_%28Unicode_block%29&#34;&gt;&lt;em&gt;carattere di sostituzione&lt;/em&gt;&lt;/a&gt; �, quel rombo nero con dentro un punto interrogativo bianco che abbiamo visto in tante email e pagine web.&lt;/p&gt;&#xA;&lt;p&gt;Ci ho perso ore prima di risolvere il problema.&lt;/p&gt;&#xA;&lt;h4 id=&#34;quando-un-file-markdown-si-corrompe&#34;&gt;Quando un file Markdown si corrompe&lt;/h4&gt;&#xA;&lt;p&gt;La prima ipotesi è stata che il file contenesse qualche carattere spurio, come uno spazio che non è davvero uno spazio, oppure una di quelle lettere &lt;em&gt;strane&lt;/em&gt; che qualche anno fa &lt;a href=&#34;https://eu.usatoday.com/story/news/factcheck/2021/04/30/fact-check-hackers-use-similar-looking-characters-phishing-schemes/4891437001/&#34;&gt;hanno creato un certo scompiglio&lt;/a&gt;. Un bel problema cercarle nel testo, per cui ho fatto il contrario e ho scritto una espressione regolare che cercasse &lt;strong&gt;tutto ciò che non era normale&lt;/strong&gt;, raffinandola via via che procedevo.&lt;/p&gt;&#xA;&lt;p&gt;Alla fine l&amp;rsquo;espressione regolare è diventata questa.&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;[^a-zA-Z0-9àèéìòùÀÈÉÌÒÙ ,.;:`&amp;#39;&amp;#34;()\[\]\-^/_*#\n]&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;Una cosa molto terra-terra, ma l&amp;rsquo;importante è che funzionasse. Purtroppo non ha trovato niente di strano.&lt;/p&gt;&#xA;&lt;p&gt;Per cercare di restringere il più possibile l&amp;rsquo;area che poteva contenere l&amp;rsquo;errore, ho iniziato a togliere parti di testo, prima poche righe e poi intere sezioni, ricompilando ogni volta il file tagliuzzato con Hugo. Niente, non c&amp;rsquo;era verso di togliere quegli stramaledetti rombi neri!&lt;/p&gt;&#xA;&lt;p&gt;E qui ho fatto la cosa davvero decisiva: dopo aver provato e riprovato senza successo, ho lasciato perdere e sono andato a cena.&lt;/p&gt;&#xA;&lt;p&gt;Sì, perché quando non si riesce a risolvere un problema &amp;ndash; che sia risolvere un difficile esercizio di matematica, far funzionare un programma o scrivere l&amp;rsquo;attacco di quel post che ci frulla in testa da ore &amp;ndash; la cosa migliore da fare è lasciare perdere e dedicarsi ad altro. Non so voi, ma con me funziona sempre alla grande.&lt;/p&gt;&#xA;&lt;p&gt;E dopo cena mi è venuta l&amp;rsquo;idea: ho fatto una &lt;em&gt;Maggie&lt;/em&gt; e tutto è andato a posto.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-07-28-fare-una-maggie/Gemini_Generated_Image_irhit8irhit8irhi.jpg&#34; alt=&#34;&#34;&gt;&#xA;&amp;ndash; &lt;em&gt;Immagine generata da &lt;a href=&#34;https://gemini.google.com&#34;&gt;Google Gemini&lt;/a&gt;.&lt;/em&gt;&lt;/p&gt;&#xA;&lt;h4 id=&#34;fare-una-maggie&#34;&gt;Fare una &lt;em&gt;Maggie&lt;/em&gt;&lt;/h4&gt;&#xA;&lt;p&gt;&lt;em&gt;Maggie&lt;/em&gt; è il diminutivo di Margaret Secara, diventata famosa per un trucco, semplice ma molto efficace, per &lt;a href=&#34;https://tidbits.com/2013/03/28/avoid-and-fix-word-document-corruption/&#34;&gt;recuperare un documento Word corrotto&lt;/a&gt;: cliccare sull&amp;rsquo;icona &lt;code&gt;¶&lt;/code&gt; della Barra Multifunzione di Word per attivare la visualizzazione dei caratteri di formattazione (se la finestra di Word è stretta, l&amp;rsquo;icona potrebbe nascondersi all&amp;rsquo;interno della &lt;a href=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-07-28-fare-una-maggie/word-show-format-characters-narrow.png&#34;&gt;sezione dedicata ai paragrafi&lt;/a&gt;), poi selezionare tutto il testo &lt;strong&gt;tranne l&amp;rsquo;ultimo carattere di &lt;code&gt;Invio&lt;/code&gt;&lt;/strong&gt; (come mostrato in figura) e incollarlo in un nuovo documento vuoto.&lt;/p&gt;&#xA;&lt;img src=&#34;https://static.233.196.69.159.clients.your-server.de/img/2025-07-28-fare-una-maggie/word-show-format-characters.png&#34; alt=&#34;&#34;&gt;&lt;p&gt;Se non funziona, si può ripetere il procedimento copiando parti successive del testo in un nuovo documento, in modo da circoscrivere il più possibile la porzione corrotta.&lt;/p&gt;&#xA;&lt;p&gt;La prima volta che ho usato questo trucco stavo lavorando su un documento di più di cento pagine, passato per parecchi colleghi e differenti versioni di Word, che era diventato ingestibile: ogni nuovo carattere impiegava secondi per comparire sullo schermo e Word andava continuamente in crash. Con la procedura descritta ho risolto il problema in un battibaleno.&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;Il trucco di Maggie funziona perché i file Word hanno una doppia struttura. La prima è quella che mostrata sullo schermo del computer, fatta di testo, immagini e tabelle, con divisioni in capitoli, sezioni e paragrafi, con grassetti, italici, sottolineature, con interruzioni di pagina, liste, rientri, tutte cose messe lì un po&amp;rsquo; a casaccio dall&amp;rsquo;utente.&lt;/p&gt;&#xA;&lt;p&gt;La seconda struttura è quella del file XML sottostante, che dopo un po&amp;rsquo; di aggiunte, correzioni, cancellazioni, ripensamenti, diventa un fritto misto di tag XML innestati uno sull&amp;rsquo;altro, che rimangono però sempre invisibili all&amp;rsquo;utente e non vengono mai &lt;em&gt;ripuliti&lt;/em&gt; e ristrutturati in modo coerente dal programma.&lt;/p&gt;&#xA;&lt;p&gt;A meno di non farlo noi a mano, copiando tutto il testo in un nuovo documento, ma evitando come la peste l&amp;rsquo;ultimo carattere di &lt;code&gt;Invio&lt;/code&gt; che, per qualche motivo arcano, contiene la chiave di accesso alle porcherie nascoste del documento Word.&lt;/p&gt;&#xA;&lt;p&gt;Margaret &lt;em&gt;Maggie&lt;/em&gt; Secara avrà scoperto questo trucco per caso, ma si è rivelato così utile da trasformare il suo soprannome in una parola vera e propria, come Kleenex, Band-Aid, Post-It, Tupperware o Google.&lt;/p&gt;&#xA;&lt;h4 id=&#34;ma-sono-documenti-di-testo&#34;&gt;Ma sono documenti di testo!&lt;/h4&gt;&#xA;&lt;p&gt;Però i miei post li scrivo in Markdown, mica con Word. Ma anche così, ripartire da un documento &lt;em&gt;fresco&lt;/em&gt; e copiarci dentro il contenuto di quello corrotto può rivelarsi il metodo più veloce per risolvere tanti problemi.&lt;/p&gt;&#xA;&lt;p&gt;Ovviamente il trucco funziona con qualunque tipo di documento in testo puro, che sia scritto in Markdown, LaTeX, HTML, XML, JSON, Org mode&amp;hellip; o in qualsiasi altro formato più o meno arcano che vi venga in mente.&lt;/p&gt;&#xA;&lt;p&gt;Anzi, proprio perché, a differenza di Word, un documento di testo non nasconde nulla all&amp;rsquo;utente, non serve nemmeno evitare di copiare l&amp;rsquo;ultimo carattere di &lt;code&gt;Invio&lt;/code&gt;; si può selezionare tranquillamente tutto il testo, copiarlo e incollarlo in un nuovo file vuoto.&lt;/p&gt;&#xA;&lt;p&gt;Prima di farlo è sempre bene controllare che il testo non contenga dei caratteri spuri, utilizzando una espressione regolare simile a quella riportata più sopra.&lt;/p&gt;&#xA;&lt;p&gt;E con questo l&amp;rsquo;articolo è finito. Le due sezioni qui sotto sono riservate solo ai più curiosi, che vogliono sapere cosa mi era successo davvero.&lt;/p&gt;&#xA;&lt;h4 id=&#34;solo-per-i-più-curiosi&#34;&gt;Solo per i più curiosi&amp;hellip;&lt;/h4&gt;&#xA;&lt;h5 id=&#34;perché-il-metodo-funziona&#34;&gt;Perché il metodo funziona?&lt;/h5&gt;&#xA;&lt;p&gt;Una volta risolto il problema immediato, la curiosità ha avuto il sopravvento e mi sono chiesto &lt;em&gt;perché&lt;/em&gt; il metodo descritto funziona con i documenti di testo. Come succede spesso, lavorare dal Terminale aiuta a risolvere i problemi più spinosi.&lt;/p&gt;&#xA;&lt;p&gt;In un normale editor come BBedit o TextMate, il file corrotto appare perfettamente normale, ma se lo si visualizza nel Terminale con &lt;code&gt;cat&lt;/code&gt;, si nota subito che tutti i caratteri accentati vengono sostituiti da dei &lt;code&gt;?&lt;/code&gt;, più o meno come succede convertendolo in HTML.&lt;/p&gt;&#xA;&lt;p&gt;Il comando &lt;code&gt;file&lt;/code&gt; dà poi la risposta definitiva. Se lo applico al file corrotto, &lt;code&gt;file 2025-07-22-macos-tahoe-developer-beta-3.md&lt;/code&gt;, ottengo in risposta&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Non-ISO extended-ASCII text, with very long lines (1264)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;mentre con un qualunque altro file Markdown il risultato è (come è giusto che sia)&lt;/p&gt;&#xA;&lt;pre tabindex=&#34;0&#34;&gt;&lt;code&gt;Unicode text, UTF-8 text, with very long lines (1264)&#xA;&lt;/code&gt;&lt;/pre&gt;&lt;p&gt;In altri termini, il file aveva perso la codifica &lt;code&gt;UTF-8&lt;/code&gt;, trasformandosi in un generico file di testo non-standard.&lt;/p&gt;&#xA;&lt;p&gt;Se me ne fossi accorto prima, avrei potuto usare &lt;code&gt;iconv&lt;/code&gt; per correggere la codifica del file, ma in questo caso non c&amp;rsquo;è dubbio che il copia-e-incolla è molto più pratico.&lt;/p&gt;&#xA;&lt;h5 id=&#34;cosè-successo-davvero&#34;&gt;Cos&amp;rsquo;è successo davvero?&lt;/h5&gt;&#xA;&lt;p&gt;Difficile a dirsi, ma ci sono degli indizi. Dato che l&amp;rsquo;&lt;a href=&#34;https://melabit.com/it/2025/07/22/macos-tahoe-developer-beta-3/&#34;&gt;articolo era molto lungo&lt;/a&gt;, l&amp;rsquo;ho scritto in più riprese un po&amp;rsquo; sul Mac Mini e un po&amp;rsquo; sull&amp;rsquo;Air.&lt;/p&gt;&#xA;&lt;p&gt;In genere copio i file di lavoro in locale e li sincronizzo solo in un secondo momento. Ma questa volta cambiavo continuamente computer, per cui ho preferito lavorare direttamente  sulla cartella sincronizzata (usando &lt;a href=&#34;https://melabit.com/it/2024/03/21/syncthing-ovvero-come-liberarsi-dalle-limitazioni-di-dropbox-e-affini/&#34;&gt;Syncthing&lt;/a&gt;, ma non credo che sia stato lui il responsabile; in quel caso avrei trovato dei file in conflitto, che invece non ci sono). Invece ci sono stati ogni tanto dei problemi di rete, e penso che sia stato proprio questo che ha finito per corrompere la codifica del file.&lt;/p&gt;&#xA;&lt;p&gt;La morale? Lavorare in locale e sincronizzare solo quando si è finito. Oppure lavorare direttamente in rete solo quando il collegamento è stabile.&lt;/p&gt;&#xA;&lt;p&gt;Ma quando non si può, meglio ricordarsi dei consigli della buona vecchia &lt;em&gt;Maggie&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;Pare che si possa recuperare un documento Word &lt;a href=&#34;https://learn.microsoft.com/en-us/answers/questions/5037456/how-to-maggie-a-corrupt-word-document-but-keep-all&#34;&gt;senza perdere traccia delle modifiche effettuate&lt;/a&gt;. La guida usa delle combinazioni di caratteri tipiche di Word per Windows, e quindi non è immediato applicarla alla versione per macOS.&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>
