Perché non usare APFS su hard disk tradizionali

Semplicemente perché non sono indicati per essere utilizzati su supporti che non sono SSD, SATA o NVMe che sia.

Anche se Apple dice il contrario, si sbagliano fortemente, perché le prestazioni sono a di poco ridicole (e no, gli hard disk su cui l’ho testato non sono rotti):

Anche dal monitoraggio delle attività risulta una lettura e scrittura di circa 5-6 MB/s:

Ovviamente io sto parlando di APFS codificato, quindi non quello base. Voi cosa ne pensate?

Come creare una pendrive bootable

Detto anche bootabile (pronunciato proprio buttabile) in italiano, quindi che fa il boot.

Viene in nostro supporto il buon e caro Etcher, un’utility veloce e intuitiva che vi permette di scrivere su supporti esterni, quali ssd, pendrive o schede di memoria SD, dei sistemi operativi in modo molto user friendly.

Il software è molto semplice, vi basterà trascinare la .iso o il file .img, selezionare il supporto sui cui scrivere (fate attenzione che vi cancellerà tutto quello che avete sopra) e cliccare su Flash!.

È davvero così banale! Comodo no?

Come installare Boot Camp su USB

Normalmente Boot Camp Assistant vi fa installare Windows 10 su una partizione del vostro hard disk o SSD. Ma se questo non fosse abbastanza capiente per mantenere entrambi i sistemi operativi?

O se voleste installarlo su un hard disk, pendrive o SSD esterno tramite USB? Beh, ecco a voi una bella guida, facile e veloce, per installare Windows 10 su USB.

Prima di tutto installate Windows 10 su una macchina virtuale, ho scritto una guida per farlo con WMware Fusion.

Poi formattate il vostro supporto (SSD o pendrive che sia) in Mac OS Extended (Jurnaled) e selezionate GUID Partition Map.

Continua a leggere

Come utilizzare l’app News di Apple su tutti i Mac

Quindi anche se non siete in America, in UK o in Australia.

I passaggi sono davvero veloci e non ci va nulla. Andiamo subito al dunque, aprite le impostazioni e cliccate su Language & Region:

Cliccate su Region e cambiatela in Americas, poi selezionate United States:

Confermate e riavviate il Mac:

Cliccate su Restart Now

Una volta riavviato andate nella cartella Applicazioni e troverete finalmente l’app News di Apple:

Apple News su macOS Mojave

Come modificare qualsiasi pagina web con JavaScript

Ovviamente si intende solo in locale e solo da un browser supportato (Chrome o Firefox).

Mi spiego meglio: se volete modificare visivamente una pagina web, magari cambiando o aggiungendo delle scritte, vi basterà visitarla caricando tutti i suoi contenuti e successivamente eseguire nella barra di navigazione questi 3 comandi, semplicemente incollandolo:

javascript:document.body.contentEditable = 'true'; document.designMode='on'; void 0

Un modo più veloce è anche salvare questi comandi come preferito, così da averlo sempre a portata di mano.
Ovviamente dovrete prima salvare un preferito qualunque e poi incollare questo come campo degli indirizzi… e voilà, comodo e veloce.

Come installare Windows 10 su Mac con VMware

VMware è un software che spesso consiglio quando si tratta di virtualizzare dei sistemi operativi in quanto è molto stabile, veloce e intuitivo. Ogni anno viene aggiornato e quest’anno siamo arrivati alla versione 11 con addirittura il supporto a DirectX 10.1!

Potete scaricarlo direttamente da qua (vi metto il link perché spesso può essere confuso dove trovare la versione trial): http://vmware.com/go/getfusion

Dato che vogliamo installare Windows 10 (e non con Boot Camp), ovviamente dovete prima scaricare l’iso.

Una volta che avete sia installato VMware che l’iso di Windows 10 pronta, create una nuova macchina virtuale.

Trascinate l’iso su questa finestra

Continua a leggere

Come configurare SSMTP con Gmail

