La quarta rivoluzione industriale

Secondo uno studio dell'università di Oxford nei prossimi 20 anni, negli stati uniti, sparirà il 47% dei lavori così come oggi li conosciamo e immagino che, di riflesso, questa sarà la fotografia mondiale del lavoro. Sarà la 4° rivoluzione industriale e non avrà precedenti con le prime tre: carbone, petrolio, energia atomica. Sarà basata su robotica ed intelligenza artificiale e potrà essere fantastica o devastante. Tutto dipenderà dalla capacità della classe dirigente di capire come gestire (o creare) il nuovo modello sociale ed economico che ne verrà fuori.

quarta rivoluzione industriale

Però, mentre la scienza evolve, passando dal determinismo al finalismo, scoprendo come creare modelli previsionali su sistemi complessi, la politica e l'establishment sembrano immobili. Chiaccherano su scissioni (non certamente dell'atomo), e non si accorgono che la vicenda Uber è solo l'antipasto di quello che ci attende. Come riuscirà la politica a conciliare il lavoro di tassista con quello di un'app? Deve sopravvivere l'informatico o il tassista? Chi farà il praticante avvocato, se GIA' ESISTONO software in grado di immagazzinare leggi, codici e casi giudiziari simili, per consultarli e produrre autonomamente la migliore strategia difensiva o accusatoria da mettere in pratica, caso per caso? Chiederemo all'intelligenza artificiale di essere laureata in giurisprudenza? Come faranno i pizzaioli a fronteggiare la velocità di un robot nello sfornare pizze ?

Non è un gioco, non è come nel film "il bisbetico domato" dove il contadino supera la macchina nel pigiare l'uva; e quando i governanti se ne accorgeranno, forse sarà troppo tardi, forse non sapranno come agire....perchè vittime loro stessi delle regole che si sono autoimposte, non avranno il coraggio di dire ai tassiti : "abbiamo sbagliato" o agli scienziati "non avete il diritto di lavorare".

Scienze esatte, scienze umane e scienze ibride

Mi approccio al dibattito sui vaccini, con lo stesso approccio dei fatti dell'11 settembre 2001. Non sono un medico, nè ingegnere stutturista, ma sono un informatico e le mie considerazioni non possono che riguardare i concetti fondamentali delle scienze (che sembrano essere spariti dai dibattiti degli illustri ospiti e dottori presenti nei talk show televisivi) :
1) la differenza tra scienze umane e scienze esatte
2) il metodo sperimentale.

Il metodo sperimentale è l'essenza delle scienze esatte, mentre le scienze umane sono per lo più empiriche (es. economia politica).

Ora, la Medicina e l'ingegneria si collocano in una via di mezzo perchè le loro applicazioni sono soluzioni adattate a problemi reali, e per i quali si usano o modelli esatti estrapolati dalla scienza "esatta" ove possibile (quindi con soluzioni definitive ai problemi con un errore pari a 0%) o modelli statistici ma a basso errore probabilistico o statistico (quando non ci sono soluzioni esatte).

A questo punto è chiaro che le scienze esatte godono di una proprietà: il metodo sperimentale è democratico nelle ipotesi, ma dittatoriale nella tesi. Non ci possono essere 2 informatici, 2 fisici, 2 matematici che arrivano a conclusioni diverse. Mentre in medicina o ingegneria certi eventi o interventi vanno valutati statisticamente, e la comunità stabilisce la soglia statistica (o di errore) entro cui valutare come "accettabile" la soluzione.

Pertanto, se due ingegneri hanno versioni diverse sull'11 settembre, o due medici hanno versioni diverse sui vaccini, il problema non va cercato sulle soglie di accettabilità di una soluzione, ma sull'attendibilità dei dati perchè è lì che si annida la falsità o peggio ancora la CORRUZIONE, cosa che nelle scienze esatte non può accadere mai, perchè li i dati contano poco...contano le inferenze che sono uguali per tutti.

Teletrasporto quantistico: una simulazione in QCL

