Mi presento ...

Mi chiamo Marco Piumi, sono felicemente sposato con mia moglie Rita ed abbiamo due meravigliosi bambini (Damien e Kilian), la mia attività è quella di realizzare software per piattaforme Windows e Web.
Sono co-titolare della società di software Osed Srl con sede a Torino, dove vivo e sono nato.

Ho studiato come Perito Chimico e poi 2 anni al Politecnico di Torino, ed infine ho iniziato a lavorare.
La passione per tutto ciò che è programmabile nasce alle superiori, quando riuscivo a creare giochini sulla mia calcolatrice Texas Instruments.

Sono passato a calcolatrici più evolute con linguaggio Basic, e poi ai mitici Commodore Vic20 e Commodore 64.
Programmavo in Basic soprattutto per verificare i risultati del corso di Analisi Matematiche al Politecnico.
Oramai usavo i comandi Peek e Poke per creare grafici da equazioni di vario tipo.

 




Si programmava con soli 38KBytes .... ed anche programmi e giochi dovevano girare con quella memoria !!!

Il grande salto di qualità l'ho fatto quando, dopo che avevo iniziato a lavorare, ho acquistato il Commodore Amiga 2000, un vero computer con finalmente grafica e potenza elaborativa eccezionale per quei tempi !!!


   

Con questo computer ho iniziato ad usare la nuova interfaccia grafica a finestre, con il mouse come puntatore !!!
Solo il Macintosh della Apple era superiore, ma era in toni di grigio, mentre qui si avevano a disposizione addirittura 4096 colori !!
Per programmare su questo computer ho iniziato ad imparare il Linguaggio C, che permetteva di avere la potenza di un linguaggio macchina e la semplicità (relativa) di un linguaggio moderno.
Sfruttando queste conoscenze acquisite con l'Amiga, sul lavoro cominciavo ad esplorare il sistema operativo Unix e creare le prime applicazioni in linguaggio C, il linguaggio base di quel sistema operativo.
Non era certo facile programmare tra editor di base come vi o vedit, e impazzire con i comandi da tastiera per compilare.
Questo era quello che passava il convento allora, per cui c'era poco da fare ... imparare ed adattarsi !!


Nel frattempo qualcosa cambiava anche nel mondo dei Personal Computer, che a poco a poco aumentavano la loro potenza fino ad affiancarsi ai sistemi professionali nel mondo del lavoro.
Anche qui mi sono fatto delle piccole esperienze di programmazione con database come Borland Paradox e DBIII/DBIV, ma le esperienze non sono state positive, così come piccoli programmi realizzati in C per MS-DOS, pur con librerie interessanti sia per l'accesso ai dati che per l'interfaccia grafica: troppi i problemi di dati persi o di difficoltà per gli utenti.


La grande svolta si ha finalmente con le prime interfacce grafiche per il mondo DOS, come Windows 3.1 che finalmente permetteva di usare finestre e puntare con il mouse, anche in quel mondo fin lì relegato ad una logora interfaccia a caratteri.
Con esso, mi interessai a vari linguaggi di programmazione, il primo fu il Linguaggio C++, una versione del linguaggio C ad oggetti. In quel periodo nascevano i primi linguaggi ad oggetti per i programmatori professionisti, quello che aveva avuto più successo in un certo periodo fu Delphi della Borland, rivale storica allora della Microsoft.
Il linguaggio ad oggetti ed il suo paradigma, permettevano finalmente di ragionare nella programmazione per caratteristiche naturali, potendolo rapportare ad oggetti del mondo reale e creando di conseguenza modelli astratti.
Molto utile in realtà complesse come le interfacce grafiche, ma anche per applicativi particolarmente complessi.
Permette di concentrarsi su un singolo componente alla volta, pensando solo in termini di proprietà, di metodi e di ereditarietà.
Ho sempre pensato che un programmatore di linguaggi ad oggetti, avesse come cliente non quello reale, fisico del mondo lavorativo, ma i suoi colleghi, per cui creare oggetti da riutilizzare ogni volta fosse necessario.

Il linguaggio C++ è molto potente, ma come per il C, non molto sicuro !
Ricordo una volta come un mio errore in un programma in C, avesse azzerato completamente la batteria tampone del mio PC, non riconoscendo più l'Hard Disk presente !!!!
Oltretutto, con le moderne interfacce grafiche, la complessità era tale che per creare anche una sola piccola finestra, occorrevano un centinaio di righe di codice !!!
Molto bello, ma poco redditizio per chi deve produrre velocemente software da vendere ai propri clienti !!!

Ed è qui che ho scoperto un nuovo linguaggio creato da Microsoft, il Visual Basic, un linguaggio molto meno potente in termini di velocità elaborativa, ma molto molto più redditizio in fase di sviluppo, test e consegna del prodotto finale !!!

Il Visual Basic, come spiega il suo nome, era un Basic per l'interfaccia grafica Windows, permetteva con pochi clic di realizzare una finestra, trascinando oggetto della toolbar di creare oggetti grafici e di input su di essa e con poco codice di creare l'applicazione come si desiderava. Era ciò che serviva in quel momento, uno strumento visuale, facile e veloce per creare applicazioni per il mondo Windows.
Con esso costruii prima un piccolo prototipo utilizzando MS Access come database di supporto, quindi visto l'ottimo risultato ottenuto e la robustezza dell'applicazione, cominciai a realizzare un Gestionale di base completamente in VB con interfaccia grafica. Allora erano veramente pochini i software gestionali realizzati per tale interfaccia e questo servì di base per futurim applicativi sempre più complessi e potenti.