Andiamo dritti al sodo come al solito: se volete inviare delle email dal vostro server, virtual machine o Raspberry Pi che sia, ma volete utilizzare i server di Google (quindi quelli di Gmail), vi basterà installare SSMTP e configurarlo a dovere:

sudo apt install ssmtp

Modificate il file di configurazione:

sudo nano /etc/ssmtp/ssmtp.conf

E incollate (cambiando ovviamente hostname, email e password):

root=postmaster
mailhub=mail
hostname=hostname.com
FromLineOverride=YES
AuthUser=email@gmail.com
AuthPass=password
mailhub=smtp.gmail.com:587
UseSTARTTLS=YES

Dovreste attivare l’opzione di Google che consente l’uso di app meno sicure ad accedere all’account. Come al solito le opzioni cambiano quindi vi lascio la documentazione ufficiale https://support.google.com/accounts/answer/6010255?hl=it

Non preoccupatevi sul fatto che sia poco sicuro se siete gli unici ad aver accesso alla macchina, server o vm che sia. In caso contrario, cercate un altro modo per mandare email e configuratelo diversamente.

Ora se volete inviare una mail, vi basterà aprire il terminale ed eseguire (anche tramite script bash come indicato in questa guida):

mail -s "Prova" destinatario@gmail.com

Come mandare una mail se un host è irraggiungibile

E per raggiungibile si intende che non risponde al ping. Quindi vediamo subito come fare:

sudo nano script.sh

Incollate dentro qualcosa di simile:

#!/bin/sh

ip='192.168.1.1'

if ! ping -c1 -w3 $ip; then
	echo "Non pinga" | mail -s "Non pinga" destinatario@hostname.com
fi

Questo invierà una mail nel caso l’host in questione (che ha come IP 192.168.1.1) non risponda al ping.

Se volete farlo eseguire ogni 5 minuti, quindi nel caso vi serva che vi avvisi non appena l’host non risponde, vi basterà configurarlo con crontab:

sudo crontab -e

E incollate:

*/5 * * * * sudo /home/script.sh > /dev/null

Ah ovviamente date i permessi di esecuzione con sudo chmod 777 script.sh.

Come importare grandi database MySQL con BigDump

Per importare grandi dump di database, esiste oramai da qualche anno (e devo anche dire che non è più stato aggiornato) una bella utility chiamata BigDump.

È molto semplice e vi basterà caricare questo file: https://raw.githubusercontent.com/marcotini/bigdump/master/bigdump.php nella directory in cui avete PHP funzionante.

Ovviamente dovrete fare spazio per il vostro database e/o tabelle che avete da importare (se queste non sono già contenute nel file di dump).

Per il resto l’utility è molto intuitiva e spesso potrebbe bloccarsi, quindi fate prima un backup di tutto (se avete già tabelle inserite).

Come controllare se una colonna di MySQL è codificata in UTF8

Similmente come visto per le tabelle, sarà necessario controllare che:

SELECT character_set_name FROM information_schema.`COLUMNS` C WHERE table_schema = "dbname" AND table_name = "tablename" AND column_name = "column_name";

Dia come risultato utf8 o utf8mb4.

Se così non fosse, vi basterà eseguire questa query per convertirla in utf8 o utf8mb4:

