.
Annunci online

oblomov

Non esser mai! Non esser mai! Più nulla,
ma meno morte che non esser più!

Diario

20091116

Leggi della natura, leggi dell'uomo Diario

Sia come matematico, sia come programmatore, il mio lavoro è soggetto a ben precise (quanto banali) leggi naturali.

Supponiamo ad esempio che io abbia scritto un programma che, sui computer a mia disposizione, impiega troppo tempo per ottenere il risultato atteso (ad esempio, la completa simulazione di una colata lavica). Perché sia utile, il programma dovrebbe svolgere il suo compito dieci volte più velocemente.

Per la suddetta costrizione alle leggi della natura, ci sono solo due cose che mi permetterebbero di raggiungere l'obiettivo: (1) posso scrivere codice più efficiente, ovvero far sì che il programma faccia meno calcoli (o calcoli più semplici) per ottenere lo stesso risultato, oppure (2) posso utilizzare computer più potenti, che facciano gli stessi calcoli in meno tempo. Ovviamente le due cose non sono mutualmente esclusive (posso scrivere codice più efficiente per computer più potenti).

Per qualche motivo, invece, pare che la legislazione umana preferisca seguire, in certe circostanze, strade quasi sovrannaturali: per il raggiungimento di obiettivi peraltro spesso lodevoli, certi legislatori preferiscono decretarlo piuttosto che renderlo possibile.

Vediamo qualche esempio. Supponiamo che, per risolvere ad esempio il problema della mancanza di acqua potabile, si renda opportuno sfruttare una sorgente la cui acqua, però, risulta attualmente non potabile perché ricca di sostanze dannose alla salute. Cosa si può fare per rendere potabile l'acqua?

Dal punto di vista naturale, l'unico modo per rendere l'acqua potabile sarebbe di depurarla; una legislazione in tal senso potrebbe ad esempio favorire la deburazione stanziando fondi per (co)finanziare la costruzione di impianti di depurazione.

Oppure si può decretare che l'acqua sia potabile anche con quelle sostanze in quelle percentuali.

Vogliamo costruire su terreni non edificabili perché ad alto rischio (sismico, idrico, altro)? Invece di rendere il terreno edificabile con opportune modifiche strutturali, lo dichiariamo edificabile comunque, e se fosse prevista ammenda provvediamo con una bella sanatoria.

A favore di queste brillanti ‘soluzioni’ legali a problemi che avrebbero bisogno di interventi materialmente molto più significativi non gioca solo la sostanziale ignoranza in cui viene tenuta la gente, ma anche il non trascurabile fatto che gli effetti disastrosi, inevitabili conseguenza dei problemi ignorati piuttosto che risolti, li pagano ‘altri’, molto tempo dopo.

