Le applicazioni sviluppate dalla eNTiDi spaziano da software di supervisione in C costruite su stack GTK+ a programmi di movimentazione torni su controlli numerici,  da applicativi gestionali per la generazione automatica di disegni tecnici a siti web basati su stack LAMP. Il background storico è l'automazione sicché il software sviluppato è solitamente riferito in qualche modo al settore industriale.

Open source

Il software prodotto dalla eNTiDi è software libero e viene usualmente rilasciato al cliente sotto licenza GPLv2. Vogliamo garantire che per il nostro software le seguenti libertà vengano rispettate:

  • libertà di eseguire il programma per qualsiasi scopo;
  • libertà di studiare il programma;
  • libertà di ridistribuire copie del programma;
  • libertà di modificarlo e di rilasciare le proprie modifiche.

I quattro punti di cui sopra identificano le libertà fondamentali che un software deve avere per essere considerato libero e la licenza sotto cui rilasciamo il nostro codice è una licenza open source. Scopi e definizione di software libero e open source non sono equivalenti ma quello che importa alla eNTiDi è presente in entrambe: vogliamo che il nostro lavoro sia scelto in libertà, non vogliamo vincolare il cliente a doverci scegliere. Consideriamo anzi che l'uso di formati proprietari (che costringono gli utenti a dover dipendere da un programma, da un sistema operativo, da una specifica direttiva aziendale) una scelta irrazionale, dovuta soprattutto a disinteresse o disinformazione.

Trasparenza

Un altro aspetto tenuto in considerazione alla eNTiDi è la trasparenza, termine piuttosto abusato in ambito commerciale ma che qui usiamo in declinazione tecnica.

Per ogni nuovo progetto, sia esso un sito o un programma macchina, viene creata una nuova voce privata nel bug tracker. Qui sarà consultabile il codice associato al progetto (tutto il software è gestito in repository git) e si potranno vedere i cambiamenti apportati, le motivazioni, le date... la modifica di ogni singola linea verrà registrata. In aggiunta a ciò, sarà disponibile il tracker vero e proprio (una specie di forum) dove potranno venire inoltrate le richieste di nuove feature, le comunicazioni di bug ed ogni altra informazione legata al progetto in questione.

Ad ogni tracker saranno abbinati uno o più account, a seconda delle esigenze del cliente, per poter aver accesso in lettura e scrittura a queste informazioni. Ciò consentirà di seguire passo-passo lo stato di avanzamento dei lavori, di tener traccia delle comunicazioni, di avere un promemoria delle cose da fare.

Per avere un esempio di come funzionano i bug tracker potete consultare quelli pubblici, per esempio a quello della ADG. Nella realtà questa modalità di interazione ha riscosso uno scarso successo ma siamo convinti che la strada sia quella giusta e che il tempo ci darà ragione.

Modalità di sviluppo

Quando possibile lo sviluppo avviene su sistemi GNU/Linux, tipicamente su distribuzioni Archlinux, Slackware e Xubuntu. Se l'applicazione deve essere eseguita su piattaforme Windows, l'approccio prediletto è il cross-porting, ossia lo sviluppo e collaudo viene eseguito sui sistemi usuali, ove risiedono il sistema operativo e i tools conosciuti, mentre la generazione dell'eseguibile finale, insieme all'eventuale programma di installazione, avviene ricompilando i sorgenti con compilatore e librerie fornite dalla toolchain mingw-w64.

A tal fine è mantenuto il progetto aur-fedora-mingw-w64, il porting dei pacchetti essenziali al cross-building di progetti GTK+2 e GTK+3 da Fedora (che attualmente sembra possedere la toolchain mingw-w64 più tecnologicamente avanzata ed aggiornata) ad Archlinux.

Progetti pubblici

Alcuni progetti non strettamente legati al singolo cliente sono pubblici e vengono, per vari motivi, rilasciati sotto licenze differenti. Questo l'elenco dei principali progetti pubblici, comunque consultabili nel bug-tracker:

ADGADG
Canvas grafico non interattivo basato su cairo e GObject, progettato per la generazione automatica di disegni tecnici in due dimensioni; una plausibile alternativa ai CAD parametrici. Rilasciato sotto licenza LGPLv2.1.
ADGNtdIsp
Programmatore seriale multiprotocollo per dispositivi embedded, tipicamente schede basate processori ARM. Il progetto dispone di 3 layer di front-end ben delineati: una libreria software (per usare il progetto da altri progetti), un programma a linea di comando (per eseguire le operazioni via script) e un'interfaccia grafica (per consertirne l'uso agli utenti convenzionali). Rilasciato sotto licenza LGPLv2.1.
Estensioni per SilverStripe
Set di moduli, temi ed estensioni in genere da applicare a SilverStripe per agevolare lo sviluppo di siti istituzionali e per migliorare l'integrazione con strumenti di sviluppo software. Rilasciato sotto licenza BSD semplificata, come il SilverStripe stesso.
GContainer
Addendum per GLib che generalizza le relazioni tra oggetti contenitore e figli ricalcando da vicino il comportamento di GtkContainer. La proposta di inclusione in GObject è stata rifiutata perché la riduzione di ogni tipo di relazione all'approccio usato da GtkContainer è stato considerato troppo restrittivo. Rilasciato sotto licenza LGPLv2.1.
GTK2panelGTK+2 panel
Un pannello utente altamente personalizzabile (ma non in run-time) interamente basato sullo stack GTK+, una comoda alternativa per sistemi embedded e per macchine con software dedicato dove le risorse sono limitate e l'utente non deve modificare l'interfaccia. Rilasciato sotto licenza LGPLv2.1.
NtD system
Componenti addizionali per GTK+ (led, pulsanteria, manometri...) e acquisizione dati (provenienti da PLC o CN) attraverso differenti protocolli: questo progetto è attualmente in stallo. Rilasciato sotto licenza LGPLv2.0.
TiPTiP
Preprocessore dinamico usato per la generazione rapida di applicazione web; la sua struttura modulare consente una facile personalizzazione ed implementazione di nuovi componenti: questo progetto è attualmente in mantenimento e non è prevista l'aggiunta di nuove funzionalità. Rilasciato sotto licenza BSD semplificata.

eNTiDi logoeNTiDi software
Software per l'automazione industriale

via Conciliazione, 13
 25039 Travagliato (BS)

Telefono: 366 3206501
E-mail: ntd@entidi.it
PEC: entidi@mlcert.it

 Partita IVA: 02909410983