La mia storia in estrema sintesi
Per chi ha molta fretta e poca voglia di leggere un documento obiettivamente prolisso nel primo capitolo ho riassunto in estrema sintesi la mia vita professionale.
Nella seconda parte ho descitto le conoscenze "teoriche" ovvero maturate attraverso corsi di formazione, ed infine nella terza parte ho sinteticamente descritto alcuni dei progetti a cui ho lavorato.
La mia competenza fondamentale è la capacità di fornire soluzioni software su misura, ritagliate sulle specifiche esigenze del cliente, in tutte le sue fasi:
Essendo contemporaneamente programmatore e sistemista le mie soluzioni sono progettate avendo sempre in mente la facilità di installazione, configurazione, gestione e manutenzione del software.
Un altro aspetto a cui do molta importanza è l'efficienza, per me i tempi di risposta sono importanti. Per ottenere programmi con tempi di risposta ottimali curo molto sia la progettazione del software (strutture dati) che la sua implementazione (algoritmi).
La tipologia di soluzioni software che realizzo spazia dalla realizzazione di componenti di base (mattoncini utili per assemblare in breve tempo nuove soluzioni), raccolta ed elaborazione dati, comunicazione di dati tra sistemi, applicazioni WEB.
Ma, in dettaglio, quali sono le mie competenze?
Avendo sviluppato negli anni un vasto parco di tool generici ho una buona capacità di "risolvere problemi" di tipo applicativo. Dato un problema applicativo in tempo (relativamente) breve riesco a fornire soluzioni semplici ed efficienti.
La formazione teorica di base di indirizzo informatico, unita ad un'esperienza di oltre vent'anni di lavoro, mi mette nella condizione di apprendere rapidamente nuovi prodotti e/o tecniche di programmazione.
Nato a Ravenna il 15 marzo 1963, e conseguita la maturità scientifica nel 1982 con 58/60, mi sono iscritto al corso di laurea in scienze dell'informazione presso l'università degli studi di Udine.
Al secondo anno di università, in collaborazione con un mio amico e compagno di studi, ho avuto la prima esperienza professionale: abbiamo realizzato un programma per la gestione di uno studio dentistico, in BASIC.
Nel 1984, per circa due anni, ho collaborato in qualità di socio lavoratore con la I.C.A, una cooperativa di consulenza informatica con sede a Pordenone. In quel periodo installavo e gestivo pacchetti di contabilità generale in partita doppia, magazzino, vendite. Nello stesso periodo, con l'idea di scrivere un prodotto innovativo che colmasse le molte lacune dei software che installavo e gestivo, ho scritto un programma di contabilità generale in partita doppia, in PASCAL.
Nello stesso periodo organizzavo corsi di informatizzazione di base per scuole secondarie e istituti professionali della zona.
Negli anni scolastici 1986-1987 e 1987-1988 ho insegnato matematica e fisica nel liceo scientifico statale "A.Einstein" di Cervignano del Friuli. Ho dovuto rinunciare al terzo incarico che avevo ottenuto per l'anno scolastico 1988-1989 in quanto a marzo del 1988 mi sono laureato con 99/110 e quindi dovevo partire per il servizio militare.
Al termine del servizio militare svolto in qualità di ufficiale di complemento nell'arma delle trasmissioni, a partire dal 15 Gennaio 1990 sono stato assunto da IBM. Dopo un periodo di formazione di circa 4 mesi sono stato assegnato alla filiale di Padova con la qualifica di sistemista AIX.
Per circa tre anni mi sono occupato di installazioni di sistemi IBM AIX e prodotti CAD/CAM, di integrazione dei sistemi IBM AIX con altri sistemi IBM, di reti SNA e TCP/IP. Servizi sistemistici di base dunque.
Successivamente la mia anima da progettista e realizzatore di software ha lentamente cominciato ad emergere. Ho iniziato a progettare e realizzare software sulle specifiche esigenze dei clienti che frequentavo. In questo periodo ho approfondito ai massimi livelli la conoscenza del sistema operativo UNIX, del linguaggio di programmazione C e dei linguaggi di scripting, già acquisiti nel periodo universitario.
Nel 1995 mi sono temporaneamente allontanato dal mondo UNIX/AIX per occuparmi di automazione industriale in ambiente OS/2. In questo periodo ho maturato esperienza con il DB2, terminali per la raccolta di dati, PLC e programmi per pilotare robot di movimentazione. Il progetto più importante realizzato in questo periodo riguarda l'automazione di un magazzino a -28 gradi della bofrost, a Meduno (PN).
Nel 1995 ho iniziato a lavorare per Ferrari, a Maranello, per un progetto di downgrade di CATIA da ambiente S/390 ad ambiente AIX. Per 14 anni, fino a dicembre del 2009, ho lavorato ad innumerevoli progetti per Ferrari. AIX, Baan, Oracle, CATIA, Enovia/PM, MQ/series, TSM sono alcuni degli ambiti che sono stati oggetto di sviluppi e personalizzaioni.
Per quanto riguarda la gestione documentale con il prodotto Enovia/PM ho sviluppato diversi importanti progetti per ABB SACE, ABB T&D, Carraro, Piaggio.
A fine del 2002 ho lasciato IBM per entrare in GruppoPRO, per il quale ho continuato a fare molte delle cose che facevo prima, con continuità.
In questa fase ho maturato esperienza nello sviluppo di applicazioni WEB e ho sviluppato una profonda conoscenza di HTML, JavaScript, Java e applicazioni CGI in C e altri linguaggi di scripting.
In qualità di capo progetto ho progettato e coordinato lo sviluppo di un sito di web commerce.
In un progetto di migrazione a SAP ho sviluppato una profonda conoscenza del prodotto Tivoli Workload Manager, uno schedulatore multipiattaforma.
In un altro progetto ho maturato una profonda conoscenza del prodotto SUN identity management.
Maturità scientifica conseguita nel 1982 con punti 58/60
Punto di partenza delle mie esperienze lavorative è stata la laurea in scienze dell'informazione conseguita all'Università degli studi di Udine nel 1988 con punti 99/110.
Nel seguito sono riportate le principali attività formative post laurea:
Num data inizio gg Luogo Descrizione --- ---------- --- --------- -------------------------------------
- 15/01/1990 100 Novedrate Corso base AIX (Mark 1 90)
- 07/06/1990 1 Vimercate Annuncio CIM Vimercate
- 21/06/1990 2 Padova Road Show pacchetti CAD
- 05/07/1990 2 Milano AIX Marketing Forum
- 11/07/1990 2 Milano Architetture scalari, vettoriali, parallele
- 27/08/1990 5 Basiano Installazione AIX 3.1
- 24/09/1990 5 Basiano Librerie grafiche GL
- 15/10/1990 5 Basiano Librerie grafiche graPHIGS
- 02/12/1990 5 La Hulpe Integrated Tools Workshop for PWS
- 11/01/1991 1 Padova Introduzione al OS/2
- 03/04/1991 2 Padova Forum RISC General
- 09/04/1991 3 Milano Evoluzione offerta e strategie IBM
- 07/05/1991 4 Basiano AIX Comunicazioni con HOST
- 13/05/1991 3 Segrate Corso base aziende di produzione
- 27/05/1991 3.5 Milano X.25 e reti SNA
- 21/10/1991 4 Novedrate L'impresa: strutture, funzioni, soluzioni
- 02/12/1991 5 La Hulpe NON TCP/IP Communications
- 02/03/1992 4 Novedrate AIX MasterClass
- 12/03/1992 1 Segrate AIX Case WorkBench/6000
- 24/03/1992 1.5 Novedrate IBM nella realta` PC
- 08/04/1992 0.5 Segrate Workshop Image/6000
- 08/04/1992 0.5 Segrate Documentazione Tecnico Scientifica
- 09/04/1992 2 Segrate Frame Maker
- 04/05/1992 5 Milano Programmazione con AIX-Windows
- 08/06/1992 3 Milano Open System Concepts Workshop
- 14/09/1992 2 Milano Interfaccia socket in AIX
- 28/09/1992 3.5 S.Felice WorkShop Pilota HA/CMP
- 05/10/1992 4.5 Novedrate Programmazione in C++
- 08/03/1993 4 Milano DCE per RISC/6000
- 19/04/1993 2 Milano I ntr. ai sistemi esp. e reti neuronali
- 31/05/1993 4.5 Milano Sviluppo appl. client/server in AIX
- 08/07/1993 2 Novedrate L'evoluzione dell'offerta e strategie
- 05/10/1993 3.5 Novedrate Formazione professionale SE
- 10/10/1994 3 Segrate AIX MasterClass
- 23/11/1994 2.5 Novedrate Corso Base OS/2
- 26/04/1995 3 Segrate Karat
- 05/10/1995 2 Novedrate I CRM
- 27/02/1996 1 Vimercate GAT CATIA 4.1.6
- 04/03/1996 5 Vimercate Corso base CATIA
- 22/04/1996 2 Vimercate Installazione CATIA
- 15/07/1996 3 Agrate Amm. di sistema su SUN Solaris 2.x parte I
- 16/09/1996 5 Agrate Amm. di sistema su SUN Solaris 2.x parte II
- 14/12/1996 3 Vimercate Product Manager/6000
- 02/12/1996 1 Padova base Lotus Notes
- 27/01/1997 1 Segrate GAT CATIA 4.1.7
- 12/04/1997 3.5 Tenerife AIX Power Academy
- 04/07/1997 1 Segrate ETS Marketing Update
- 25/09/1997 2 Novedrate Workshop AIX 4.3
- 02/03/1998 5 Padova Programmazione in JAVA
- 16/03/1998 4.5 Goteborg PDM client customization
- 23/03/1998 4.5 Goteborg PDM server customization
- 30/03/1998 2 Goteborg PDM SDK
- 19/01/1999 4 Vimercate Enovia VPM
- 08/02/1999 1 Vimercate Enovia PM: Items, EC
- 03/11/1999 0.5 Padova year 2000
- 03/05/2000 2 Vimercate VPM administration
- 02/01/2001 1 CBT SIMethod fundamentals
- 12/03/2001 5 Novedrate IGS Method for professionals
- 07/05/2001 5 Milano RISC/6K SP installazione e gestione del sistema
- 06/06/2001 1 Milano introduzione alla programmazione con JavaScript
- 07/06/2001 2 Milano la programmazione con JavaScript
- 13/03/2002 3 Milano e-business application development
- 07/10/2002 4.5 Novedrate Project Management Fundamentals
- 30/03/2003 8 Crespellano Java2EE programming
- 02/05/2006 4 Roma Oracle BPEL bootcamp with technical workshop
- 31/03/2008 5 Milano Sun Java System Identity Management
- 03/09/2008 1 Crespellano Project Management
Il 23 Aprile 1997 ho superato il test di certificazione 0-161 IBM AIX V4.1 System Administration con punti 56/61 (92%).
In questo capitolo riprendo in modo più completo e dettagliato quanto ho sintetizzato nel capitolo sopra, per cui ci saranno inevitabili ripetizioni.
Nei primi tre anni di IBM mi sono occupato di problematiche inerenti il sistema operativo AIX, su clienti con problematiche CAD, principalmente degli uffici tecnici, nelle seguenti aree:
Successivamente, pur continuando a fornire il supporto sistemistico su descritto, ho polarizzato la mia attività su specifici progetti che hanno a mio avviso un alto grado di potenziale replicabilità e che descrivo nel seguito, al capitolo 'Progetti'.
Le mie attività, con il passare del tempo, si sono sempre più focalizzate nell'area di sviluppo applicativo nelle seguenti aree:
Nel tempo ho anche sviluppato conoscenze, legate alla sicurezza ed all'architettura dei servizi applicativi in rete, che mi hanno permesso di effettuare attività di tipo consulenziale.
A partire dal 1995 ho collaborato con il cliente Ferrari di Maranello. Il primo incarico mi ha impegnato nel passaggio del sistema di progettazione CAD da CATIA su sistemi VM host a CATIA V4 su piattaforma AIX. Successivamente sono stato impegnato in un progetto pilota per introdurre PM/6000 (successivamente diventato Enovia/PM). Quando è partito il progetto BAAN, sono stato impegnato nel supporto sistemistico ed architetturale realizzando anche molte procedure ad integrazione del prodotto base. Attualmente curiamo (il gruppo di lavoro è di cinque persone) circa 20 server AIX su cui girano moltissime applicazioni. Negli ultimi tre anni l'impegno medio è stato di 75 giorni all'anno.
Per ognuno dei progetti di seguito specificati è disponibile ampia documentazione di dettagio. Questa rassegna vuol dare solo una idea di massima sull'argomento.
Il progetto è stato realizzato in collaborazione con Roberta Mitri per Seleco S.p.A di Pordenone. Si tratta di un sistema realizzato in ambiente AIX/X-Window che permette di gestire l'archiviazione su un sistema HOST MVS di disegni resi ufficiali ed in copia definitiva. Permette ad ognuno dei disegnatori utenti del sistema di accedere alle informazioni archiviate in maniera del tutto trasparente e con interfaccia estremamente moderna. Lo scenario prevede una rete locale di RISC/6000 con ECOCAD installato ed un HOST MVS collegato. Con minime modifiche può essere utilizzato in ambienti CATIA o CADAM
Il progetto è stato realizzato per BELLELI e prevede la raccolta di dati in officina mediante terminali 7526-200 collegati tramite linee RS422 ad un concentratore OS/2, DCC/2. Le transazioni generate sui terminali di raccolta dati vengono passate in maniera interattiva, via APPC, ad un sistema HOST che provvede ad inviare una opportuna risposta che deve essere visualizzata sui terminali.
Nel progetto ho realizzato i programmi di gestione delle transazioni sui 7526, il programma APPC di interfaccia tra DCC/2 e CICS, e tutte le funzioni di servizio relative.
In quest'area ho realizzato anche demo per CARRARO, che poi ha intrapreso con IBM importanti relazioni di collaborazione, e per LEBOLE/MARZOTTO.
Il progetto è stato realizzato per Cementi ZILLO.
L'ambito architetturale è simile a quello realizzato per BELLELI: una rete di terminali 7526-200 dotati di lettore di badge magnetico e collegato ad un concentratore OS/2, DCC/2 viene utilizzata per raccogliere timbrature di entrata/uscita dallo stabilimento. Le transazioni generate vengono passate ad un AS/400 che le processa in sostituizione dei normali cartellini orologio. L'applicazione è altamente replicabile senza modifiche in ambienti analoghi.
Il progetto è stato realizzato per TELWIN e già replicato per VALEX, ZANUSSI, BONDIOLI & PAVESI, SIERRA S.p.A.
L'idea di base è quella di distribuire in formato elettronico la documentazione tecnica generata su CAD nell'ufficio tecnico in tutta l'azienda via rete locale. Lo strumento di consultazione è il PC, ormai diffuso sulle scrivanie di ogni azienda.
Lo scenario prevede l'esistenza di una rete di workstation dotate di CAD, di una macchina che faccia da archivio disegni, di una serie di PC collegati all'archivio con funzioni di consultazione.
Nel caso specifico avevamo una rete di RISC/6000 con GBG, un AS/400 gestionale con funzione di archivio ed una rete di PC sia DOS che OS/2 collegati all'AS via PC/SUPPORT.
Il disegnatore, quando crea o modifica una copia ufficiale e distribuibile del disegno, innesca su RISC una procedura che:
Chi voglia consultare il disegno attiva una procedura che:
I programmi di compressione/decompressione e visualizzazione sono stati realizzati da me personalmente e sono stati oggetto di "INFO SE".
Il progetto è stato realizzato in collaborazione con A. Bacalini per PIZZA & PASTA, un'azienda del gruppo BoFrost. Si tratta della realizzazione di un sistema di supervisione e controllo di un magazzino automatico realizzato con PlantWorks in ambiente OS/2.
Il sistema di supervisione è interfacciato a tre PLC siemens, ad un PC pallettizzatore e ad AS/400 e controlla il funzionamento del magazzino di stoccaggio di materie prime e prodotto finito.
Si tratta di un pacchetto di programmi da me sviluppato nell'ambito di un più ampio progetto di raccolta dati di produzione realizzato in ambiente OS/2 su PS/VP per il cliente CARRARO.
Il pacchetto di programmi per la raccolta dati, SQUARE/TM, ha bisogno di colloquiare con i programmi gestionali che risiedono in ambiente HOST/MVS. Il colloquio avviene nei due versi utilizzando tabelle DB2. Il pacchetto si occupa di mantenere allineate, nei due versi, tabelle corrispondenti nei due ambienti.
L'accesso al database su HOST avviene in modalità DRDA utilizzando il prodotto DDCS/2 che consente di accedere al DB remoto come se fosse locale.
Le funzioni di download, passaggio dati da HOST a PS/VP, prevedono la possibilità di inserire e cancellare record dal DB su PS/VP, le modalità di accesso sono abbastanza sofisticate ed i vari programmi di accesso sono scritti in "C" con l'utilizzo di chiamate SQL.
A tempi fissati, ma configurabili a piacere, il programma esegue un allineamento tra le tabelle corrispondenti su HOST e PS/VP, riportando su un file di "LOG" l'esito di tutte le operazioni che sono state iniziate.
Sia il programma di download che il programma di upload sono scritti in "C" utilizzando chiamate SQL. La struttura logica di funzionamento dei due programmi è molto simile: accanto al processo principale che accede ad uno dei due DB viene creato un processo parallelo (SRVONECP) per l'accesso al secondo DB. I due processi scambiano dati via "pipelines" OS/2.
Realizzato per la FERRARI, il progetto ha coinvolto a vario titolo molte persone IBM. Obiettivo finale del progetto è stato quello di portare tutti i progettisti della FERRARI da ambiente HOST ad ambiente AIX.
Io mi sono occupato di tutti gli aspetti infrastrutturali legati all'installazione e messa a punto dell'ambiente di lavoro. In pratica per circa due anni ho curato la parte sistemistica del progetto.
Nello stesso periodo ho anche realizzato una lunga serie di procedure nelle seguenti aree:
A partire da Aprile del 1998 ho iniziato ad accouparmi di progetti in ambito PM/6000, che adesso si chiama Enovia/PM.
Il primo progetto in cui sono stato coinvolto è stato un pilota in FERRARI SERIE per il quale sono state fatte pesanti personalizzazioni sia sul lato client che sul lato server per spingere ai massimi livelli l'integrazione con il CATIA.
Nel 1999 ho lavorato allo sviluppo di personalizzazioni sul lato client per i clienti ABB, CARRARO e PIAGGIO. Nello stesso periodo ho anche lavorato alla stesura di una serie di strumenti per l'amministrazione e controllo del PM da un punto di vista sistemistico.
Nel 2000 e 2001 ho seguito a 360 gradi lo sviluppo dei progetti PM per ABB SACE, ABB T&D, CARRARO e PIAGGIO. In ABB T&D mi sono occupato anche di problematiche di carattere sistemistico e infrastrutturale.
Sviluppato nel 2000 per il cliente Zanussi Vending, in seguito rinominato Necta Vending, il sistema permette di gestire l'archivio dei disegni definitivi con la logica richiesta dal cliente.
Sulla falsariga del primo ho realizzato nel 2001 un secondo sistema di archiviazione, funzionante con logiche diverse, per la gestione degli archivi di protoserie.
Nel 2001 ho sviluppato una applicazione per ABB T&D che consente di accedere in sola lettura al DB Enovia PM utilizzando unicamente il Web browser.
Nel 2001 ho sviluppato, in collaborazione con Alberto Allia, una procedura per la replica di informazioni VPM su più siti geografici.
La procedura attua la replica guidata dal contenuto del DB VPM in base ad una logica che permette di avere ciò che serve dove serve in base ad una matrice di disponibilità dei dati legata al concetto di gruppi di lavoro e siti geografici.
A partire 2000 a tutt'oggi, è ripresa la collaborazione, interrotta per circa due anni, con il cliente Ferrari.
Le attività di tipo sistemistico sui vari server occupano una piccola parte del mio tempo, molta parte è invece stata dedicata allo sviluppo di applicazioni legato al gestionale adottato da Ferrari nel 1999: BAAN.
In particolare mi sono occupato di progettare e realizzare molti strumenti per la gestione di un ambiente complesso:
Altre applicazioni sulle quali ho lavorato a vario titolo sono:
Su questo tema, molto importante in Ferrari, ho sviluppato molti componenti: la prima serie prevedeva semplicemente una suite di tool grafici che permettava di esportare ed importare modelli CAD. L'evoluzione successiva prevedeva anche l'invio automatico dei modelli ai fornitori utilizzando 'la rete'. L'ultima evoluzione, basata interamente su tecnologia WEB, consente lo scambio controllato di qualunque genere di informazioni con notifiche via e-mail incrociate.
Questo è un progetto di cui vado particolarmente fiero perché ho avuto la fortuna di poterlo progettare e realizzare a modo mio. Ho potuto quindi far tesoro della corposa esperienza fatta in materia di gestione documentale.
Si tratta di un'applicazione in C che genera pagine HTML/JavaScript e quindi fruibile con tecnologia WEB. Estremamente efficiente ed ottimizzata ha tempi di risposta veramente impressionanti.
Anche se il progetto è nato su specifiche dai progettisti della Ferrari esso è stato sviluppato in modo talmente generico da poter essere utilizzato in moltissimi ambiti diversi.
I progettisti Ferrari utilizzano programmi di calcolo e simulazione che generano enormi quantità di dati (ogni blocco può essere grande decine di GB) che, per legge, devono essere conservate per molti anni. L'esigenza di base era poter archiviare questi dati su server TSM, rendere efficienti le ricerche e consentire al progettista di riportarli sulla propria workstation in modo semplice e autonomo. Il sistema permette inoltre di isolare l'accesso ai dati in base a sofisticati meccanismi di permessi di accesso basato sui gruppi di lavoro.
La soluzione che ho progettato, realizzato ed è in produzione è stata concepita utilizzando il paradigma della programmazione ad oggetti:
L'applicazione permette, prima ancora di archiviare i dati, di modellare la struttura delle classi, dei tipi ed attributi utilizzando solo l'interfaccia WEB. Questa caratteristica ha permesso ai referenti dei vari gruppi di lavoro di modellare in autonomia la struttura dei dati, una caratteristica che è stata molto apprezzata. I dati sono organizzati in una struttura di classi di oggetti. Ogni classe può avere delle sottoclassi che ne ereditano tutte le caratteristiche. Ogni classe al suo interno ha:
L'integrazione con il TSM, ad esempio, è stata realizzata usando il meccanismo generale dei metodi che trattano i dati e che scattano automaticamente prima e dopo ogni operazione di inserimento, modifica o cancellazione, lo si potrebbe definire un semplice plug-in.
Uno dei possibili tipi di dato che un attributo può avere è 'insieme di files'. Al momento dell'archiviazione, che può avvenire per upload diretto o fornendo al server il nome della directory che li contiene (su qualunque macchina raggiungibile in rete dal server), il sistema crea automaticamente degli indici che permettono di eseguire le ricerche in modo efficiente e senza dover richiamare i files da nastro.
Da maggio a dicembre del 2003 sono stato coinvolto in un progetto di migrazione da HP-UX ad AIX del sistema informativo in Montenegro, a Bologna.
In particolare mi sono occupato della schedulazione della attività automatiche dei sistemi utilizzando il TWS (Tivoli Workload Scheduler). In aggiunta a questo prodotto, per colmare le funzionalità da esso non coperte, ho sviluppato lrm (logical resource manager) un programma che consente di sincronizzare le attività su più macchine utilizzando il concetto di 'risorsa logica'.
Da dicembre a maggio del 2004 mi sono occupato, in qualità di capo progetto, della realizzazione di un sito WEB di commercio elettronico. Il progetto è stato sviluppato con tecnologia Java utilizzando WebSphere e DB2.
Nell'estate 2004 ho realizzato per Coop Consumatori Nord Est, con sede a Reggio Emilia, un sito WEB per il monitoraggio e controllo delle code di stampa in rete geografica.
Da febbraio del 2005 a tutt'oggi collaboro con phoenix servizi interbancari con sede a Trento in qualità di consulente specialista di sistemi UNIX.
Ad oggi ho realizzato:
Nel 2008 ho sviluppato un progetto di integrazione tra Active Directory, Domino e AS/400 per la gestione centralizzata degli utenti utilizzando il prodotto Sun Java System Identity Management.
Inserire in questo curriculum la lista del software da me realizzato negli oltre 20 anni di attività sarebbe senz'altro troppo prolisso.
In questa sede ricordo solo alcuni di essi che rivestono grande importanza per la generalità che li contraddistingue:
Applicazioni WEB di carattere generale ed alto grado di utilizzabilità in molti ambienti diversi:
Per ognuno di essi è disponibile documentazione specifica e dettagliata nel sito:
http://mliberi.homelinux.netdove potrete anche trovare una lista molto più completa e dettagliata.