In casi come quelli citati le leggi naturali contro cui si decreta sono abbastanza ovvie, ed è sufficiente un minimo di cultura per capire che sono sensate quanto lo sarebbe imporre che le cadenze annuali (scuola, lavoro, coltivazione dei campi, accensione e spegnimento del riscaldamento) abbiano una periodicità di 400 giorni di 25 ore (lasciando invariata la durata dell'ora), vi sono casi in cui, sempre per le stesse ragioni (ovvero la protezione degli interessi di questo o quel gruppo di potere), l'assurdità della legislazione, ed il loro dannifico potenziale, possono essere più subdoli, o se non altro è più facile farsi ingannare dall'apparentemente benefica motivazione ‘ufficiale’ messa a schermo degli interessi realmente protetti.

Su questo binario viaggiano ad esempio numerose leggi di regolamentazione e deregolamentazione dei mercati finanziari (e gli effetti del crollo che hanno causato ce li stiamo cominciand a vivere adesso); non dissimili sono le variamente celate amnisitie e sanatorie per i ‘reati da colletto bianco’ (truffe, corruzioni, evasioni fiscali, etc).

Dello stesso tipo, infine, è l'ennessimo progetto salva-Berlusconi; è indiscutibile che, tra lungaggini burocratiche ed amministrative e carenze di personale, i processi in Italia diventino spesso calvari infinitamente (se non kafkianamente) lunghi.

È altrettanto evidente che la soluzione sensata al problema sarebbe una riforma del sistema giudiziario che snellisse i procedimenti e punisse l'ostruzionismo mirato al raggiungimento della prescrizione; rimpolpare le piante organiche dei tribunali che da Bari ad Aosta si trovano costretti a rimandare i processi per mancanza di personale non sarebbe nemmeno una cattiva idea.

Questo, ovviamente, se l'obiettivo fosse veramente riportare i processi a durate ragionevoli, e non, al contrario, fermarli prematuramente togliendo loro carburante. E se oltre a Silvio Berlusconi si salvano anche i grandi truffatori di Parmalat e Cirio e i responsabili delle morti alla Thyssen-Krupp … che sarà mai?

L'importante è che il popolino creda alla baggianata del processo rapido. Alla fine, a salvarsi con le prescrizioni abbreviate saranno sempre gli stessi: dalla certezza della pena (altra ipocrita bandiera) alla certezza dell'impunità. Peccato non potermi ottimizzare il codice con lo stesso principio.

permalink | scritto da in data 16 novembre 2009 alle 22:00 | Stampastampa
Commenti Commenti (4) (pagina)
Clicca qui per leggere i commenti o per commentare

20081119

Artifex Diario

Ricordo che in un libricino che mi fu regalato negli anni '80, curato da Piero Angela, si menzionava una importante differenza tra gli esseri umani e le scimmie (in particolare gli scimpanzé): la capacità di creare strumenti. In realtà, ma ormai la mia memoria vacilla, credo che fosse qualcosa di leggermente più sofisticato: i nostri non lontani parenti sarebbero in grado di usare gli strumenti, o anche di creare semplici strumenti a mani nude (tipo: sfrondando un ramo), ma non di usare strumenti per creare altri strumenti. Peraltro, non escluderei che più recenti studi di etologia abbiano portato alla luce invece atti di questo tipo, ma per il senso di quanto segue supporrò che questa sia, in qualche modo la differenza indicativa tra l'uomo e le altre specie viventi.

Dopo tutto, almeno a partire dal rinascimento l'uomo (o per lo meno il cosiddetto uomo occidentale) si è gloriato di essere faber, quando non artifex, del proprio destino. Anche con più modeste pretese, però, escludendo forse un po' la fase medievale, l'uomo ha sempre cercato nell'opera d'ingegno materiale (o anche intellettuale) la propria realizzazione. E ci si potrebbe chiedere: chi meglio di colui che crea può conoscere quali esigenze devono essere soddisfatte dagli strumenti di cui deve disporre? chi meglio di lui può quindi concepire l'ideale strumento perfetto per il proprio operare?

Saltando dall'opera allo strumento si può seguire un'indefinita spirale discendente, in cui ciascuno strumento è a sua volta un'opera, che a sua volta necessita di strumenti per la creazione, e dall'opera allo strumento per creare l'opera si passa allo strumento per creare lo strumento per creare l'opera, allo strumento per creare lo strumento per creare lo strumento … ed ognuno di questi passaggi è un campo dove l'artifex può esprimere la propria vena d'ingegno, raggiungendo magari il culmine della creatività del campo ottenendo un insuperabile capolavoro. Ma l'artifex di ciascun campo necessita degli artefices dei campi precedenti, che possano fornirgli i propri capolavori come strumenti per il suo lavoro.

Potremmo arrivare a dire che ogni strumento è un'opera, e viceversa ogni opera è uno strumento, ammettendo che certe opere ‘terminali’ sono strumenti che hanno come fine la fruizione diretta dell'opera stessa (vuoi la sua contemplazione, o la soddisfazione del creatore nell'averla creata: nutrirsi, grattarsi) piuttosto che la creazione di ulteriori strumenti. In tal senso, ciò che distingue la scimmia dall'uomo è che la scimmia si limita ad opere ‘terminali’ laddove l'uomo riesce ad andare oltre.

Certo è interessante osservare che da questo punto di vista l'uomo raggiunge la propria massima espressione (che per l'appunto lo distingue dagli altri esseri viventi) non tanto quando disegna o scolpisce o compone, quanto piuttosto quando pialla, inchioda, suda davanti alla fornace. Dopo tutto, l'ornata suppellettile che nutre lo spirito ed il senso estetico del fruitore è funzionalmente più simile al legnetto con cui la scimmia raccoglie le formiche che non allo scalpello con cui è stata creata.

Vi rileverò dalla necessità di contestarmi osservando che laddove la scimmia provvede solo ai proprio fabbisogni fisici e corporali, le opere terminali dell'uomo hanno anche (se non soprattutto) lo scopo di nutrire il suo spirito, quello stesso spirito che è, a detta di molti se non di tutti, ciò che realmente ci distingue dal resto degli esseri viventi. E basta notare l'abbrutimento di chi non cura e coltiva il proprio spirito per capire quanto questo nutrimento che ci separa dagli animali sia importante.

L'osservazione, benché puntuale, sposta di poco l'aspetto funzionale dell'opera terminale: il soddisfacimento di bisogni.

Una specie che avesse oltre ai bisogni fisici ed a quelli spirituali altri bisogni (inesplicabili per noi come i nostri bisogni spirituali lo sono per le scimmie) non vedrebbe nulla di speciale nel nostro fruire opere terminali per nutrire il nostro spirito, esattamente come noi non vediamo nulla di speciale nel fatto che gli animali mangino. A ben pensarci, non è da escludere che ciascuna specie abbia bisogni non fisici che le altre specie non sono in grado di comprendere, nemmeno di indovinare. È ciò che va oltre il soddisfacimento dei bisogni, quindi, la cosa a cui guardare —ammesso e non concesso che la creazione di strumenti per creare altri strumenti non possa essere interpretata anch'essa come soddisfacimento di bisogni, benché in maniera più indiretta: ogni passo nella catena degli strumenti è un livello di indirezione, in cui il bisogno da soddisfare va ricercato nel tentativo di semplificarsi il lavoro ai livelli più vicini al bisogno ‘primario’, terminale.

Comunque, se davvero è nella creazione di opere/strumenti atti alla creazione di altre opere/strumenti (metastrumentalità) che soggiace la differenza (in termini di capacità) dell'uomo dalla scimmia, questa differenza raggiunge la massima espressione (e quindi l'uomo raggiunge l'apice delle proprie capacità) nella creazione ‘a mani nude’ di opere/strumenti che non hanno altro possibile fine che la creazione di altre opere/strumenti (in contrasto, quindi, con quelle che hanno magari anche una fruibilità propria non mirata alla creazione di altro).

Ovviamente, nel caso dell'uomo, alla semplice arteficità più propriamente manuale si aggiunge quella spesso detta “di concetto”, la creazione puramente astratta, tipicamente mentale. E non credo di essere molto lontano dal vero nel sostenere che alla creazione materiale prelude (quasi) sempre quella astratta: la seconda è quindi facilmente strumentale alla prima, e nella misura in cui lo è, è anche una più alta espressione delle capacità dell'uomo. In tal senso, ad esempio, la logica su cui si basa la matematica su cui si basa la fisica su cui si basa l'ingegneria è probabilmente un esempio della più alta realizzazione delle capacità umane.

È opportuno inoltre osservare che tra i campi in cui sa e può operare l'uomo esistono relazioni di metastrumentalità che non sono né lineari né univoche né, soprattutto, a senso unico: strumenti possono essere usati per creare e/o migliorare strumenti che favoriscono la creazione e/o il miglioramento degli strumenti che li hanno creati. Più che di una spirale sarebbe quindi forse più opportuno parlare di una rete, una metaforica tela di ragno al cui centro troviamo l'uomo con le sue mani e la sua mente, e da cui si dipartono fili verso i bisogni ‘diretti’ dell'uomo stesso, fili attraversati a diverse distanze da altri fili a struttura vagamente concentrica, rappresentanti i vari campi del sapere e dell'operare umano, dalla falegnameria alla pittura, dalla filosofia alla matematica: le intersezioni tra i fili sono le opera e gli strumenti, ed i fili stessi indicano una relazione di dipendenza, che può essere in un solo verso ovvero in entrambi, a seconda che l'uno strumento possa essere usato per l'altro e viceversa: da un campo all'altro dal centro alla periferia, nello stesso campo trasversalmente.

Purtroppo, benché la metastrumentalità sia una caratteristica della specie umana in senso collettivo, essa non può facilmente dirsi caratteristica del singolo individuo: benché in tempi passati si potessero trovare arti, mestieri e professioni in cui il faber si dedicasse alla creazione ed al perfezionamento dei propri strumenti quanto a quella delle proprie opere o degli strumenti per le opere altrui, il fenomeno si è sempre più ridotto fin quasi a sparire in tempi moderni, dove l'alta specializzazione, l'aumentare delle conoscenze e la complessità degli strumenti stessi portano ad insormontabili difficoltà nello spaziare per l'intera lunghezza di uno di quei fili che dall'umanità si dipartono verso le sue opere terminali.

Basti pensare che già solo per comprendere il funzionamento degli strumenti su cui poggia il nostro vivere quotidiano avremmo bisogno di conoscenze che spaziano dalla fisica alla chimica, dall'elettronica alla meccanica; per poterli mantenere e riprodurre dovremmo essere fabbri, meccanici, sarti, cuochi, idraulici, ingegneri elettronici, e dovremmo avere a disposizione cantine, officine, camere bianche, nonché una corrispondente quantità di ulteriori strumenti. Non solo degli strumenti d'uso quotidiano abbiamo però una conoscenza non certo approfondita, che nei migliori dei casi si limita a minime capacità di manutenzione, e quasi mai di riproduzione: la maggior parte degli uomini moderni si trova spesso anche sul lavoro a far uso di strumenti dei quali ha nel migliore dei casi una conoscenza solo superficiale; reciprocamente, chi produce opere che hanno un duplice valore terminale e strumentale facilmente si dimentica del secondo, e concentrandosi solo sul primo si allonta dalla piena estrinsecazione di quella capacità che distingue il genere umano.

Non è tanto una limitatezza degli interessi ad impedire agli uomini di occuparsi degli strumenti di cui usufruisce, quanto piuttosto il loro essere selettivi: dopo tutto, anche un polimate, un Uomo Universale (ancora echi del rinascimento) potrebbe comunque non essere in grado di adoprarsi per creare o migliorare gli strumenti a lui necessari per il suo dominio sui molteplici campi di cui si occupa. Sarebbe quindi interessante sapere quali meccanismi psicologici spingono le persone ad interessarsi dei proprî strumenti piuttosto che di altri campi più o meno connessi tra loro.

Dopo tutto, per quale motivo un matematico dovrebbe interessarsi delle applicazioni della sua teoria alla fisica, quando non direttamente all'ingegneria? Eppure la più sconvolgente presentazione del SIMAI 2008 è stata su un sorprendente nesso tra la matematica più astratta (l'algebra omologica) e quella più ingegneristica (gli elementi finiti): non a caso, la presentazione era anche mirata a sottolineare l'arbitrarietà di certe convenzionali distinzioni tra matematica pura (intesa appunto come opera ‘terminale’, per lo più fine a sé stessa) e matematica applicata (intesa appunto come opera strumentale, ‘calcolatrice’).

