Archives For Ricerca e Sviluppo

Quando si parla di backup lo scopo principale del gioco è sempre e solo uno: cercare di non perdere i propri file. Che tu li voglia salvare in copia singola o doppia poco importa, ciò che spesso serve è la delocalizzazione dei file per evitare che il Single Point of Failure sia dietro l’angolo (ho i file sul disco in casa! Ok, e se ti entrano in casa?). Per fare questo mestiere esistono già diverse soluzioni NAS in grado di replicarsi tra loro anche su differenti reti fisiche e in Cloud, ma se volessimo farlo tramite RPi?

Dato che ci stiamo per addentrare un po’ più nella ciccia, è il momento giusto per il doveroso (e assente da un po’) …

Attenzione: articolo ad alto tasso di tecnicismi lavorativi, nerditudine, viaggi mentali che potrebbero non interessare ai più, comunque vada perdete ogni speranza o voi che leggete.
RPi3 e rclone: sincronizzazione dei file tra locale e Cloud

source: unsplash.com / author: Fredy Jacob

rclone

Si chiama rclone e permette di sincronizzare file (in più modi / vie) tra locale e Cloud, non necessariamente con ambo i protagonisti presi in causa. Cosa vuol dire? Vuol dire che nessuno ti vieta di utilizzare rclone per scambiare dati tra due punti in locale (forse poco utile) o tra due punti in Cloud (e qui torna utile in caso di migrazioni), o locale misto Cloud che riguarda forse la maggior parte dei casi. Si tratta di una soluzione completamente open, trovi tutto il progetto su GitHub.

rclone è in grado di dialogare con una quantità molto elevata di servizi di Cloud Storage, è un po’ un coltellino svizzero da tenere a portata di mano (anche sotto forma di soluzione portable). Esistono alcune interfacce grafiche per Windows o macOS ma alcune di queste non vengono più sviluppate e supportate, quindi ti consiglio caldamente di imparare a utilizzare la sua riga di comando: rclone.org/docs.

Qualche esempio pratico

Con l’arrivo di RPi3 B+ in casa, ho scelto di iniziare a giocare con rclone e migrare (in test) quei backup oggi portati a termine da Windows e SyncBack Free. Ti faccio quindi qualche esempio pratico di come sia possibile ottenere lo stesso risultato passando da tutt’altro Sistema Operativo e relativo software di copia dati.

Partendo dal presupposto che tu abbia già configurato rclone e inserito quindi i vari connettori che ti servono (in questo caso parliamo di puro SFTP e nulla più), ti basterà realizzare un piccolo script bash contenente poche e semplici istruzioni, come questo:

rclone sync "gioxx_org:html/wp-content/backupwordpress" "Dropbox:DBBackup/gioxx.org" -P --transfers 9 --include *.zip

La stringa si traduce in questa maniera:

  • gioxx_org è il nome che ho dato al connettore rclone che si occupa di collegarsi a questo blog, dopo i due punti occorre inserire il percorso della cartella che si intende raggiungere. Per arrivare alla backupwordpress mi servirà attraversare prima html/wp-content. Questo percorso è lo stesso che vedresti utilizzando un qualsiasi client FTP per collegarti al tuo spazio web.
  • Dropbox è il nome (molto banale, ne sono consapevole) che ho dato al connettore rclone che si collega al mio account Dropbox. All’interno della home del mio Dropbox esiste una cartella chiamata DBBackup e al suo interno un’ulteriore cartella chiamata gioxx.org, è qui che finiscono tutti i file zip contenenti i backup del mio database MySQL (nota infatti il --include *.zip finale nella riga di comando, che obbliga rclone a scaricare solo file di tipo ZIP).
  • Il parametro -P equivale al “Progress“, rclone mi mostrerà a video l’avanzamento delle operazioni.
  • Il parametro --transfers 9 serve a forzare rclone a trasferire fino a 9 file alla volta, contemporaneamente, perché la mia macchina e la connettività possono sopportarlo. Più è alto il numero, più consumerai RAM e CPU della tua macchina (e occuperai banda internet in download e upload dato che il trasferimento viene eseguito dallo spazio FTP a Dropbox).

Tutto chiaro? Vuoi un altro esempio?

