I racconti del Drago Rosso

cknmuciwoaiqj-9

Ho una nipotina bellissima e monella che vuole sempre sentire da me delle storie. Ne invento un po’ e uno dei personaggi che le sono piaciuti di più è il Drago Rosso. Provo a scrivere qualcuna delle sue avventure. E’ la prima volta che mi cimento con i racconti per bambini e di certo bisognerebbe rifinire un bel po’ i testi e poi ci vorrebbe qualche illustrazione, ma a lei sono piaciuti anche così. Eccone un piccolo esempio.

Introduzione

C’era una volta un grande drago rosso che si era trasferito da poco in paese e andava a scuola con i bambini della prima elementare. Era grande e grosso, il drago rosso, ma non sapeva scrivere e fare le somme. Pensate un po’, si chiamava proprio Drago Rosso e gli piaceva tanto stare con gli altri bambini, ma proprio tanto. Peccato che fosse così grande e goffo da creare un sacco di problemi. E poi, quando si arrabbiava, gli usciva il fumo dalle orecchie e qualche volta anche il fuoco dalla bocca e allora erano problemi. Meno male che c’era la sua amica Marialba che gli voleva tanto bene e gli dava sempre dei buoni consigli.

cpqrlwqw8aag_ir

L’intervallo a scuola

Che bello giocare nel cortile, ma per il Drago Rosso è più difficile. Ha provato a giocare con la palla, ma correndo ha travolto lo scivolo e l’ha capovolto per terra. Il percorso a ostacoli è troppo facile: gli ostacoli affondano sotto i suoi grandi piedi e finiscono a livello del suolo! A nascondino proprio non può giocare: lo trovano subito. Così è rimasto solo solo e si annoia. Allora vede che non c’è nessun bambino sull’altalena e gli viene voglia di provare. Ci sale con attenzione. Le corte e le aste che la reggono scricchiolano per il suo peso, l’altalena si piega un po’ ma lo regge. Il Drago Rosso è contento, ha trovato un gioco che può fare come gli altri bambini. Si spinge un po’ con i piedi, prova a oscillare e sembra che tutto vada bene. Allora si spinge un po’ più forte, ma al secondo passaggio l’altalena si mette a oscillare tutta quanta con lui. Che paura, gli altri bambini stanno a guardare, le maestre e i maestri non si avvicinano. A un certo punto i piedi di dietro dell’altalena si alzano da terra e tutta l’altalena si rovescia in avanti. Il Drago Rosso finisce con il muso nella terra. Tutti i bambini attorno si mettono a ridere. Un filo di fumo gli esce dalle orecchie, per la vergogna e l’arrabbiatura. E’ triste è abbattuto e tiene la testa bassa. Gli altri bimbi sono preoccupati e anche le maestre: se gli scappa una fiammata brucia tutto! Meno male che almeno sono all’aperto. Ma Marialba, la sua migliore amica, gli si avvicina e lo accarezza piano piano sul muso, per consolarlo. Dopo un po’ ha un’idea: “Giochiamo tutti al girotondo!” dice allegra. Anche gli altri bambini si avvicinano e si prendono per mano. Così finalmente tutti possono giocare assieme e anche il Drago Rosso è contento.

c4jhqm0xaaaiehb

Il compagno scomodo del computer

errore-grafico

Errori di programmazione grafica con strani effetti

Molto si scrive e ragiona sull’importanza dei computer nella vita quotidiana (anche i telefonini sono dei computer ormai). Dalle chiacchiere da bar ai saggi accademici è tutto un fiorire delle valutazioni sociologiche delle tecnologie di calcolo e comunicazione. Ma, secondo me, c’è un tema correlato strettamente ma non abbastanza valutato, quello dei bachi del software e del loro effetto sulla vita delle persone. Provo a buttare giù qualche idea a riguardo.

Il baco software è nato con il computer: appena uno scienziato si è provato a scrivere un codice per la macchina di calcolo che aveva creato si è scontrato con gli effetti inattesi degli errori che commetteva. L’idea iniziale era che il nocciolo del problema fosse legato alla carenza di memoria e potenza di calcolo dei primi computer e che macchine più evolute avrebbero potuto essere programmate in modo più facile e sicuro. Abbiamo scoperto con l’esperienza che questo non è vero.

Il baco software si auto-riproduce: ogni correzione può avere effetti collaterali e ogni evoluzione, oltre a contenere errori, può far scoprire magagne di quelle pre-esistenti. Una battuta dei programmatori si basa su una vecchia canzoncina per bambini: “Ci sono 100 piccoli bachi nel codice. Correggi un baco, ricompili il codice. Restano 100 bachi nel codice!”

cables

La complessità può essere intelligente oppure no