Viceversa, perché mai un matematico dovrebbe interessarsi degli aspetti tipografici dei lavori che porteranno in giro le sue idee? Eppure il più longevo (e se non il, sicuramente uno dei più longevi) dei software attualmente ancora in circolazione è il TEX, che fu sviluppato sul finire degli anni '70 da Donald Ervin Knuth, matematico ed informatico (anzi Maestro dell'Arte della Programmazione al Computer) che si mise a studiare tipografia non tollerando lo scempio cui veniva sottoposta la (sua) produzione scientifica: non a caso il nome del software deriva dalla te´???, la capacità dell'artifex (mi si perdoni l'exploit [ahem] linguistico).

In effetti, ci sono casi in cui è possibile lavorare ai propri strumenti (o a parte di essi) senza trascendere (o con una minima trascendenza de)i limiti della conoscenza settoriale, all'interno quindi della propria te´???, e raggiungendo comunque apici di metastrumentalità. Ad esempio, nei bei tempi andati un fabbro era in grado di produrre la maggior parte dei propri strumenti; in tempi più moderni, la cosa è vera per chi scrive programmi al computer: benché non sempre se ne occupi, un programmatore ha già le conoscenze per scrivere programmi che lo aiutino nel proprio lavoro di programmatore. E visto quanto la metastrumentalità porti ad una prospettiva quasi paradossale sull'importanza e la rilevanza delle nostre capacità, verrebbe da chiedersi: essere metastrumentali senza uscire dal proprio campo è meglio o peggio che esserlo spaziando in campi diversi?

