Il core del nuovo ShaCo – piccola intervista a Piergiorgio Vagnozzi

A volte mi rendo conto di essere una presenza un po’ ingombrate. Voi tutti siete abituati a vedermi su YouTube, su PolyShaper Italia e quindi può trasparire che solo io mando avanti tutta la baracca. Ovviamente non è così, anzi se la baracca funziona, e sta funzionando bene, è grazie a tutte le persone che mi aiutano a far si che PolyShaper cresca! Per questo motivo ho pensato di fare una piccola intervista ad uno degli sviluppatori del nuovo ShaCo in particolare a Piergiorgio Vagnozzi che si è occupato dello sviluppo di quello che è chiamato backend, ossia ciò che sta dietro l’interfaccia utente. Nello specifico Piergiorgio si è occupato del calcolo del percorso dell’utensile, quello che attualmente viene fatto su Inkscape dall’estensione PolyShaper (2D machine) che tutti conoscete. 

Piergiorgio, tu sei un informatico con anni di esperienza nel mondo del lavoro, dicci qualcosa di più su di te e sulle tue esperienze lavorative.

Innanzitutto ti ringrazio per avermi dato la possibilità di partecipare ad un progetto cosi innovativo, sfidante e divertente al tempo stesso. Riguardo me, posso dire che ho 3 grosse dipendenze nella mia vita: mia moglie, l’informatica ed il body building. Ho avuto il mio primo computer, un MSX all’età di 10 anni, ossia 32 anni or sono ed è stato amore a prima vista. Ho iniziato con lavori di automazione industriale, per passare dopo un paio d’anni a collaborare con l’IZS di Teramo per la realizzazione di dispositivi RFID per l’anagrafe bovina nazionale. Successivamente sono passato allo sviluppo di software di contabilità per enti pubblici e grandi aziende private. Dopo anni passati a fare programmi di contabilità, tramite il FabLabAQ ho fatto la conoscenza di PolyShaper ed in breve tempo è iniziata per me una nuova avventura. Per quanto riguarda la mia vita privata sono un ossimoro vivente: sono un nerd fino al midollo, fan dei giochi di ruolo e della saga di Assassin’s Creed, ma allo stesso tempo dedico molto del tempo libero ai i pesi al punto di essermi costruito una palestra in casa.

Veniamo al progetto su cui hai lavorato. Quali erano le criticità dell’estensione PolyShaper su Inkscape?

Sin dall’inizio il progetto è stato sfidante sotto molti punti di vista. In primo luogo dovevo “convertire” un software sviluppato da Tomassino Ferrauto, che oltre essere una stupenda persona è anche un professionista molto preparato, quindi il rischio di fare un brutta figura era dietro l’angolo. In secondo luogo il nuovo software doveva essere monolitico, ossia non poteva utilizzare funzionalità esterne come quelle fornite da Inkscape e pertanto era richiesto lo sviluppo di intere funzionalità ex-novo come lettura/scrittura SVG, trasformazione delle curve in sequenze di punti, ecc. Infine il tutto doveva essere fatto in C/C++ un linguaggio altamente efficiente, ma altrettanto ostico. Per fare un paragone tra un qualsiasi altro linguaggio ed il C è come confrontare un moderno SUV con una F1: le prestazioni sono elevatissime ma tutto il controllo è demandato al pilota che non ha alcun “paracadute”. Sinceramente, nei primi giorni pensavo di essermi imbarcato in qualcosa di più grande di me, ma alla fine, con l’aiuto di Tommassino e Flavio sono riuscito a portate a casa un risultato più che soddisfacente.

Come hai risolto il problema sostanziale della velocità di calcolo del percorso? Ci sono stati più step di miglioramento?

Roma non è stata costruita in un giorno e cosi anche il nostro software. Nella prima stesura del programma mi è bastato che svolgesse lo stesso compito del plugin attuale, senza badare alle prestazioni. Una volta superato questo scoglio mi sono concentrato sull’ottimizzazione.  In prima battuta ho pensato a ottimizzazioni del codice.  Successivamente ho usato dei trucchi matematici, complice anche il fatto che all’epoca ero fresco degli esami di Analisi Matematica e Geometria/Algebra Lineare. Infine ho applicato il detto romano ‘divide et impera’: In sostanza ho diviso il problema in tanti sotto problemi da elaborare in parallelo. Facendo un parallelo con lo spostamento di un mucchio di mattoni: mettiamo che un forzuto possa spostare 4 volte il carico di un uomo normale. In questo caso 4 uomini normali finirebbero prima il lavoro perché riuscirebbero a ridurre il tempo morto tra i “viaggi”.

Quali sono i prossimi progetti per PolyShaper su cui dovrai mettere le mani? Qual è quello che ti appassiona di più e perché?

Flavio, mi poni ogni giorno nuove sfide. Attualmente sto mettendo le mandi al cofano di ShaCo, ma in scaletta ho da fare varie modifiche al software di generazione del GCODE al fine di poter gestire il piatto rotante e poter generare degli oggetti 3D. Tuttavia il progetto che ritengo più stimolante ed affascinate è la scrittura del firmware per la nuova scheda, perché in poche parole si tratta di fare una versione ex-novo di GRBL. Per un ingegnere informatico un’opportunità del genere è simile a quella concessa ad un architetto che può disegnare una città da zero. Ti ringrazio, e ringrazio l’azienda in toto, per avermi un’altra volta accordato fiducia. Spero di meritarla.

Oltre gli aspetti tecnici, cosa pensi del progetto PolyShaper ora che fai parte integrante del team (occhio a come rispondi 😀 )

PolyShaper è qualcosa di unico perché solitamente le aziende sono fatte o da “sognatori privi di conoscenze tecniche” oppure da “professionisti privi di fantasia”. In Polyshaper invece ho trovato inventori in grado di realizzare i propri sogni perché alle spalle hanno anche una solida preparazione accademica ma soprattutto perché è composta da persone con cui desideri farti una birra.

Lascia un commento

Il tuo indirizzo email non sarà pubblicato.