[FIFA22] Steam errore – Esci da eventuali giochi o strumenti in esecuzione prima di provare a verificare i tuoi file locali (RISOLTO)

Problema: Cercando di avviare FIFA 22 da Steam appare il seguente messaggio di errore “Esci da eventuali giochi o strumenti in esecuzione prima di provare a verificare i tuoi file locali” e il gioco non si avvia.

Soluzione: Disinstallare Origin e riavviare il gioco.

Quando si cerca di avviare FIFA 22 da Steam appare un popup di errore come il seguente.

Per quanto si possa cercare di riparare i file e avviare il gioco, quest’ultimo semplicemente non parte.

Per risolvere il problema è sufficiente (e necessario purtroppo!) disinstallare Origin.

Andare su App e funzionalità e individuare l’installazione di Origin.

 

Selezionare e scegliere disinstalla. Si aprirà una finestra come la seguente.

Confermare la disinstallazione.

Una volta completata avviare il gioco, comparirà una schermata come la seguente per l’installazione di OriginThinSetup.

Confermare cambiando eventualmente il percorso di installazione.

Adesso possiamo tornare a giocare a FIFA 22.

[risolto] Plesk: Unable to manage service by phpinimng: (‘start’, ‘plesk-php73-fpm’). Service plesk-php73-fpm is down after attempt to start it

Problema: Impossibile avviare il servizio PHP-FPM 7.3.5 su Plesk. Viene visualizzato un errore del genere Unable to manage service by phpinimng: ('start', 'plesk-php73-fpm'). Service plesk-php73-fpm is down after attempt to start it

Soluzione: Questo problema dipende spesso da errori di configurazione nei file che si trovano in /opt/plesk/php/7.3/etc/php-fpm.d/ oppure dalla presenza di file orfani, dopo la cancellazione di un servizio. Controllare tutti i file e rimuovere gli eventuali orfani (questa è la prima soluzione da valutare).

Nel mio caso specifico, a seguito della cancellazione di un sottodominio, era rimasto il file di configurazione del sottodominio stesso.

Entrando in SSH ed eseguendo rm /opt/plesk/php/7.3/etc/php-fpm.d/sottodominio.orfano.conf il problema si è risolto. E’ stato sufficiente riavviare il servizio e riapplicare la configurazione corrente su uno qualsiasi dei domini attivi che utilizzano il PHP 7.3

[virtualbox] Failed to query SMC value from the host (VERR_INVALID_HANDLE)

Problema: Avviare una macchina virtuale di MacOS su VirtualBox produce l’errore Failed to query SMC value from the host (VERR_INVALID_HANDLE). Un altro sintomo è una generale lentezza di tutte le macchine virtuali su VirtualBox.

Soluzione: Questo errore è dovuto probabilmente a Hyper-V che va disabilitato all’avvio di Windows. Per farlo è sufficiente aprire il prompt dei comandi come amministratore e digitare bcdedit /set hypervisorlaunchtype off. Riavviare infine il PC.

La procedura può essere eseguita anche dalla PowerShell.

Cliccare col destro sul tasto di avvio di Windows e selezionare Windows PowerShell (Amministratore)

Digitare bcdedit /set hypervisorlaunchtype off

Premere INVIO.

Riavviare il PC.