Nel frattempo miglioravano i sistemi operativi (uscì Windows 95, il primo OS di Microsoft veramente grafico, prima c'era sempre MS-DOS sotto ...), miglioravano le versioni di Visual Basic passando da una ottima versione come la 4, all'ultima la 6).
Questi miglioramenti permettevano di realizzare software più potente e sicuro, serviva solo un database migliore di Access soprattutto nella gestione di molti dati e della concorrenza.
Quello che serviva lo trovai in MS SQL Server, che finalmente portava la potenza di un DB completo nel mondo Windows, facendo finalmente concorrenza ad Oracle ed Informix.
La prima versione fu un disastro, ma dalla release 6.5 è stato un susseguirsi di miglioramenti, di incrementi di potenza tali da soppiantare perfino i rivali più accreditati.
Oramai il mondo dei PC aveva distrutto il mondo dei Mini e dei Mainframe, il costo di acquisto, di manutenzione e di sviluppo di questi non era più plausibile e le reti di Personal Computer come Clienti gestite da potenti Server con sistemi Windows presero il sopravvento.



Serviva una maggiore potenza e sistemi operativi sempre più complessi, si affacciarono sistemi veramente orientati ad oggetti come Windows 2000 dopo di che si rendeva necessario qualcosa di più performante ed efficiente come programmazione.
Nacque il Framework .Net di Microsoft con il nuovo Linguaggio C# (C Sharp), che permetteva di avere la potenza del linguaggio C++ orientato ad oggetti, la semplicità del Visual Basic, e la bellezza di Delphi.
Questo è il linguaggio con cui lavoro oggigiorno, il più bello e potente fino ad esso utilizzato.
Sembra di lavorare in C o in C++, con le protezioni di un Framework che impedisce di scrivere in sezioni di memoria protette o utilizzate da altri applicativi.
Permette di avere una potenza elaborativa senza pari e di programmare per Windows e per il Web.

Eh, si perché nel frattempo Internet si era presa la scena assoluta del mondo della programmazione e dell'Information Technology !!!
Internet ha rivoluzionato il nostro modo di essere, di informarci, di acquistare, di dialogare con il prossimo, di vedere video, sentire musica e prossimamente tutto ciò che sarà su una macchina dotata di potenza elaborativa sarà connessa ad esso e dialogherò tramite il suo protocollo !!!
Impegnato come ero nello scrivere applicazioni per il mondo Windows, avevo trascurato lo sviluppo per il web.
Sarà che trovavo e trovo tuttora primitivi alcuni linguaggi di scripting come era il VBScript o JavaScript !!!
Fino a che non si è sviluppata per il web, una tecnologia adeguata al mio modo di intendere la programmazione, non ho intrapreso alcuno sviluppo e ricerca.

La grafica sui computer mi ha sempre affascinato, sin dai tempi dell'Amiga, ma l'esigenza di sviluppare software per ambienti seriosi come quello delle aziende produttive e di servizi, mi ha costretto a sviluppare solo nelle interfacce grafiche intuitive ed eleganti, il mio senso estetico della Computer Graphic.
Ma il mondo dello sviluppo per il web e soprattutto per i siti, potevano permettermi di riaffacciarmi in un mondo fatto non solo di codice, di routines, di algoritmi, ma anche di oggetti grafici piacevoli, di immagini, video ed altro ancora.


Ho cominciato quindi a sviluppare per applicativi web aziendali con la piattaforma Microsoft Asp.Net su server Windows, cercando di imparare HTML, JavaScript, CSS da integrare con le mie conoscenza di database, logiche di programmazione, interfacce utenti e quant'altro avevo appreso in molti anni di sviluppo.
Quello che avevo sempre notato, era la scarsa affidabilità di molte applicazioni sul web, input dei dati macchinosi, scarsi controlli sull'input, aggiornamenti dei dati che non sempre andavano a buon fine, velocità scarsa.
Quello che invece sto cercando di fare è sviluppare per il web con la stessa affidabilità dell'aggiornamento dei dati delle applicazioni professionali desktop, permettere una completa personalizzazione da programma dell'interfaccia, dei menu, delle pagine web e dei contenuti.




Il primo risultato é stato lo sviluppo di applicazioni web, programmi gestionali e non in ambiente web.
Il nome di questa piattaforma applicativa é Bolero@web.
Da alcuni anni ho realizzato un buon numero di applicazioni per alcuni clienti, il prossimo passo sarà la realizzazione di un programma di Contabilità Generale.

Il secondo risultato, è questa piattaforma applicativa per la realizzazione di siti web, costruito tramite una archiettura da me realizzata, che consente di creare siti web per hobby o professionali.
La velocità dipende molto anche dal server che ospita l'applicazione, ma questa è la prima versione di questo software per la realizzazione di siti web completi, affidabili e professionali.
Per approfondire come é realizzata la struttura di questa applicazione basta andare alla pagina Principi di Base di questo sito.

Ultimamente ho anche realizzato una App in ambiente Android per un cliente.
E' una Gestione Ordini Agenti che lavora in modalità disconnessa e che si collega al server web per sincronizzare i dati.
E' stata una nuova sfida, imparare da zero un nuovo ambiente operativo, anche se grazie alla piattaforma Xamarin ho potuto sfruttare le conoscenze del linguaggio e dell'ambiente di sviluppo (C# e Visual Studio).




Anche questa sfida è stata vinta, poichè l'applicativo, con tutte le limitazioni dell'ambiente tablet, funziona da più di un anno e consente di caricare ordini e spedirli tramite web all'azienda.