Districarsi nel complicato mondo dell'informatica quantistica non è facile. L'approccio a questo modello di calcolo non è come passare dalla macchina di turing universale al lambda calcolo, o come scegliere la programmazione imperativa piuttosto che quella fuzionale o ad oggetti. No, il quantum computing, impone prima di tutto la conoscenza di meccanismi e fenomeni fisici quantistici non intuitivi come il no-cloning, il principio di misurazione, l'entanglement ecc. e solo dopo è possibile approcciarsi ad un metalinguaggio che, come i mattoncini della lego, permette di costruire algoritmi ad alte prestazioni combinando circuiti e nuove porte logiche.

Dato che in futuro, gli informatici dovranno misurarsi con questi sistemi, è ora di cimentarsi con i primi linguaggi di simulazione tanto per "vedere l'effetto che fa" (parafrasando una nota canzone di Jannacci 🙂 ).

Detto, Fatto!

L'impatto che ho avuto con il linguaggio scelto, QCL (quantum computing language), è stato positivo. La curva di apprendimento è alta ma è dovuta più che altro agli aspetti teorici del calcolo quantistico e meno alle regole sintattiche; l'espressività del linguaggio è potente e lo rende valido come strumento per testare gli algoritmi. Il mio primo esperimento ha riguardato l'implementazione della simulazione di un teletrasporto quantistico: una tecnica scoperta nel 1993, la cui validità è stata confermata con un esperimento del 2003 presso l'università di Ginevra e via via riconfermato con crescenti distanze tra sorgente e destinazione.

Assumendo che il lettore abbia una minima conoscenza di qubit (o in alternativa consiglio di leggere un altro articolo passato del blog : "Il vero bit random è quantistico" ), il teletrasporto è una tecnica mediante la quale è possibile ricostruire ad una certa distanza dal luogo di origine, lo stato di un sistema quantistico. Il fenomeno sfrutta l'entanglement, ovvero una proprietà che permette alle componenti di un particolare sistema quantistico di interagire tra loro (anche a distanza) e di far si che le alterazioni di una componente (ad esempio per l'effetto di un'operazione di misurazione) si rifletta istantaneamente sullo stato delle altre componenti. L'entanglement soppiantò il paradosso di Einstein, Podolsky e Rosen, archiviando l'ipotesi che la velocità di propagazione degli effetti fisici tra stati entangled non potesse essere infinita perchè ciò avrebbe comportato una velocità ovviamente superiore a quella della luce.

Ma passiamo, adesso, all'oggetto dell'implementazione: Lo schema del teletrasporto quantistico presentato in figura. Abbiamo Alice (il mittente) che in un laboratorio possiede un qubit |\psi\rangle e Bob (il destinatario) posto in un altro laboratorio che vuole ricostruire lo stato di |\psi\rangle.

fig-teletrasporto
Queste sono, nell'ordine, le fasi del teletrasporto:

  1. Alice combina opportunamente (attraverso delle porte CNOT e Hadamard) il suo qubit con una parte di una coppia entangled condivisa con Bob posta in un particolare stato chiamato stato di Bell |\beta_{00}\rangle (nell'implementazione la coppia è chiamata EPR)
  2. Alice effettua 2 misurazioni e invia 2 bit (n,m) a Bob attraverso un canale di comunicazione tradizionale. La misurazione fa collassare il qubit |\psi\rangle in uno degli stati |0\rangle o |1\rangle trasformando di fatto |\psi\rangle ma alterando in modo opportuno la componente della coppia entangled posseduta da Bob
  3. Bob manipola la componende della coppia entangled che possiede in funzione di n ed m e ricostruisce lo stato originale di |\psi\rangle

Vediamo adesso l'implementazione in QCL. Da notare che la funzione dump permette di fotografare lo stato di un qubit (o di un registro quantistico) ma non ha un equivalente reale, ha solo un'utilità a carattere di debugging per le simulazioni. L'unica vera operazione fisica di misurazione che si può fare ha nella funzione measure il corrispondente simbolico in QCL. Ma è noto, in fisica quantistica, che la misurazione è un processo irreversibile ed altera irrimediabilmente il qubit, per questo dump è l'unica alternativa "astratta" che ci può venire in aiuto per controllare la correttezza dell'implementazione.


int n; int m; // coppia di bit da trasmettere
qureg EPR[2]; // Coppia entangled : Einstein-Podolsky-Rosen

/* Procedura per assegnare uno stato quantistico casuale ad un Qubit */
real RND(real a) {
real b;
b=a;
while b<1 {b = b * 10;}
b = b / 10;
return b;
}

procedure RandomQubit(qureg q) {
int i;
for i=0 to #q-1 {
RotZ(4*pi*RND(random()),q[i]);
RotY(4*pi*RND(random()),q[i]);
RotZ(4*pi*RND(random()),q[i]);
}
}

/* Operatore C-NOT : |x,y> => |x xor y,y> */
operator ContrNOT(qureg q)
{
Matrix4x4((1,0),(0,0),(0,0),(0,0),
(0,0),(0,0),(0,0),(1,0),
(0,0),(0,0),(1,0),(0,0),
(0,0),(1,0),(0,0),(0,0),q);
}

/* Circuito per porre un registro a 2 qubits in uno stato di Bell */
procedure BellState()
{
H(EPR[0]);
ContrNOT(EPR);
}

procedure Sender()
{
qureg psi[1];
RandomQubit(psi);
print;
print "Stato quantistico del Qubit del Mittente";
dump psi;

BellState();
ContrNOT(psi & EPR[0]);
H(psi);
measure EPR[0], n;
measure psi, m;
print;
print "Bit trasmessi dal Mittente al Destinatario: (",n,",",m,")";
}

procedure Receiver()
{
if n==1 { X(EPR[1]); }
if m==1 { Z(EPR[1]); }
print;
print "Stato quantistico ricostruito dal Destinatario";
dump EPR[1];
}

print;
print "Simulazione Teletrasporto Quantistico";

Sender();
Receiver();

Ed ecco la schermata di esecuzione del programmino che evidenzia come lo stato quantico (settato in modo casuale) del mittente è perfettamente ricostruito dal destinatario :

screenshot-teletrasporto

Per chi volesse scaricare il file e provarlo con il compilatore ecco il link :

Download File (2.53 Kb): teletrasporto.qcl
md5sum : 05DD3E512B8B2CCBA8F354EBE6DA9278

Maternità surrogata o tradizionale? E' sempre questione di soldi.

Tutto si può imputare a Vendola per dimostare che non è comunista, ma non sicuramente la maternità surrogata. Famiglia Cristiana ha titolato beffardamente "Ma Vendola non era di sinistra?" puntando su 2 questioni: 1) il classismo nella gestazione per altri 2) la mercificazione del corpo della donna. Le accuse politiche e non certo etiche (forse perchè i detrattori hanno ben altre questioni morali da nascondere) si possono smontare facilmente.

gravidanzaPrimo. L'accusa di classismo, cioè sul fatto che solo i ricchi e i benestanti come Vendola possano pagare cifre significative per andare all'estero e "letteralmente" acquistare un bimbo urta con il fatto che

1) Tante coppie "tradizionali" etero non riescono a metter fu famiglia o in alcuni casi quando ci si riesce si è costretti a rompere il nucleo familiare per tornare a casa dei propri genitori
2) Le coppie antepongono all'amore e all'affetto le loro problematiche economiche e ciò influisce sulla decisione di mettere al mondo o meno un figlio per il rischio di non poterlo mantenere
3) Se per caso, una coppia in difficoltà economica mette al mondo un bimbo e non è in grado di garantirgli un standard minimo economico, rischia di vedersi letteralmente STRAPPATO il figlio dai servizi sociali
4) Se una coppia non ha gli stessi requisiti del punto 3 non può neanche chiedere l'adozione di un figlio

Allora la domanda è spontanea: In tutti i punti elencati, dove l'amore e l'affetto trionfa sulla disequaglianza economica?