(Poi, ecco, tutto questo prende ovviamente spunto dal periodo che sto attraversando, periodo in cui ho lavorato con gran profitto e gran soddisfazione non solo al più immediato compito per il quale da questo mese, e quindi materialmente dal prossimo, riceverò il mio soldo d'impiegato di concetto, ma anche ad una serie di strumenti di contorno. Vedere le proprie conoscenze da matematico ed informatico concretizzarsi nella prima bozza di codice per calcolo scientifico su scheda grafica non è cosa da poco. Ma quando i proprî contributi vengono ufficialmente accettati in un importante strumento di sviluppo utilizzato da molti importanti progetti, be', c'è una soddisfazione tutta particolare.)

permalink | scritto da in data 19 novembre 2008 alle 0:50 | Stampastampa
Commenti Commenti (0) (pagina)
Clicca qui per leggere i commenti o per commentare

20080504

Le soddisfazioni della pazienza Diario

All'ultimo incontro di persona il mio Capo aveva lamentato una certa lentezza (mia) nel procedere con la scrittura del codice. Forse gli è sfuggito il fatto che sto lavorando praticamente in contemporanea su due progetti (senza peraltro venir (ancora) pagato per alcuno).

In realtà (ed è quello che gli ho detto senza però riscuotere grande successo) la lentezza nell'ottenere risultati non è stata dovuta tanto alla mancanza di lavoro fatto, quanto all'attenzione data nella scrittura di un codice che fosse sufficientemente astratto da poter essere utilizzato anche per il problema successivo.

Potrei dire che sono andato piano per evitare di fare meno lavoro, ma la cosa non andrebbe interpretata nel senso usuale in cui si potrebbe affermare una situazione del genere: dopo tutto, l'obiettivo da raggiungere non cambia se vado più piano, e soprattutto non ci lavora qualcun altro se non ci lavoro io.

In effetti, ciò che mi ha spinto a lavorare ad un codice più astratto e quindi più complesso e quindi più difficile da realizzare è stato il ritrovarmi a dover rifare cose già fatte: se nei mesi precedenti avevo realizzato un codice adatto (ma limitato) alla trattazione di problemi ad una dimensione, l'idea di dover ripetere l'esercizio per due dimensioni (che era l'obiettivo di adesso) per poi ricominciare da capo quando si fosse dovuto trattare (come si sarebbe fatto) la terza dimensione, sinceramente, non mi calava.

In un certo senso, è stata quindi la pigrizia a farmi perdere tempo; ma ancora una volta non si tratta del solito modo di perder tempo da pigro, procrastinando, bensì nel senso intelligente: perché via, diciamocelo, è stupido rifare la stessa cosa N volte se basta farla 1 volta bene.

E stanotte, finalmente, la soddisfazione di comunicare al professore di avere i risultati anche per tre dimensioni, con la possibilità, volendo, di lavorare anche in spazi più generali, e tutto a brevissimo tempo dai primi risultati in dimensione due.

È interessante studiare i fattori che entrano in gioco nella determinazione del delicato equilibrio tra il fare le cosa ora ed il farle bene, o meglio ancora nella soluzione del trilemma good, fast, cheap: pick any two.

Ad esempio, sono ben lieto di aver lavorato al caso monodimensionale senza pensare troppo all'astrazione: mi è servito per prendere dimestichezza con i concetti, sprovare alcune strutture di programmazione e scoprire alcuni importanti fattori chiave del metodo che stiamo sviluppando con il Capo.

Ogni buon programmatore ha dimestichezza con la massima plan to throw one away che in realtà è sbagliata perché se uno progetta sapendo di doverne scartare uno finirà con lo scartarne due: ma è vero che il primo tentativo serve più a rivelare tutti gli ostacoli ed i problemi che intervengono tra la teoria e la pratica, e che è in genere meglio ricominciare da zero avendo imparato dal primo tentativo che cercare di sistemare il primo tentativo fino a renderlo efficiente e veramente utile.

La scelta tra quando ricominciare e quando procedere per correzioni è un'altra non facile.

Da un lato, si rischia di finire come Windows: schiacciato dalla propria complessità evolutiva, avrebbe bisogno di essere rifatto da zero, ma la necessità di tornare al (discutibile) livello di maturazione attuale prima di poter essere distribuito nuovamente rende il progetto irrealizzabile nei brevi tempi che la Microsoft si impone tra una versione e la successiva.

La Apple è riuscita ad effettuare la transizione dal suo vecchio Mac OS al nuovo Mac OS X, un'architettura completamente diversa, grazie ad Wine sotto Linux, togliendo sostanzialmente ogni motivazione per usare Windows … ma comunque le motivazioni sono commerciali e non tecniche.

Dal lato opposto, si rischia di apprezzare un po' troppo il processo di riscrittura, come talvolta succede ai progetti open source, che possono finire con il rilasciare versino sempre nuove, riscritte più o meno da zero, ma senza mai farle giungere a maturazione completa.

Il meglio è nemico del buono, ma se non si tende al meglio difficilmente si arriverà al buono. L'ideale è costruire una strada per il meglio in cui ogni fermata sia buona. E quando riesce, anche se il percorso risulta un po' più lungo del previsto, che soddisfazione signori miei.

permalink | scritto da in data 4 maggio 2008 alle 16:16 | Stampastampa
Commenti Commenti (0) (pagina)
Clicca qui per leggere i commenti o per commentare
ottobre        dicembre