[c#] Semplice classe per gestire connessione e query su un database MySQL

Il nostro scopo è scrivere una semplice classe in C# che permetta di gestire l’inserimento e la lettura dei dati dal database. La caratteristica saliente che ci interessa in questo caso è l’accesso ai dati, in fase di lettura, tramite una List<ListDictionary>, che consente di trattare i risultati come una lista di dizionari.

La classe che vogliamo creare permetterà un utilizzo simile a questo:

La classe sarà formata invece nel modo seguente:

 

[wordpress] Errore RSS: WP HTTP Error: cURL error 60: SSL certificate problem: certificate has expired

Questo errore si presenta nel feed RSS di WordPress a causa di un certificato intermedio scaduto utilizzato da cURL.

Il problema è spesso causato da LetEncrypt. Per risolvere il problema è sufficiente disabilitare il certificato DST CA X3 scaduto.

Per farlo su Ubuntu digitiamo nel terminale i seguenti due comandi:

sed -i 's/mozilla\/DST_Root_CA_X3.crt/!mozilla\/DST_Root_CA_X3.crt/g' /etc/ca-certificates.conf

update-ca-certificates

[risolto] TekkenGame-Win64-Shipping.exe crash con eccezione 0xc0000005

Problema: Tekken 7 su PC (Steam) va in crash con codice di eccezione 0xc0000005 (nel mio caso succedeva quando si tentava una partita VS in locale)

Soluzione: Da Steam verificare l’integrità dei file di gioco.

Tekken 7, installato sul PC da Steam, comincia a crashare senza motivo apparente quando si sta per avviare una partita VS. Dopo aver provato in vano a modificare la risoluzione (passando anche dalla modalità schermo intero a quella borderless e infine a quella a finestra), modificare l’assetto grafico e perfino disattivare l’antivirus, ho eseguito la verifica di integrità dei file di gioco su Steam e questo ha risolto il problema.

L’errore nel registro di Windows dovrebbe apparire come qualcosa del genere:

Nome dell'applicazione che ha generato l'errore: TekkenGame-Win64-Shipping.exe, versione: 1.0.1.0, timestamp: 0x61fb9339
Nome del modulo che ha generato l'errore: TekkenGame-Win64-Shipping.exe, versione: 1.0.1.0, timestamp: 0x61fb9339
Codice eccezione: 0xc0000005
Offset errore 0x0000000000745b24
ID processo che ha generato l'errore: 0x15fc

Per risolvere il problema è dunque sufficiente andare nella libreria di Steam.

Cliccare col destro sul gioco e poi su Proprietà

Nella finestra delle proprietà spostarsi su File Locali.

Infine cliccare su Verifica integrità dei file di gioco…

Il processo richiederà qualche minuto probabilmente e dopodiché il problema dovrebbe essere risolto.

[apache] Isolare VirtualHost su Apache2

Per isolare un VirtualHost su apache ed impedire che si possa accedere agli altri VirtualHost, è sufficiente aggiungere la direttiva riguardante il PHP php_admin_value open_basedir /var/www/torregatti.it/

In questo caso l’unica cartella accessibile è la /var/www/torregatti.it/

Se si vogliono aggiungere più cartelle per quel VirtualHost si può scrivere /var/www/torregatti.it/:/altra/cartella/

Nel file di configurazione del VirtualHost avremo qualcosa del genere:

Usando chmod o-rw su /var/www possiamo isolare la cartella dall’accesso esterno degli utenti.

[python] Disegnare matrice concentrica in Python data una dimensione arbitraria (e valutare le prestazioni)

Vogliamo scrivere un algoritmo in Python che, dato un lato n-esimo arbitrario, disegni una matrice di valori concentrici. Il risultato che vogliamo ottenere è il seguente:

Questo problema ha molteplici soluzioni e Python ne permette un’estrema sintesi.

Cominciamo dalla soluzione più semplice, ma che richiede il maggior numero di cicli.

Anzitutto calcoliamo la dimensione del quadrato:

Adesso prepariamo una matrice di dimensione dim fatta di soli 0

Il procedimento che seguiremo ora sarà quello di stringere la matrice sempre di più, ridisegnando i vari quadrati all’interno della matrice di 0 appena creata.

In questo modo disegneremo ad ogni passaggio un quadrato di numeri n-k

Stampiamo infine a video la matrice:

Possiamo misurare il tempo di calcolo necessario (questo tempo dipende principalmente dal processore in uso, quindi varia da macchina a macchina) utilizzando la libreria time

Il codice diventerebbe il seguente:

Nel mio caso l’operazione per un lato di dimensione 1000 impiega circa 131.700 ms. Su questo torneremo successivamente.

Possiamo però riscrivere l’algoritmo in un altra forma più sintetica.

Questa volta l’algoritmo impiega 1.250 ms circa, sempre per lato di dimensione 1000.

Il risultato è il medesimo, ma il tempo di calcolo è decisamente inferiore.

Un’altra versione potrebbe essere la seguente:

Questa volta il tempo di calcolo, per dimensione 1000 di lato, è di circa 490 ms.

Confrontando i tre algoritmi su range di calcoli da 50 a 1000, otteniamo le seguenti performance (il primo algoritmo lo chiamiamo A, l’ultimo lo chiamiamo C):

Che possiamo mettere in un grafico (con scala logaritmica) come il seguente:

[word] Rimuovere “Limita modifica” da un file docx di Word

Problema: Il file word risulta protetto con l’opzione Limita modifica che impedisce anche di copiare il testo dal file.

Soluzione: Rinominare il file docx con estensione zip, decomprimere il file, individuare all’interno della cartella il file word/settings.xml, aprirlo con un editor di testo ed impostare su false il parametro w:enforcement, salvare il file, ricomprimere tutto il contenuto della cartella in un file zip e rinominarlo in docx

Vediamo la procedura nel dettaglio.

Anzitutto individuiamo il file Word che non permette le modifiche. Aprendo il file e andando nella scheda Revisione > Proteggi cliccando sull’opzione Limita modifica si aprirà una finestra simile alla seguente:

Il file potrebbe essere protetto a diversi livelli e non consentire nemmeno la copia del testo.

Per rimuovere la protezione procediamo nella maniera seguente.

A questo punto prendiamo il file e rinominiamolo con l’estensione zip.

Per farlo da Windows 10 dobbiamo attivare la visualizzazione delle estensioni dei file. Se non l’abbiamo già fatto, in Esplora Risorse andiamo su Visualizza > Mostra / Nascondi e spuntiamo Estensioni nomi file.

Una volta rinominato il file in formato zip possiamo decomprimerlo in una cartella, trovando dentro una struttura simile a questa:

Entriamo nella cartella word e individuiamo il file settings.xml

Apriamo il file con un editor di testo (consiglio Notepad++) e individuiamo il parametro w:enforcement

Il parametro sarà probabilmente impostato su true oppure 1.

Modifichiamolo su false.

A questo punto torniamo nella cartella precedente e comprimiamo tutti i file.

Otterremo un nuovo file zip, cambiamo di nuovo l’estensione in docx e il gioco è fatto.

[python] Albero binario in Python

Riporto qui un classico dell’informatica di base: la realizzazione di un albero binario per l’ordinamento.

Quello dell’albero binario è un algoritmo che consente di ordinare dei valori in base al criterio di inserimento e successivamente di lettura.

Per far capire meglio il procedimento vediamo anzitutto come funziona.

Immaginiamo di avere la sequenza di numeri 3, 4, 1, 7, 6, 5, 8, 11, 9. L’algoritmo prevede la creazione di una struttura ad albero, composta di nodi, dove ogni nodo contiene un valore e un ramo di sinistra e uno di destra, che puntano rispettivamente al valore minore e maggiore, rispetto al valore nel nodo. La creazione dell’albero procederà quindi come nel video soprastante.

La lettura avverrà invece a partire dal primo nodo, procedendo anzitutto sul nodo di sinistra, poi stampando il valore del nodo corrente e poi procedendo sul nodo di destra. Come illustrato nella seguente animazione:

 

Procedendo in questo modo otterremo tutti i valori ordinati.

Questo algoritmo può essere scritto in Python nel modo seguente: