concurrent.futures.process.BrokenProcessPool eseguendo QuantumProgram di qiskit-sdk

Soluzione: il codice eseguito in Python deve essere protetto, o meglio “guarded”, ciò significa che il QuantumProgram deve essere eseguito dentro ad un’istruzione if __name__ == “__main__”

Compilando il programma nell’esempio nel qiskit-sdk-py si incorre nel seguente errore durante l’esecuzione:

Questo accade perché si tentano di avviare delle biforcazioni del processo originale senza aver utilizzato un idioma appropriato per il modulo. Per correggere il problema è sufficiente reimpostare il codice eseguibile in questo modo:

Ambiente di prova:

  • Version used: Python 3.6.3 (v3.6.3:2c5fed8, Oct 3 2017, 18:11:49) [MSC v.1900 64 bit (AMD64)] on win32
  • Environment name and version (e.g. Python 3.6.1): Python 3.6.3
  • Operating System and version: Microsoft Windows 10 Pro 10.0.16299 build 16299

 

Pubblicato originariamente su Github.

Usando la rotellina su Google Maps lo zoom è troppo veloce

Problema: scorrendo la rotellina su Google Maps per lo zoom, la mappa si rimpicciolisce o ingrandisce troppo rapidamente e senza possibilità di calibrare l’ingrandimento

Soluzione: probabilmente dipende dal software/driver del mouse, nel mio caso dal software Logitech Options (modello mouse M310)

Continua l’epopea del mouse con la rotellina che fa male.

Dopo aver scaricato Logitech Options mi accorgo che, su Google Maps, quando si utilizza la rotellina per ingrandire, la mappa letteralmente fugge via, ingrandendosi o rimpicciolendosi a dismisura.

Si passa da:

A qualcosa tipo:

E viceversa, con una sola rotazione del mouse.

Disinstallando il programma, che tra l’altro riceveva continui aggiornamenti, il tutto è tornato regolare.

Extreme Injector v3.7.3 (funzionante su Windows 10)

L’altro giorno cercavo di installare Cinematic Tools per Assassin’s Creed Unity, ma ho scoperto che nel download del sito ufficiale era incluso uno Extreme Injector non compatibile con Windows 10. Dopo un po’ di ricerca ho trovato la versione funzionante scaricabile dalla pagina ufficiale del forum MPGH.net.

Questa è l’interfaccia che dovrebbe apparire se va tutto bene.

HASH SHA256 del file (controllato con antivirus Kaspersky IS2017): 93DDA8B91586ACF53C70DFD3F512FCFF5793A9AF69E174D7E3AD67190361BCE8

Per farlo funzionare è necessario avere installato il Microsoft Visual C++.

In teoria basterebbe la versione 2017, ma per precauzione ho installato anche la 2015.

Scaricare Visual C++ Redistributable per Visual Studio 2015

Download ufficiale

Scaricare Microsoft Visual C++ Redistributable per Visual Studio 2017

Downloads | IDE, Code, & Team Foundation Server | Visual Studio

Una volta entrati nella pagina scendere in fondo e cliccare su Altri strumenti e framework

Calcolare indirizzo IP e rete in PHP

In rete si trovano già numerosi calcolatori di indirizzi IP e rete, come per esempio questo oppure questo.

Prendendo spunto da essi ecco una classe in PHP per ottenere i medesimi risultati. Lo scopo principale in questo caso è utilizzare le operazioni binarie in PHP per calcolare i vari valori di ID Rete, Subnet mask, ecc.

Ecco di seguito un esempio di utilizzo:

 

Installare macOS 10.13 High con VirtualBox su Windows

Cercando un modo di installare il Mac su una macchina virtuale su Windows ho trovato questa fantastica guida online:

Steps to Install macOS 10.13 High Sierra on VirtualBox on Windows

Gli unici unici problemi che mi si sono presentati riguardavano la fase di avvio, quando la macchina virtuale partiva con schermo nero senza fare altro apparentemente.

Nel mio caso il problema è stato risolto modificando nella maniera seguente le impostazioni suggerite:

Versione: Mac OS X (64–bit) e non quelle suggerite in automatico

Chipset: PIIX3 (la dimensione della RAM invece è a piacere e non inficia il funzionamento della macchina, a parte la velocità ovviamente)

Cambiando questi due parametri la macchina virtuale si è avviata senza problemi.

Piccola curiosità:

Le istruzioni al passaggio 5 possono essere seguite da CMD oppure da PowerShell. Nel caso della PowerShell basta anteporre il i caratteri ./ all’eseguibile, ottenendo la seguente serie di comandi:

./VBoxManage.exe modifyvm “macOS 10.13 High Sierra” –cpuidset 00000001 000106e5 00100800 0098e3fd bfebfbff
./VBoxManage setextradata “macOS 10.13 High Sierra” “VBoxInternal/Devices/efi/0/Config/DmiSystemProduct” “iMac11,3”
./VBoxManage setextradata “macOS 10.13 High Sierra” “VBoxInternal/Devices/efi/0/Config/DmiSystemVersion” “1.0”
./VBoxManage setextradata “macOS 10.13 High Sierra” “VBoxInternal/Devices/efi/0/Config/DmiBoardProduct” “Iloveapple”
./VBoxManage setextradata “macOS 10.13 High Sierra” “VBoxInternal/Devices/smc/0/Config/DeviceKey” “ourhardworkbythesewordsguardedpleasedontsteal(c)AppleComputerInc”
./VBoxManage setextradata “macOS 10.13 High Sierra” “VBoxInternal/Devices/smc/0/Config/GetKeyFromRealSMC” 1

Queste istruzioni vanno a modificare un file macOS 10.13 High Sierra.vbox (dipende come avete chiamato la macchina) che si trova nella sua cartella in VirtualBox VMs.

Si tratta di un file XML dove appariranno istruzioni del tipo:

 

 

Mixed Content: The page at ‘https://’ was loaded over HTTPS, but requested an insecure script ‘http://’

Soluzione: Se utilizzate WordPress potete utilizzare un plugin come Really Simple SSL, altrimenti assicuratevi che tutti gli indirizzi nella pagina incriminata siano del tipo HTTPS

Se il browser (in questo caso Chrome) vi segnala il seguente errore

Significa che la pagina che state visitando sta cercando di caricare del contenuto da una connessione non protetta (HTTP) su una connessione protetta (HTTPS). Il problema si risolve semplicemente cambiando il protocollo sugli indirizzi incriminati, oppure forzando un redirect completo della pagina su HTTPS.

Il terzo tasto del mouse smette di funzionare

Soluzione: cliccare velocemente tante volte sulla rotellina finché non si riprende

Eh sì, sembra una cosa quasi magica, lo so. Ma partiamo dall’inizio. Stamani ad un tratto mi rendo conto che la rotellina del mouse non permette più il click. Di conseguenza per chiudere le schede all’interno di Chrome bisogna andare sulla piccola X anziché poter cliccare con il cosiddetto terzo tasto (cliccare con la rotellina insomma). Uhm… Cosa potrà mai essere?

Il mouse è nuovo, comprato a luglio. Possibile che si sia già danneggiato? Magari potrebbe essere un problema di software.

Prima di ipotizzare il danno mi scarico il Logitech Options nella speranza che installi anche dei driver (comunque non lo fa) e permetta la gestione del mouse, o per lo meno una schermata dove si possa verificare se il famigerato click arriva o no al computer. Comunque niente, la situazione non cambia.

Che dipenda da un aggiornamento maledetto di Windows 10? Difficile a dirsi.

Indago in giro e trovo una soluzione di sostituzione di alcuni componenti sulla PCB del mouse.

In fondo all’articolo qualcuno suggerisce di gettare il mouse alcune volte contro il muro!

Dai non potrà funzionare! E invece sì, nessuna sostituzione, niente riparazioni, un semplice frenetico e squilibrato click sulla rotellina e tutto torna operativo come per magia.

Probabilmente dentro ci sarà qualcosa di spostato, ma se tanto mi dà tanto, per ora è tornato a funzionare.

 

Errore contenente l’URL “http://hubblecontent.osi.office.net/” quando si inserisce un’icona o un’immagine

Finalmente la Microsoft ha trovato una soluzione, anche se temporanea, al problema che si manifestava quando si cercavano di inserire delle Icone in PowerPoint.

In particolare quando si andava a cliccare qui

Compariva il seguente messaggio di errore:

La soluzione consiste nell’andare su Opzioni Internet (in Windows 10 basta cercare il nome nel menu)

E poi dalla scheda Avanzate trovare la voce Non salvare pagine crittografate su disco e togliere la spunta.

A quel punto il sistema di inserimento delle icone dovrebbe tornare a funzionare.

Si tratta di una soluzione provvisoria, così classificata dalla stessa Microsoft, in quanto altera quello che dovrebbe essere il normale funzionamento del sistema che appunto non dovrebbe salvare le pagine crittografate sul disco.

Fonte: qui l’articolo originale sul sito ufficiale di MS Office

Ubuntu: montare cartella di rete da dominio windows

Problema:

Avendo un Windows Server con cartelle in condivisione su dominio, montare un percorso condiviso di dominio su una cartella all’interno di Ubuntu avendo installato Samba.

Ammettiamo di avere:

  • 192.168.2.2 come percorso del server/macchina sul quale si trova la condivisione di dominio
  • tuoutente come nome dell’utente all’interno di Ubuntu (UID e GID entrambi su 1001)
  • cartella_dominio il nome della cartella sul dominio che intendiamo montare all’interno della nostra partizione su linux

Soluzione:

 

Configurazione e sicurezza in Apache [per pinguini esordienti]

Abbiamo già visto come installare un Server LAMP al momento dell’installazione di Ubuntu. Vediamo adesso come configurarlo correttamente ed installare i nostri virtual host.

Prima di cominciare chiariamo che cosa sono i virtual host. Un webserver si suppone che possa offrire diversi siti web, ciascuno collegato ad uno specifico nome di dominio. Se abbiamo un singolo web server si potrà supporre che diversi nomi di dominio punteranno alla medesima macchina. Immaginiamo di avere il seguente server

ubuntu (192.168.56.1)

Il nostro server si trova all’indirizzo IP 192.168.56.1 (in questo caso di una LAN, ma per i nostri scopi questo è poco importante). Poi abbiamo tre domini:

miosito.com → 192.168.56.1

torregatti.com → 192.168.56.1

miosito.it → 192.168.56.1

Nel nostro esempio supponiamo che tutti e tre i domini puntino alla medesima macchina, ovvero chiedano alla medesima macchina di restituire dei risultati web per le loro richieste; supponiamo anche che il dominio miosito.commiosito.it facciano capo allo stesso hosting, ovvero a quello che comunemente si chiama lo stesso sito, mentre torregatti.com fa capo ad un altro sito.

Detto questo vediamo come configurare il nostro server Apache.

Installare Apache se non lo abbiamo ancora fatto

Se ancora non abbiamo installato il server LAMP sarà sufficiente eseguire i seguenti comandi.

Per installare apache:

Per installare il server MySQL (qui ci verranno richiesti nome utente e password per l’utente root del database, che ricordiamoci non è l’utente root del server)

Installiamo il PHP. Ricordiamoci che il PHP ha diverse versioni, quella ancora più utilizzata, è la versione 5, anche se l’ultima versione disponibile è la 7.

A questo punto riavviamo il server Apache e verifichiamo che tutto funzioni aprendo il nostro localhost.

Configurazione Apache

Anzitutto prendiamo confidenza con la configurazione di apache. Digitiamo da terminale:

Verranno visualizzati i contenuti della cartella di configurazione di apache, che dovrebbero essere qualcosa di simile a questo:

Adesso apriamo il file apache2.conf:

Questo è il file principale di Apache, per ora lo possiamo scorrere un po’ per prendere confidenza con alcuni elementi chiave. Faccio notare i seguenti parametri:

  1. Timeout 300 – è il tempo predefinito per cui il server manda in timeout richieste che non riesce a gestire
  2. IncludeOptional mods-enabled/*.load – include nella configurazione presente tutti i file *.load dentro la cartella mods-enabled
  3. IncludeOptional mods-enabled/*.conf – include nella configurazione presente tutti i file *.conf dentro la cartella mods-enabled
  4. Include ports.conf – include il file chiamato ports.conf nel quale sono impostate le configurazioni predefinite delle porte
  5. AccessFileName .htaccess.htaccess è il nome del file delle configurazioni locali per ogni virtual host, il punto iniziale sta a significare che è un file nascosto di linux (i file nascosti, come succede anche sul Mac, sono preceduti da un punto)
  6. IncludeOptional conf-enabled/*.conf – include nella configurazione presente tutti i file *.conf della cartella conf-enabled (idealmente qui si trovano tutte le configurazioni attive)
  7. IncludeOptional sites-enabled/*.conf – include nella configurazione presente tutti i file *.conf della cartella sites-enabled

Facciamo caso anche ad alcune configurazioni di base:

Questo significa che per qualunque posizione tutti i file che cominciano con .ht sono proibiti a qualunque richiesta (richiesta da webserver).

Qui abbiamo la configurazione base del server. Notiamo che le cartelle /usr/share e /var/www sono accessibili a tutti. Sono preclusi tutti gli Override, questo significa che di predefinito non è possibile utilizzare le configurazioni dai file .htaccess per modificare la configurazione dei virtual host. Su questo torneremo tra poco. Inoltre notiamo che le opzioni attive su /var/www sono Indexes e FollowSymLinks.

Prima di proseguire facciamo un piccolo test, anche per prendere confidenza con il nostro server apache (ricordiamoci che il server si trova su 192.168.56.1). Da terminale digitiamo:

In questo modo creiamo una cartella test dentro la cartella predefinita del nostro server apache e le assegniamo www-data come proprietario (e gruppo).

Adesso apriamo dal nostro browser l’indirizzo http://192.168.56.1/test/

Dovrebbe aprirsi qualcosa di simile a questo:

Quello che viene mostrato non ci fa molto piacere. Anzitutto è mostrato il dettaglio del contenuto della cartella test, in secondo luogo sono mostrati i dettagli del nostro server.

Sistemiamo subito entrambi i problemi.

Modifichiamo la configurazione predefinita di /var/www rimuovendo la voce Indexes

Riavviamo apache:

Aggiornando l’indirizzo di cui sopra otterremo questo:

Adesso sistemiamo l’intestazione del nostro server (Apache/2.4.18 (Ubuntu) Server at 192.168.56.1 Port 80). Questo perché in generale è una buona idea non mostrare la versione del proprio software, per rendere più difficile la vita a chi volesse approfittare di eventuali falle note per la nostra versione.

Anzitutto dobbiamo abilitare mod_headers su apache, per farlo digitiamo:

Dopodiché procediamo alla modifica del nostro file di configurazione della sicurezza:

Modifichiamo il file sistemando i seguenti attributi (si trovano su righe separate, se non ci sono basta aggiungerli in fondo):

Fatto questo riavviamo apache:

E torniamo a verificare il solito indirizzo di prima che apparirà come:

Come è possibile vedere adesso le intestazioni del server sono sparite (abbiamo anche pulito i header HTTP con cui risponde il server).

Aggiungiamo il nostro primo Virtual Host

Creiamo anzitutto una cartella sotto /var/www nella quale metteremo il nostro sito.

Il nome della cartella è a piacere, ho messo miosito solo per praticità visto che sarà anche il nome del dominio.

Assegniamo l’utente corretto alla cartella:

Adesso copiamo le configurazioni predefinite su quelle nuove per il nostro sito.

Notiamo che non c’è niente di speciale nel nome miosito.conf. E’ solo l’ennesimo file di configurazione che sarà incluso in quello principale di apache, il nome è del tutto indifferente ai fini del nostro dominio.

Adesso modifichiamo il file di configurazione appena creato (quello che scriveremo dentro lo trasformerà nel file di configurazione del sito che vogliamo registrare):

Dopo le nostre modifiche sarà sufficiente che contenga i seguenti dati (ricordiamoci che anche in questo caso il # sta a rappresentare il commento alle righe).

Adesso dobbiamo abilitare il sito creato, digitando (qui conta il nome del file che abbiamo dato prima):

Fatto tutto questo riavviamo apache.

A questo punto possiamo testare la nostra configurazione; nel mio caso, non disponendo di un server DNS e non avendo usato un dominio registrato, modificherò le impostazioni del file hosts del mio computer affinché il dominio miosito.com punti al server all’indirizzo 192.168.56.1.

Per farlo apro come amministratore il blocco note su Windows e vado a modificare il file in C:\Windows\System32\drivers\etc chiamato hosts. In fondo al file inserisco:

Salviamo il file hosts (ricordandoci di rimetterlo a posto dopo) e andiamo sul browser all’indirizzo http://miosito.com

Dovremmo vedere qualcosa come:

Per verificare che abbiamo fatto tutto bene modifichiamo il contenuto della cartella /var/www/miosito in modo che ci sia solo un file index.php con dentro il seguente contenuto:

Per creare il file index.php è sufficiente digitare:

Se abbiamo fatto tutto bene aggiornando il suddetto indirizzo dovremmo vedere:

Adesso torniamo a modificare il nostro file hosts (questo ricordo lo facciamo solo per le nostre prove interne, non è assolutamente necessario durante la vera configurazione di un dominio, che è sufficiente che punti all’IP della nostra macchina su cui gira apache)

Aggiungendo le ultime tre righe alla prima già esistente, configuriamo l’accesso al nostro server anche per i sottodomini www ed il dominio miosito.it.

A questo punto verifichiamo dove punta http://www.miosito.com

Dovremmo vedere qualcosa di simile, con la risposta della pagina predefinita che si trova in /var/www/html. Quello che adesso vogliamo è che il server risponda con il sito nella cartella /var/www/miosito. Quindi torniamo alla configurazione del nostro sito digitando:

Modifichiamo il file aggiungendo la seguente riga:

Con questo definiamo gli alias del dominio principale. Riavviamo apache.

A questo punto possiamo verificare che tutte e quattro i domini di prima puntano alla medesima cartella.

Qualora volessimo disabilitare miosito dalla nostra configurazione di apache sarà sufficiente digitare:

Per configurare il sito della torregatti.com ripetiamo la procedura precedente, creando una nuova cartella e configurando un nuovo file per il virtual host desiderato.