Riporto un po’ di storia personale. Il baco software è stata una cosa che ho avuto difficoltà a capire. Il mio primo computer è stato il Commodore 64, macchina “leggendaria” in ogni senso, per i sui pregi come per i suoi difetti, che all’epoca non apparivano: non c’era gran che di meglio in circolazione. Oltre a giocare, su quella macchina dall’alimentatore che scaldava come un fornetto ho imparato a programmare, e mi pareva strano che i programmi, anche quelli professionali, facessero, ogni tanto, cose strane. Insistevo a riprovare e immaginavo ogni volta cause accidentali: joystick tirato troppo a lungo, comandi dati troppo in fretta, gioco caricato male dalla cassetta… Che era poi una cosa, quest’ultima, che accadeva spesso.

Esitavo a pensare che l’errore fosse insito nell’insieme macchina-programma, e non era tutta colpa mia: pubblicità, fantascienza, cartoni animati insegnavano a ragazzini e adulti inesperti che il computer era infallibile, era il  “cervello elettronico” che tutto conserva e tutto considera. Ragionando su quali fossero le specifiche di quelle macchine, con gli occhi di oggi, sembra ridicolo, ma era così, lo stupore prevaleva sul ragionamento oggettivo.

Quell’esperienza però mi è servita molto: ho capito cos’era davvero un computer, cosa ci si potesse aspettare e cosa no, che i limiti erano fissati dalla creatività e dalla quantità di fatica che ci si metteva dentro e che se era quasi infallibile nei calcoli, la correttezza della procedura era responsabilità tutta dell’uomo, non della macchina. Ho anche consolidato che con la tecnologia bisogna conservare un atteggiamento che definisco “sportivo”: tutto funziona fino a che funziona e la sorpresa è sempre dietro l’angolo.

progman

Il vecchio e poco rimpianto Windows 3.1

Con gli anni e la professione ho imparato che il baco del programma è qualcosa con cui devi imparare a convivere. Per fare quello che devi a volte devi girargli attorno. Qualcuno lo sfrutta, invece, qualche baco, ma mi è sempre sembrato moralmente disonesto. Abbiamo sopportato i bachi e le instabilità di Windows e le idiosincrasie di Office, versione dopo versione, forse perché non c’era nulla di meglio. Ricevevamo notizie di una piccola élite ricca che si godeva Apple: in quel mondo non esistevano “bachi” ma solo “caratteristiche”, perché la macchina era così avanzata da sapere cosa dovesse fare l’utilizzatore e non viceversa. Si narrava di geni e topi d’informatica che combattevano con un gioiello grezzo chiamato Linux, ma non era cosa da comuni mortali.

Poi hanno cominciato a correggerli, quei benedetti bachi, finalmente trattandoli per gli errori che erano. Per una parte degli “haker da due soldi” che sfruttavano gli errori per far fare al computer cose apparentemente giuste è stato un disastro. Perfino Linux è diventato utilizzabile da comuni mortali. Ci ho provato anch’io e ho potuto verificare come diventasse meno ostico, versione dopo versione, conservando però a lungo quel sapore di poco rifinito, quasi di “fatto in casa” che a me piaceva molto.

Puppy_screen

Desktop di Puppy Linux “Slako” con poche personalizzasioni

Eppure il computer è matematico e, come la matematica, dovrebbe essere non infallibile ma prevedibile. Secondo Edsger Dijkstra il programma informatico è come un teorema: se ne può dimostrare la verità (ovvero la correttezza) in modo assoluto e un programma ben progettato dovrebbe essere matematicamente esente da errori. Sono convinto che sia così e che se non lo si fa è in gran parte per motivi di economia: di tempo, di lavoro e di denaro. Dimostrare tramite logica matematica tutti i passaggi di un software complesso è possibile, ma enormemente dispendioso. Bisognerebbe lavorare in modo rigoroso e fare programmi piccoli che fanno cose semplici in modo preciso: la filosofia Unix originaria, in un certo senso. Il mercato vuole invece software onnicomprensivi, con innumerevoli funzioni, che copra un gran numero di esigenze e che sia anche bello e piacevole da utilizzare, dei mostri informatici, in pratica, fatti da tantissime parti su cui lavorano contemporaneamente squadre di programmatori.

Per cui il baco ci accompagnerà ancora a lungo: versione dopo versione, pezza su pezza, immettendone di nuovi a ogni iterazione, magari più subdoli e sottili. Utilizzare un computer, un tablet, un telefonino è diventato una sfida meno improba che in passato, tutto è più immediato e prevedibile, almeno al livello base, ma richiede sempre un margine di sportività.

Altro argomento di psicologia informatica che sarebbe il caso di approfondire: la gestione delle attese informatiche. Non solo possono essere lunghe, ma la loro durata è spesso indefinita e non correlata ai contenuti. Magari in un altro post…

225906_1081639879917_1384777_n

Anche gli orologi digitali hanno i loro momenti di impazzimento.

Aggiunta (5 aprile 2017): “Everything Is Broken”. Tutto è corrotto in informatica (e non solo). Articolo sull’insicurezza informatica, di qualche anno ma per nulla datato, anzi: oggi che si parla sempre più insistentemente di “internet delle cose” mi sembra particolarmente attuale e forse (ma speriamo di no) profetico.

View story at Medium.com