ALTER TABLE tablename CHANGE columnname columnname VARCHAR(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Come controllare se una tabella di MySQL è codificata in UTF8

Molto semplicemente eseguendo (cambiando ovviamente dbname e tablename) questa query potete capire la codifica:

select c.character_set_name
from information_schema.tables as t,
     information_schema.collation_character_set_applicability as c
where c.collation_name = t.table_collation
  and t.table_schema = "dbname"
  and t.table_name = "tablename";

Tabella in utf8

Se vi rendete conto che non è in utf8, vi basta eseguire (prima fate un backup):

ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;

Altrimenti se la volete in utf8mb4:

ALTER TABLE tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
ALTER DATABASE databasename CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Altri suggerimenti su come fare conversioni potete trovarne qui, oppure qui.

Come convertire un database di MySQL da utf8 a utf8mb4

Se avete finalmente reso compatibile il vostro database a utf8mb4 e lo avete anche configurato correttamente, che ne dite di convertirlo anche? Comprese le tabelle e colonne?

Ovviamente prima fatevi un bel backup di tutto quanto… ora andiamo alla conversione!

Per ogni database (cambiate dbname):

ALTER DATABASE dbname CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;

Per ogni tabella (cambiate tablename):

ALTER TABLE tablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Per ogni colonna (cambiate nome e grandezza delle colonne):

ALTER TABLE tablename CHANGE column_name column_name VARCHAR(300) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Voilà, ora dovreste essere fully compatible con utf8mb4.

Come configurare MySQL con utf8 o utf8mb4 correttamente

Se utilizzate un database a utf8mb4 (come vi ho spiegato qui) ma nel client, come ad esempio PhpStorm o altri servizi simili, non vi funziona correttamente la codifica dei caratteri… probabilmente è perché la versione in locale che viene scaricata per gestire tutti gli schemes non è correttamente funzionante.

Potete verificarlo facendo:

show variables like "%collation%";
show variables like '%character%';

Oppure con:

SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';

Database configurato correttamente a utf8mb4

E se per caso character_set_database o collation_database non risulta utf8, eseguite (modificando il dbname):

ALTER DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;

Se invece volete utf8mb4 come vi avevo indicato nella guida precedente, vi basterà eseguire:

ALTER DATABASE dbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

Ora rieseguendo la query precedente dovreste avere tutto correttamente configurato.

Come rendere MySQL compatibile con utf8mb4

Di default MySQL supporta utf8 solo a 3 byte, in realtà per avere massima compatibilità con tutte le tipologie di caratteri (quali ad esempio emojis e altri caratteri non latini) bisogna utilizzare utf8mb4 invece di utf8 normale.

E per farlo dovete semplicemente incollare queste righe all’interno del file di configurazione, che potete trovare qui:

sudo nano /etc/mysql/mysql.cnf oppure dentro /etc/my.cnf.

Al fondo inserite:

[client]
default-character-set = utf8mb4

[mysql]
default-character-set = utf8mb4

[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci

Poi riavviate il servizio semplicemente con sudo service mysql restart.

Come far passare i cavi nei muri

Ok so bene che iniziare un articolo con questo titolo può sembrare molto generico o non inerente al solito genere di guide e tutorial che pubblico su questo sito, ma spero che vi serva nel caso abbiate necessità di far passare dei cavi elettrici o di dato (quali ad esempio RJ45, RJ11 o addirittura USB nel caso vogliate fare qualcosa di molto specifico) nelle canaline di casa vostra (sì, in questo articolo non tratteremo come fare opere di muratura, fare tracce per prese, punti luce ecc).

Andiamo subito al sodo e vediamo l’occorrente.

Prima di tutto avete per forza necessità di una sonda elettrica, online ma come anche nel mondo fisico, c’è chi preferisce un materiale piuttosto che un altro. Io vi dico che dipende da voi, dalla qualità del lavoro che volete fare, da quanto siete disposti a spendere e da quanta esperienza avete. Provate e sperimentate, io così su due piedi, vi consiglio di prendere la sonda elettrica che ha più recensioni su Amazon… poi fate voi!

Ecco un esempio di sonda in nylon, qua invece potete trovare la mia preferita Perlon

Secondo avete necessità ovviamente del cavo, nel caso di RJ45 ci sono decine di bobine su Amazon che potrebbero fare al caso vostro. Anche in questo caso vi conviene prendere quelle che più si addicono al vostro prezzo (controllate anche la frequenza ovviamente). Ah e non dimenticate i connettori. Continua a leggere

Come esportare un db in latin 1 ed importare in utf8 su MySQL

Come spiegato anche in questa guida su come convertire un database da latin 1 a utf8, le chance di successo non sono granché e dipende molto dalla tipologia di database, dalla complessità (quindi anche dal sistema che state utilizzando) e dalla mole di dati che avete da convertire.

Un’altra tecnica può essere quella di esportare il db e di reimportarlo con una codifica diversa. Vediamo come fare…

Come al solito ho supposto che il database si chiami dbname, l’utente con permessi si chiami root e che abbia come password password. I quattro comandi da eseguire sono i seguenti (tutti eseguiti come amministratore):

sudo su

mysqldump --user=root --password=password --default-character-set=latin1 --skip-set-charset dbname > dump.sql

sed -r 's/latin1/utf8/g' dump.sql > dump_utf.sql

mysql --user=root --password=password --execute="DROP DATABASE dbname; CREATE DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;"

mysql --user=root --password=password --default-character-set=utf8 dbname < dump_utf.sql

Mi ripeto nel dirvi che la probabilità che questo funzioni non è altissima ma dipende sempre da caso a caso, voi effettuate comunque un backup di tutto.

Come installare phpMyAdmin

Lo so, avevamo già trattato l’argomento phpMyAdmin con una bella guida su come rimuoverlo. Oggi però vediamo come installarlo, indipendentemente da quale sia il vostro sistema operativo.

Se avete Debian o Ubuntu (presupponendo che sia all’ultima versione) vi basterà eseguire dal terminale:

sudo apt install phpmyadmin

Seguite poi i passaggi a schermo e controllate che sia tutto corretto da browser.

Se invece avete Arch:

pacman -S phpmyadmin php-mcrypt

Modificate il file:

nano /etc/php/php.ini

Aggiungendo:

Alias /phpmyadmin "/usr/share/webapps/phpMyAdmin"
 <Directory "/usr/share/webapps/phpMyAdmin">
  DirectoryIndex index.php
  AllowOverride All
  Options FollowSymlinks
  Require all granted
 </Directory>i

E alla fine di:

nano /etc/httpd/conf/httpd.conf

Aggiungete questa riga:

Include conf/extra/phpmyadmin.conf

Riavviate con systemctl restart httpd e voilà.

Come convertire un intero database da latin1 a utf8

Facendola semplice: presupponiamo che il vostro db si chiami dbname ed è codificato come latin1 ma voi volete convertirlo in utf8 in quanto è ovviamente compatibile con più caratteri, le due query in questione sono:

SELECT default_character_set_name FROM information_schema.SCHEMATA S WHERE schema_name = "dbname";

ALTER DATABASE dbname CHARACTER SET utf8 COLLATE utf8_general_ci;

Se poi volete provare (mi raccomando fate un backup di tutto) a convertire ogni singola tabella… beh ecco a voi questo bello script:

sudo mysql -u root -p --database=dbname -B -N -e "SHOW TABLES" | awk '{print "SET foreign_key_checks = 0; ALTER TABLE", $1, "CONVERT TO CHARACTER SET utf8 COLLATE utf8_general_ci; SET foreign_key_checks = 1; "}' | mysql -u root -p --database=dbname

C’è una bella probabilità che non funzioni e che vi riporti errore o rimanga fermo. Nel caso stoppatelo con il solito ctrl+c e provate in qualche altro modo ad effettuare la conversione.

Come importare un intero database con MySQL

Dopo aver visto come esportare un intero db con mysqldump, mi sembra logico spiegarvi come importarlo. Loggatevi prima con l’utente root:

sudo mysql -u root -p

Create un nuovo db chiamato new con:

create database new;

Poi uscite eseguendo un exit (poi premete invio). Presupponendo che ora siete nel path giusto (e che il file esportato sia dbs.sql come nell’altra guida), eseguite:

sudo mysql -u root -p new < dbs.sql

Mi raccomando aspettate che finisca tutto prima di chiudere o cambiare operazione… è un’operazione alquanto rischiosa!

Come esportare un intero database su MySQL

In qualche articolo precedente avevamo visto come fare un backup con uno script Bash, ora vediamo più semplicemente come esportare un intero db di MySQL con una riga di codice:

sudo mysqldump -u root -p -x -A > /home/user/dbs.sql

Dovrete cambiare l’user root, nel caso non abbiate quell’utente come amministratore con i privilegi. E anche il path con il vostro utente invece di user.

Questo sappiate che vi esporterà tutti i database contenuti al suo interno, compresi quelli di sistema o quelli di phpMyAdmin.