Per quanto riguarda, invece, la mercificazione del corpo della donna dobbiamo partire dal principio ispiratore della legge sull'aborto.Il corpo della donna è della donna ed è lei che decide se portare avanti una gravidanza. La società ha ormai accettato il fatto che una donna pur portando in grembo un bimbo che NON E', ripeto NON E' solo suo, ma anche del padre, possa decidere entro 3 mesi se tenerlo o rifiutarlo. Analogamente una donna potrebbe decidere liberamente di usare il proprio utero per fare un dono agli altri, anche a pagamento. La libertà di decidere di cosa fare del proprio corpo è ribadita dagli stessi detrattori della maternità surrogata, il cui identikit è ormai chiaro (di destra, credente e bacchettone) e che poi sono i primi a sostenere (giustamente e sono d'accordo) l'importanza di riaprire bordelli e legalizzare la prostituzione.

Dunque, anche se da un punto di vista personale e morale, la prostituzione, la maternità surrogata,i legami gay sono lontani dalle mie pratiche di vita e men che meno dei principi ispiratori della lotta di classe o del capitalismo, l'esperienza quotidiana ci mostra che un bambino non può scegliersi i propri genitori, ma li subisce dal destino, non sa se avrà genitori buoni, brutti o cattivi, non decide quando deve nascere, nè dove nascere, nè se è stato voluto o è il frutto di un'eiaculazione di troppo, nè se vuole nascere e per dirla tutta , una volta nato, non può decidere neanche come vuole crescere fino alla maggiore età.

Consigli architetturali per la SEO

Gli interventi di ottimizzazione quasi sempre si limitano alla compilazione di particolari attributi e tag (alt, title, h1-h6) nel codice del sito e all'aggiunta di specifici plugin SEO sui content management system. Tale prassi è sicuramente corretta, ma insufficiente.  In questo articolo spiegherò come si deve impostare una pagina web ottimizzandola tecnicamente da un punto di vista "architetturale". Quando parlo di ottimizzazione architetturale, escludo sia la semantica (la scelta delle giuste keyword associate al messaggio che deve trasmettere il sito) sia la sintassi (cioè la scelta di un preciso formato per i dati strutturati) che sono aspetti importanti ma che vanno trattati a parte.

architettura

Il primo aspetto architetturale da considerare è banalmente l'ottimizzazione computazionale e quindi algoritmica delle strutture dati. Se dobbiamo realizzare un ecommerce, un blog, o un qualunque altro portale con contenuti dinamici siamo inevitabilmente costretti ad usare un CMS o CRM che si interfaccia con un database. Meglio se il CMS è realizzato ad hoc, ma se il progetto rientra in una delle tipologie già note (es. blog, ecommerce, forum) si può, nei casi estremi, usare un cms di successo (wordpress, prestashop, phpBB, ecc.).

Se, invece, dobbiamo realizzare una vetrina con pagine statiche, a mio avviso, bisogna lavorare solamente di html e limitare l'uso del linguaggio di scripting lato server solo per l'automazione o l'assemblaggio di parti ripetitive nel codice delle pagine. Non ha senso, infatti, usare database e query per memorizzare contenuti che poi rimarranno statici! E' inefficiente ed è uno spreco di risorse. Oltre ad essere una scelta di ottimizzazione computazionale, una vetrina realizzata senza cms offre maggiore flessibilità architetturale, che è proprio quello che serve.

Nella sezione <head> di una pagina non dobbiamo dimenticare di inserire i metatag nei due formati più importanti dublin core e open graph protocol o in alternativa i metadati in formato json+ld. In questa sezione, in genere, si inseriscono sia i css che codice javascript, esterno o embed. Da un punto di vista SEO, invece, è buona prassi inserire i CSS embed in head e il codice javascript esterno above on the fold (ovvero in fondo alla pagina), meglio se asincroni. Inoltre, per velocizzare le pagine è bene comprimere il codice css e javascript eliminando spazi, tabulazioni e caratteri di ritorno a capo.