sabato 29 maggio 2010

A Farewell to Arms

Mercoledi' scorso ho ricevuto due eventi - critici ??? - non programmati.

Il primo proveniva dall'Italia: le Poste Italiane si sono rifiutate di consegnare una lettera raccomandata - a me diretta - a mio suocero. Mittente sconosciuto.

Ministero della Difesa? Afghanistan? E' una possibilità.
Se e' cosi' ho tre giorni per presentarmi, altrimenti saro' considerato disertore, quindi punibile con la fucilazione. Ma no: questa legge si applica solo al codice militare in tempo di guerra e l'Italia non ha dichiarato guerra all'Afganistan (e neppure il contrario, che io sappia). Invece i due tizi della foto si divertivano un casino a dichiarare guerre a destra e a manca. Sappiamo tutti bene come e' andata a finire.

Inoltre c'e' stato un recente emendamento che annulla l'opzione di essere passati per le armi su due piedi. Peccato: ho sempre sognato di comandare il mio plotone di esecuzione. Odio perdere l'illusione di avere il completo controllo della situazione. Come dice sempre Franco, ScicosLab e' una questione di ego.

Parole Sante.

 Per me invece rimane una questione di miccia corta. Franco chi? Ne parleremo in un prossimo post.

Ho la vaga impressione di aver dimenticato di comunicare il mio nuovo indirizzo quando (tre anni fa) mi sono trasferito dalla Cite Universitaire a Versailles. Vorra' dire che manderanno il poveretto che occupa il mio vecchio alloggio a combattere al posto mio. C'e' una elevatissima probabilita' che il mio vecchio alloggio sia occupato da un (medio) orientale di cultura mussulmana. Sarebbe tutta da ridere. Per noi, ma non per lui.

Non manchero' di tenervi informati sugli sviluppi della faccenda.

Aggiornamento (Sabato 29): non era il Ministero della Difesa. Peccato. Ignazio e' stato e rimane sempre un mito.

Scherzi a parte, i miei Colleghi che sono adesso in Afganistan rischiano la pelle ogni minuto di ogni Santo Giorno che il buon Dio manda in terra. E c'e' poco da ridere.
E la raccomandata? Silenzio stampa fino al 10 Giugno. Per adesso vi posso dire solo che si tratta di un evento critico, quindi devo stoppare il solver e .... (vi piacerebbe che vi raccontassi come funziona il solver di Scicos eh ... :-) ). Prometto che ve lo raccontero' in un prossimo post.

La seconda sorpresa (di Mercoledi 26) e' stata la materializzazione - nel mio ufficio - del mio vecchio amico Roberto di Cosmo.
La missione di Roberto era specifica: "Ti sarei grato se tu mi spiegassi come funziona ScicosLab. Le informazioni in mio possesso mi portano a risultati contraddittori. Non e' logico.".

ScicosLab non e' una questione di logica. ScicosLab e' come se un cuoco cercasse di preparare un piatto di lasagne ma alla fine quello che viene fuori e' un piatto di spaghetti. Spaghetti software.

Spiegare la struttura software di  ScicosLab e' un po' come aprire un ristorante italiano su Vulcano.
Devi trovare una motivazione logica per farti ascoltare. Altrimenti finisci per avere zero clienti. E gli amministratori vulcaniani ti faranno chiudere: tenere aperto un ristorante con zero clienti non sarebbe logico.
Facciamo quindi finta che ScicosLab sia organizzato in maniera logica. Cosa che e' palesemente falsa ma - come oramai tutti sanno - a me piace giocare a poker solo per il gusto di barare apertamente.

Quando si preparano le lasagne, si comincia sempre dal fondo.

Lo strato piu' basso e' costituito dall'insieme di librerie matematiche di base per il calcolo vettoriale/matriciale. In altre parole BLAS, LAPACK e compagnia bella. Queste librerie di basso livello sono scritte nativamente in FORTRAN e sono dannatamente veloci ed efficienti nel fare il loro lavoro. Sono delle "vacche sacre" del software, nel senso che _nessuno_ ha intenzione di mettere in discussione il loro ruolo e la loro struttura. Ovviamente nel corso degli anni che' stata una certa evoluzione, per cui oggi si trovano delle librerie matematiche che utilizzano le nuove tecnologie multi-core e GPU computing. Esempi tipici sono le librerie MKL (Intel) e ACML (AMD). Io - che le ho provate entrambe - vi consiglio le seconde: le ACML girano bene su qualunque processore di classe x86, supportano tutti i sistemi operativi e tutti i compilatori.

Al livello sopra le librerie di base c'e' l'interprete del linguaggio Scilab. L'interazione dell'interprete avviene attraverso una console, la classica command line interface tipica dei tempi dei terminali (seriali). Strumenti provenienti da tempi piu' civilizzati, quando ancora la Repubblica aveva un sito internet e l'Impero ancora non c'era. Tempi nei quali si potenva tenere aperto un repository SVN senza paura di essere spazzati via dalla Galassia.

Fare calcoli con vettori e matrici puo' essere divertente, ma l'occhio vuole la sua parte. ScicosLab include un buon supporto per la grafica: tutte le primitive classiche 2D e 3D e l'interazione con mouse, tastiera, menu' dinamici ecc...

Il linguaggio Scilab ben si presta per essere eseguito da un interprete, mentre un compilatore potrebbe avere dei problemi di carattere esistenziale. Ad esempio, questo frammento di codice e' tranquillamente accettato

a = sin(theta);
a = "pippo";

Oppure, ancora piu' drastico

sin = 1 ;

Quindi, non solo non e' necessario dichiare le variabili, ma si puo' cambiare il tipo al volo, come si puo' ridefinire una funzione di base (come "sin") a nostro piacere. Queste - ed ancora molte altre - features sono la conseguenza piu' o meno diretta dell'organizzazione interna di dell'interprete Scilab, ovvero lo STACK.

Lo STACK croce e delizia dell'interprete Scilab funziona cosi': tutte le volte che definite una variabile:

a = 1 ;

una funzione

function  y = f(x), f = x^2 ; endfunction

quanlunque cosa, questa viene messa in cima ad una pila (identificativo e contenuto).
Quando alla riga di comando arriva alla fine
[Enter]
l'interprete comincia a scannare la pila alla ricerca del simbolo "a" nel nostro caso. Il primo che trova, lo piglia. E' per questo che la refinizione di "sin" funziona: la _vera_ funzione sin(x) e' nascosta in fondo (molto in fondo) allo stack.

E Roberto disse: "Questa organizzazione non solo non e' logica: e' malsana.".

E Simone rispose: "Il linguaggio Scilab non e' una questione di logica, ma di comodita' per l'utilizzatore; tipicamente qualcuno che non sa un tubo di programmazione ma conosce bene la matematica della sua applicazione".

La discussione con Roberto e' poi passata a Scicos.

In tempi meno bui si diceva: "Il futuro ha un cuore antico".

Oggi, molti guardano i mercati, la borsa e presentano roadmap irrealistiche che alimentatono aspettative irrealizzabili. A queste persone consiglio di farsi un tre mesi di addestramento militare intensivo, oppure un periodo ragionevole in un monastero tibetano. E poi un turno di sei mesi in Afghanistan.

Per tutti quelli che hanno ancora un cuore che batte, vi auguro - di cuore -  di avere una vita lunga e prosperosa con ...


ScicosLab. What else?

Nessun commento:

Posta un commento