rclone sync "fuorigioco:html" "Dropbox:WebBackup/fuorigio.co" -P --transfers 9 --filter-from /home/pi/exclude-fCo.txt

Cosa è cambiato?

  • Nulla cambia per il sync in sé. Sto chiedendo a rclone di tenere sincronizzati tutti i file della cartella html di fuorigioco (connettore che si collega al buon vecchio fuorigio.co) con una apposita cartella sull’account Dropbox. Restano i 9 trasferimenti contemporanei e la visualizzazione dei progressi, ma.
  • Ma in questo caso utilizzo il filtering messo a disposizione da rclone per escludere una lista di file e cartelle che non mi interessano (vedi: rclone.org/filtering). Sto chiedendo a rclone di aprire il file di testo exclude-fCo.txt e leggere cosa non voglio che venga sottoposto a sincronizzazione, per capirci:
# Esclusioni Fuorigio.co
- /wp-admin/**
- /wp-includes/**

Salta la prima riga, un commento per capire di che lista stiamo parlando nel momento in cui apro il file di testo. Da lì in poi potrai notare un elenco fatto di cartelle che voglio saltare a piè pari, che rclone quindi ignorerà passando oltre. Nessuno ti vieta, come specificato nella documentazione ufficiale, di inserire ulteriori cartelle o singoli file, anche utilizzando delle wildcard che possono quindi fare match con più dati contemporaneamente.

Non ti resta che il crontab

Se non sai di cosa stiamo parlando (sei serio? E hai avuto la pazienza di leggere fino a qua? Fatti abbracciare!), trovi tutto ciò che c’è da sapere riguardo crontab su Raspbian (ma non solo) all’indirizzo raspberrypi.org/documentation/linux/usage/cron.md.

L’attività via rclone la sappiamo padroneggiare e lo script bash è pronto. Lo hai già reso eseguibile, non ti resta che programmarne l’esecuzione secondo esigenza. In questo momento possono quindi tornarti utili un paio di siti web dedicati alla generazione di righe crontab da copiare e riportare facilmente nel file di sistema (sudo crontab -e):

Io utilizzo un pelo più il primo che il secondo (quest’ultimo è molto utile quando vuoi immediatamente leggere in maniera più sensata una riga di Crontab più che crearla da zero). Specifica l’intervallo di esecuzione del tuo script e fornisci ogni dettaglio richiesto, così arriverai a un risultato che potrebbe essere simile a questo:

0 2 * * * /home/pi/DBBackup.sh

Come lo si legge? Ecco: lo script di backup verrà eseguito alle ore 2 del mattino (il 2) in punto (lo 0, che diversamente avrebbe dovuto riportare un altro numero da 1 a 59 se avessi voluto un diverso orario più “esotico“), di ogni giorno (il primo asterisco, avrebbe potuto avere valore da 1 a 31), di ogni mese (il secondo asterisco, avrebbe potuto avere valore da 1 a 12), di ogni giorno della settimana (l’ultimo asterisco, e questo sta a indicare che l’esecuzione deve essere quotidiana, altrimenti avrebbe potuto avere valore da 0 a 6). Ti sembra difficile? Inizialmente lo è, ma poi si entra nell’ottica e lo si capisce immediatamente, ti ho fornito quei due siti web poco sopra proprio per iniziare a fare pratica.

Salva la modifica al crontab e attendi fiducioso che i tuoi file finiscano correttamente nella cartella di backup (ovviamente controlla che vada tutto liscio).

L’articolo si conclude qui (per la tua certa felicità), in caso di problemi o dubbi puoi sempre lasciare un commento. Utilizzi già rclone? Se sì, come gestisci i tuoi backup? Sono curioso di confrontarmi con altre persone nella mia stessa situazione e voglia di sperimentare 🙂

Condividi l'articolo con i tuoi contatti:

YOURLS in installazione self-hosted propone un proprio logo in alto a destra con relativo titolo (H1) bene in evidenza e, contrariamente per esempio a DokuWiki, non permette nativamente di modificarlo o eliminarlo (né il logo, né il titolo); avevo per questo motivo modificato manualmente il file PHP che inserisce il titolo e richiama l’immagine / logo, inserendo la mia icona e nulla più, “una roba un pelo più pulita“, inutile dire che questa soluzione è sconsigliata e da non percorrere (per svariati motivi che ti spiego tra un attimo), ecco perché alla fine ho deciso di scrivere un plugin per YOURLS che ti permette di fare tutto questo senza sporcarti le mani.

YOURLS: cambiare il logo con un plugin (GWallChangeLogo) YOURLS: cambiare il logo con un plugin (GWallChangeLogo) 1

GWallChangeLogo

Perché non modificare manualmente la pagina PHP?

Per svariati motivi, te ne cito un paio fondamentali (il secondo più del primo):

  • se non hai ben presente cosa stai facendo e dove stai mettendo le mani, potresti fare danni anche solo modificando una virgola;
  • ogni modifica operata manualmente verrà certamente sovrascritta al prossimo aggiornamento del software che installerai per questioni di sicurezza (vero che lo farai?), vuoi davvero andare a modificare ogni volta quel richiamo logo e titolo? Suggerimento: No.

È per questo che ho scritto un plugin: gratuito, codice pubblicamente disponibile (puoi lavorarci anche tu, che schifo non mi farebbe), facile da installare e configurare, puoi disattivarlo quando ti pare e decidere di tornare al logo originale di YOURLS, come nulla fosse mai accaduto, pillola azzurra.

Scarica il file PHP del plugin dallo spazio GitHub che gli ho dedicato (questo: github.com/gioxx/YOURLS-GWallChangeLogo), quindi caricalo nella cartella user/plugins del tuo YOURLS così ritrovarlo nella console amministrativa (contoso.com/admin/plugins.php dove contoso.com dovrà essere sostituito con l’URL della tua installazione YOURLS, ovviamente) e attivalo.

A questo punto spostati nella voce di menu GWall Change Logo Plugin Config e specifica i 3 parametri richiesti: URL dell’immagine da utilizzare al posto del logo originale, tag Alt e Title:

YOURLS: cambiare il logo con un plugin (GWallChangeLogo) 2

Non c’è limitazione sull’Image URL, il plugin proverà in ogni caso a fare l’img src dell’indirizzo che gli darai in pasto, occhio quindi a cosa gli riporti all’interno. I tag Alt e Title possono non essere specificati, ma per una questione di standard ti consiglio di farlo inserendo un testo alternativo all’immagine nel caso in cui questa non venisse trovata all’indirizzo specificato. Quando hai terminato, fai clic su Update values per confermare e permettere al plugin di terminare il suo lavoro.

Questo è quanto. Per qualsiasi dubbio l’area commenti è a tua disposizione così come l’area supporto / Issue di GitHub dove potrai segnalare malfunzionamenti o richiedere modifiche al plugin. Crediti e fonti utilizzate sono riportate all’interno del file PHP del plugin, grazie a chi mi ha permesso di imparare qualcosa in più su questo aspetto di YOURLS.


immagine di copertina: rawpixel.com from Pexels
Condividi l'articolo con i tuoi contatti:

Se non conosci YOURLS, è perché evidentemente non ti è mai servito e forse mai ti servirà, questo è il classico post tecnico dedicato a coloro che invece hanno già avuto a che fare con questo software e la sua necessità di aggiornamento old-school: “Scarica, scompatta, carica su FTP e sovrascrivi“. Un po’ sulla falsa riga di quanto fatto in passato con DokuWiki (DokuWiki: upgrade dell’installazione, poi non più necessario grazie all’implementazione nativa e alla disponibilità del file diff sul sito web dello sviluppatore), oggi torno sull’argomento e ti parlo del file diff di YOURLS.

YOURLS: upgrade dell’installazione (file diff) 1

YOURLS stands for Your Own URL Shortener. It is a small set of PHP scripts that will allow you to run your own URL shortening service (a la TinyURL or Bitly).

Running your own URL shortener is fun, geeky and useful: you own your data and don’t depend on third-party services. It’s also a great way to add branding to your short URLs, instead of using the same public URL shortener everyone uses.

Due file ZIP (quello contenente la vecchia versione, quello con all’interno la nuova) che si scaricano direttamente dallo spazio GitHub del progetto, un terminale di Linux (qualsiasi). Si scompattano entrambi i file ZIP (ex.: unzip 1.7.3.zip) nella stessa cartella, quindi il comando per il confronto tra le due directory rimane quasi lo stesso di quello usato per l’articolo del DokuWiki (non fosse che stavolta il mio Terminale è in lingua italiana):

diff -rs $1 $2 | awk '/sono identici/{print $5}' | xargs rm -v

Uso $1 e $2 perché sono variabili che posso dare in pasto a uno script di bash molto semplice, questo:

Il risultato è già pronto, si trova infatti all’interno del repository SomePublicStuff che tengo su GitHub, trovi la release più aggiornata all’indirizzo github.com/gioxx/SomePublicStuff/releases/tag/YOURLS-diff. Scarica il file ZIP, scompattalo e caricane il contenuto all’interno del tuo spazio FTP, dove tieni l’installazione di YOURLS.

Buon lavoro.


immagine di copertina: unsplash.com / author: Thomas Jensen
Condividi l'articolo con i tuoi contatti:

Che tu ci creda o no, può accadere in rarissimi casi che Windows perda l’associazione e la capacità di aprire le cartelle (come quella dei Documenti, o delle Immagini) in seguito a una modifica errata del registro di sistema (regedit). In tutta onestà l’ho visto capitare più su Windows 7 (con o senza Service Pack 1) che non su suoi fratelli maggiori o minori (su Xp forse l’avrò visto accadere una sola volta in vita mia, mai accaduto invece su Windows 10). Per rimediare all’anomalia serve intervenire nuovamente sul registro di sistema, ma puoi farlo con un minimo di tranquillità in più partendo da qualcosa di già sperimentato e verificato.

Windows 10 e i messaggi "Deprecati" del Task Scheduler, come risolvere

Per poter riassociare i parametri adatti in maniera corretta dovrai apportare questo set di modifiche al registro, per farlo puoi scaricare due file .reg già pronti, contengono rispettivamente questo:

Windows Registry Editor Version 5.00

;"Directory" association fix - Windows 7
;http://www.winhelponline.com/blog

[HKEY_CLASSES_ROOT\Directory]
@="File Folder"
"AlwaysShowExt"=""
"EditFlags"=hex:d2,01,00,00
"FriendlyTypeName"="@shell32.dll,-10152"
"FullDetails"="prop:System.PropGroup.Description;System.DateCreated;System.FileCount;System.TotalFileSize"
"InfoTip"="prop:System.Comment;System.DateCreated"
"NoRecentDocs"=""
"PreviewDetails"="prop:System.DateModified;*System.SharedWith;*System.OfflineAvailability;*System.OfflineStatus"
"PreviewTitle"="prop:System.ItemNameDisplay;System.ItemTypeText"

[HKEY_CLASSES_ROOT\Directory\Background\Shell\cmd]
@="@shell32.dll,-8506"
"Extended"=""
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Directory\Background\Shell\cmd\command]
@="cmd.exe /s /k pushd \"%V\""

[HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers\Gadgets]
@="{6B9228DA-9C15-419e-856C-19E768A13BDC}"

[HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers\New]
@="{D969A300-E7FF-11d0-A93B-00A0C90F2719}"

[HKEY_CLASSES_ROOT\Directory\Background\shellex\ContextMenuHandlers\Sharing]
@="{f81e9010-6ea4-11ce-a7ff-00aa003ca9f6}"

[HKEY_CLASSES_ROOT\Directory\DefaultIcon]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,00,68,00,\
65,00,6c,00,6c,00,33,00,32,00,2e,00,64,00,6c,00,6c,00,2c,00,33,00,00,00

[HKEY_CLASSES_ROOT\Directory\shell]
@="none"

[HKEY_CLASSES_ROOT\Directory\shell\cmd]
@="@shell32.dll,-8506"
"Extended"=""
"NoWorkingDirectory"=""

[HKEY_CLASSES_ROOT\Directory\shell\cmd\command]
@="cmd.exe /s /k pushd \"%V\""

[HKEY_CLASSES_ROOT\Directory\shell\find]
"LegacyDisable"=""
"SuppressionPolicy"=dword:00000080

[HKEY_CLASSES_ROOT\Directory\shell\find\command]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
00,5c,00,45,00,78,00,70,00,6c,00,6f,00,72,00,65,00,72,00,2e,00,65,00,78,00,\
65,00,00,00
"DelegateExecute"="{a015411a-f97d-4ef3-8425-8a38d022aebc}"

[HKEY_CLASSES_ROOT\Directory\shellex\ContextMenuHandlers\EncryptionMenu]
@="{A470F8CF-A1E8-4f65-8335-227475AA5C46}"

[HKEY_CLASSES_ROOT\Directory\shellex\ContextMenuHandlers\MSSE]
@="{0365FE2C-F183-4091-AC82-BFC39FB75C49}"

[HKEY_CLASSES_ROOT\Directory\shellex\ContextMenuHandlers\Offline Files]
@="{474C98EE-CF3D-41f5-80E3-4AAB0AB04301}"

[HKEY_CLASSES_ROOT\Directory\shellex\ContextMenuHandlers\Sharing]
@="{f81e9010-6ea4-11ce-a7ff-00aa003ca9f6}"

[HKEY_CLASSES_ROOT\Directory\shellex\ContextMenuHandlers\{596AB062-B4D2-4215-9F74-E9109B0A8153}]

[HKEY_CLASSES_ROOT\Directory\shellex\CopyHookHandlers\FileSystem]
@="{217FC9C0-3AEA-1069-A2DB-08002B30309D}"

[HKEY_CLASSES_ROOT\Directory\shellex\CopyHookHandlers\Sharing]
@="{40dd6e20-7c17-11ce-a804-00aa003ca9f6}"

[HKEY_CLASSES_ROOT\Directory\shellex\PropertySheetHandlers\Offline Files]
@="{7EFA68C6-086B-43e1-A2D2-55A113531240}"

[HKEY_CLASSES_ROOT\Directory\shellex\PropertySheetHandlers\Sharing]
@="{f81e9010-6ea4-11ce-a7ff-00aa003ca9f6}"

[HKEY_CLASSES_ROOT\Directory\shellex\PropertySheetHandlers\{1f2e5c40-9550-11ce-99d2-00aa006e086c}]

[HKEY_CLASSES_ROOT\Directory\shellex\PropertySheetHandlers\{4a7ded0a-ad25-11d0-98a8-0800361b1103}]

[HKEY_CLASSES_ROOT\Directory\shellex\PropertySheetHandlers\{596AB062-B4D2-4215-9F74-E9109B0A8153}]

[HKEY_CLASSES_ROOT\Directory\shellex\PropertySheetHandlers\{ECCDF543-45CC-11CE-B9BF-0080C87CDBA6}]

[HKEY_CLASSES_ROOT\Directory\shellex\PropertySheetHandlers\{ef43ecfe-2ab9-4632-bf21-58909dd177f0}]
@=""

seguito da:

Windows Registry Editor Version 5.00

;"Folder" association fix - Windows 7
;http://www.winhelponline.com/blog

[HKEY_CLASSES_ROOT\Folder]
"ContentViewModeLayoutPatternForBrowse"="delta"
"ContentViewModeForBrowse"="prop:~System.ItemNameDisplay;~System.LayoutPattern.PlaceHolder;~System.LayoutPattern.PlaceHolder;~System.LayoutPattern.PlaceHolder;System.DateModified"
"ContentViewModeLayoutPatternForSearch"="alpha"
"ContentViewModeForSearch"="prop:~System.ItemNameDisplay;System.DateModified;~System.ItemFolderPathDisplay"
@="Folder"
"EditFlags"=hex:d2,03,00,00
"FullDetails"="prop:System.PropGroup.Description;System.ItemNameDisplay;System.ItemTypeText;System.Size"
"NoRecentDocs"=""
"ThumbnailCutoff"=dword:00000000
"TileInfo"="prop:System.Title;System.ItemTypeText"

[HKEY_CLASSES_ROOT\Folder\DefaultIcon]
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,00,68,00,\
65,00,6c,00,6c,00,33,00,32,00,2e,00,64,00,6c,00,6c,00,2c,00,33,00,00,00

[HKEY_CLASSES_ROOT\Folder\shell\explore]
"MultiSelectModel"="Document"
"ProgrammaticAccessOnly"=""
"LaunchExplorerFlags"=dword:00000018

[HKEY_CLASSES_ROOT\Folder\shell\explore\command]
"DelegateExecute"="{11dbb47c-a525-400b-9e80-a54615a090c0}"

[HKEY_CLASSES_ROOT\Folder\shell\open]
"MultiSelectModel"="Document"

[HKEY_CLASSES_ROOT\Folder\shell\open\command]
"DelegateExecute"="{11dbb47c-a525-400b-9e80-a54615a090c0}"
@=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,74,00,25,\
00,5c,00,45,00,78,00,70,00,6c,00,6f,00,72,00,65,00,72,00,2e,00,65,00,78,00,\
65,00,00,00

[HKEY_CLASSES_ROOT\Folder\shell\opennewprocess]
"MUIVerb"="@shell32.dll,-8518"
"MultiSelectModel"="Document"
"Extended"=""
"LaunchExplorerFlags"=dword:00000003
"ExplorerHost"="{ceff45ee-c862-41de-aee2-a022c81eda92}"

[HKEY_CLASSES_ROOT\Folder\shell\opennewprocess\command]
"DelegateExecute"="{11dbb47c-a525-400b-9e80-a54615a090c0}"

[HKEY_CLASSES_ROOT\Folder\shell\opennewwindow]
"MUIVerb"="@shell32.dll,-8517"
"MultiSelectModel"="Document"
"OnlyInBrowserWindow"=""
"LaunchExplorerFlags"=dword:00000001

[HKEY_CLASSES_ROOT\Folder\shell\opennewwindow\command]
"DelegateExecute"="{11dbb47c-a525-400b-9e80-a54615a090c0}"

[HKEY_CLASSES_ROOT\Folder\ShellEx\ContextMenuHandlers\BriefcaseMenu]
@="{85BBD920-42A0-1069-A2E4-08002B30309D}"

[HKEY_CLASSES_ROOT\Folder\ShellEx\ContextMenuHandlers\Library Location]
@="{3dad6c5d-2167-4cae-9914-f99e41c12cfa}"

[HKEY_CLASSES_ROOT\Folder\ShellEx\ContextMenuHandlers\Offline Files]
@="{474C98EE-CF3D-41f5-80E3-4AAB0AB04301}"

[HKEY_CLASSES_ROOT\Folder\ShellEx\DragDropHandlers\{BD472F60-27FA-11cf-B8B4-444553540000}]
@=""

[HKEY_CLASSES_ROOT\Folder\ShellEx\PropertySheetHandlers\BriefcasePage]
@="{85BBD920-42A0-1069-A2E4-08002B30309D}"

[HKEY_CLASSES_ROOT\Folder\ShellEx\PropertySheetHandlers\Offline Files]
@="{7EFA68C6-086B-43e1-A2D2-55A113531240}"

[-HKEY_CLASSES_ROOT\Folder\ShellNew]

[HKEY_CLASSES_ROOT\Folder\ShellNew]
"Directory"=""
"IconPath"=hex(2):25,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\
74,00,25,00,5c,00,73,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,73,\
00,68,00,65,00,6c,00,6c,00,33,00,32,00,2e,00,64,00,6c,00,6c,00,2c,00,33,00,\
00,00
"ItemName"="@shell32.dll,-30396"
"MenuText"="@shell32.dll,-30317"
"NonLFNFileSpec"="@shell32.dll,-30319"

[HKEY_CLASSES_ROOT\Folder\ShellNew\Config]
"AllDrives"=""
"IsFolder"=""
"NoExtension"=""

Si tratta di un lavoro messo a disposizione da winhelponline.com/blog/file-asso-fixes-for-windows-7, funziona bene e risolve in un solo colpo l’errore:

24/3/19

Ho modificato ambo i collegamenti poco sopra perché i lettori di Gioxx’s Wall venivano bloccati dal file htaccess del sito web segnalato. Ho incluso quindi un link generato tramite anonymizer. Se dovessi continuare ad avere problemi, scarica in tranquillità la copia che ho messo a disposizione all’indirizzo go.gioxx.org/win7-regeditfix.

Ho salvato copia dei due file zip (e non solo) in una cartella condivisa del mio account Box, la trovi all’indirizzo go.gioxx.org/win7-regeditfix.

Ti consiglio di riavviare il sistema dopo aver importato i due file di registro.

Buon lavoro.

Condividi l'articolo con i tuoi contatti: