Ici, c’est Paris: SMWCon Fall 2019

Tag

,

foto di gruppo davanti alla Tour Eiffel

Parigi, settembre 2019: un gruppo di persone aspettava l’inizio del nostro intervento… Matteo Busanelli ed io eravamo al SMWCon nella sua veste autunnale, un evento che ogni anno riunisce sviluppatori, utenti, organizzazioni o semplicemente curiosi attorno all’ecosistema di Mediawiki e SemanticMediawiki sulle tematiche di knowledge management.

Imola Informatica da diversi anni utilizza le tecnologie semantiche per la gestione delle informazioni in contesti aziendali di medie/grandi dimensioni in diversi campi di applicazione (Enterprise Architecture, IT Governance, GDPR compliance e altri ancora).

Dopo la prima esperienza di Matteo a San Francisco, la scorsa primavera, ci siamo proposti in questa occasione di parlare di due estensioni alla piattaforma Mediawiki che abbiamo sviluppato per indirizzare due diverse tematiche:

La profilazione di utenti sulla base di determinate proprietà semantiche: Extension:SemanticAuthProfiling

La visualizzazione di dati semantici in diversi formati a partire da interrogazioni in formato SPARQL: Extension:SparqlResultFormat

Queste estensioni sono state rilasciate in modalità open source e sono scaricabili ed usabili gratuitamente. Chiunque fosse interessato a contribuire all’evoluzione di queste componenti, anche semplicemente con suggerimenti o a scrivendo codice, non esiti a contattarci!

Alla conferenza è stato molto interessante condividere con gli altri partecipanti, provenienti da tutta Europa e dagli Stati Uniti, il nostro approccio metodologico e tecnologico e il confronto su problematiche comuni (e possibili soluzioni) che si riscontrano in progetti Enterprise di questa tipologia.

Un altro aspetto che mi piace ricordare è l’ambiente informale e multiculturale che ha avuto il suo culmine quella sera stessa, in un ristorante sugli Champs Elysees, tutti insieme a tavola con un buon bicchiere di vino rosso, rigorosamente francese.

OiLab summer Camp, l’informatica da toccare con mano

Tag

Si è concluso l’Open innovation lab Summer Camp: la prima edizione ha coinvolto, per una settimana, una ventina di ragazzi e ragazze tra i 12 e i 18 anni in attività di gioco e programmazione insieme a tutor e consulenti di Imola Informatica.

I ragazzi hanno potuto scegliere tra diverse attività:

  • sviluppare un gioco online per imparare i principi architetturali di una applicazione a tre livelli;
  • realizzare un cluster di Rancher su Raspberry per lavorare a container e giocare con i principi di alta affidabilità tipica alle infrastrutture di rete moderne;
  • programmare delle macchine Arduino, dotate di sensori per seguire un percorso prestabilito alla massima velocità possibile.

I ragazzi hanno optato quasi tutti per lo sviluppo del gioco online o per la la programmazione delle macchine Arduino. Solo uno ha scelto di lavorare al cluster di Rancher su Raspberry.

attività di programmazione

Il gioco online era una versione leggermente rivista di Slither (http://slither.io/), in cui ogni giocatore comanda un serpente cercando di fargli mangiare piccole caramelle colorate che lo fanno crescere, aumentandone le dimensioni. Muovendosi, ogni serpente ne incontra altri, se avviene uno scontro il gioco termina. Attraverso questa simulazione si sono potuti introdurre temi di grafica, di comunicazione online e di posizionamento vettoriale.

In particolare ho curato le attività di programmazione Arduino. L’obiettivo finale era risolvere il problema follow line, ovvero prendere una macchinina e farle seguire una linea. Si tratta di un caso d’uso in cui il codice ha un impatto immediato nel mondo reale. Si uniscono aspetti di programmazione e oggetti reali che i ragazzi possono toccare con mano, superando così la natura astratta dell’informatica. La soluzione dei problemi non si limita all’analisi del codice e dell’algoritmo applicato, ma passa anche dall’osservazione del comportamento della macchina nel mondo reale. Una curva troppo stretta o le batterie scariche possono mettere in crisi un algoritmo scritto alla perfezione.

test della macchina

I ragazzi hanno vissuto momenti di grande entusiasmo, in cui si sfidavano con le loro auto in gare sul circuito, e momenti di sconforto in cui tornavano al pc dopo aver visto la loro auto uscire, senza nessun apparente motivo.

Il primo giorno il gruppo si muoveva “a due velocità” in quanto alcuni ragazzi sapevano già programmare, mentre altri erano alle prime esperienze. Tuttavia, grazie alla collaborazione reciproca e all’aiuto dei tutor, già dal secondo giorno tutti sono stati in grado di programmare la propria soluzione.

Il primo algoritmo implementato prevedeva l’utilizzo di 2 sensori e la macchina doveva tenere la linea nera tra i due sensori.

Il secondo algoritmo estendeva il precedente, introducendo altri 3 sensori (per un totale di 5). La linea nera poteva danzare sotto i sensori e la macchina doveva comportarsi di conseguenza.

L’ultimo algoritmo era il PID, un algoritmo che cerca di ottimizzare il mantenimento della macchina sulla linea nera lavorando su:

  • misura dell’errore rispetto alla linea ideale;
  • derivata dell’errore rispetto alla linea ideale;
  • integrale dell’errore rispetto alla linea ideale.

Quest’ultimo aspetto lo abbiamo accantonato per lo scarso impatto sul comportamento della macchinina.

Molti ragazzi non avevano idea di cosa siano le derivate e gli integrali. I pochi che conoscevano questi concetti sono rimasti stupiti di come “cose tanto noiose” possano essere così utili e dare risultati così impressionanti.

Per implementare il PID c’è voluto tempo. Il codice era complicato e abbiamo dato molto supporto ai giovani partecipanti. La fatica è stata ripagata già al primo giro in pista: la macchina correva il doppio delle altre.

Abbiamo lasciato a tutti la possibilità di seguire le proprie inclinazioni e qualcuno ha provato altri sensori. In base alle inclinazioni e alle capacità di tutor e studenti abbiamo creato una integrazione via bluetooth  tra appMobile e Arduino. Questa attività non era programmata, ma si è dimostrata molto utile per modificare i parametri del PID, giro dopo giro, senza dover riprogrammare la macchina.

Uno degli aspetti più interessanti del Camp è stato che man mano che si manifestavano esigenze, si aggiungeva ciò che occorreva: tecnologie, algoritmi, matematica, batterie, sensori, etc. Non sempre tutto era già pronto e a disposizione, quindi la sera ci fermavamo per risolvere gap di conoscenza, di materiali oppure problemi hardware delle macchine.

Un bel momento per i ragazzi è stato la consegna delle magliette e degli attestati di partecipazione del primo OiLab Summer Camp. Tutti i ragazzi erano un po’ intimiditi, ma allo stesso tempo contenti e orgogliosi di aver preso parte a queste giornate.

Un altro aspetto, particolarmente gratificante per noi, è che i ragazzi hanno chiesto di andare avanti con altre iniziative del genere. Questo loro riscontro immediato ha messo in evidenza i risultati positivi dell’edizione pilota dell’OiLab Summer Camp. Ora stiamo ragionando su come continuare e migliorare questa esperienza educativa, dal punto di vista organizzativo e logistico, coinvolgendo le scuole del territorio.

foto di gruppo

Perché per un Biomedico è interessante sviluppare software IT?

Cosa fa un futuro ingegnere biomedico a Imola Informatica, una società di consulenza IT per il business? Sembrano due mondi diametralmente opposti, e invece grazie al mio tirocinio ho trovato modo di acquisire le competenze che cercavo.

Sono un laureando di Ingegneria Biomedica all’Università di Bologna. Uscito dal liceo Scientifico-Tecnologico, ho scelto questa branca di ingegneria per il forte carattere interdisciplinare che poteva offrire. Per sua natura, le materie trattate erano principalmente di origine elettronica, ma non mancavano ovviamente nozioni di meccanica, approcci base al management del comparto ospedaliero e anche alla programmazione di base.

Mano a mano che avanzavo nella carriera universitaria e mi informavo sul mondo dell’industria ospedaliera, ho notato come anche questa fosse simile al “normale” mondo business. Il passaggio all’industria 3.0 ha rivoluzionato anche il mondo della clinica e della diagnostica, per esempio tramite tutti gli approcci per bioimmagini, e inevitabilmente vedo che tutto il settore tende a muoversi in direzione dell’industria 4.0.
Continua a leggere

Microservizi: perché dovrebbero interessare anche il business e non solo i tecnici IT

Tag

Con il termine “microservizi” si identifica un nuova tipologia architetturale con la quale progettare applicativi software. È da un po’ di tempo che tanti articoli di informatica e blog dedicano spazio a questa tematica: digitando la parola microservizi su un qualsiasi motore di ricerca si possono trovare moltissimi contributi tecnici. Tipicamente viene analizzato un aspetto tecnico identificandone i vantaggi e gli svantaggi. Meno frequenti invece sono gli interventi che cercano di fornire una visione di prospettiva su come questo nuovo approccio innovativo alla creazione di software possa impattare sensibilmente il mondo del business, in senso generale.

Vediamo assieme perché i microservizi sono un elemento importante per le future opportunità di business.

Viaggiatori digitali

Il termine digitalizzazione è molto utilizzato in questo periodo. Bene o male, se è chiaro a tutti che digitalizzare attività e processi di business è una cosa importante, forse è meno chiaro che cosa fare esattamente e quali progetti intraprendere da subito. L’offerta di tecnologie informatiche e digitali in genere è infatti talmente ampia e talmente variegata che diventa veramente molto difficile fare la scelta migliore. È un po’ come entrare in un grande bazar ricco di mercanzie ed avere solamente un euro da spendere. Si deve scegliere cosa acquistare, ma cosa?

Ogni negoziante vi fa entrare nel proprio negozio ricco, dice lui, di oggetti utilissimi da acquistare, e voi non potrete fare altro che fidarvi di quello che più vi convince. Come fare allora?
Continua a leggere

OiLab Summer Camp per ragazzi e ragazze

Tag

,

A Imola è arrivata la prima edizione di OiLab Summer Camp, una settimana in cui proponiamo informatica avanzata a ragazzi e ragazze di età compresa fra 13 – 17 anni.

Dal 18 al 24 luglio, nella sala corsi di Imola Informatica, i giovani protagonisti del Camp possono scegliere se seguire una delle tracce di attività o se spaziare ed esplorare, in base a interessi e inclinazioni personali.

Locandina dell’evento Open Innovation Lab Summer Camp 2019

Le attività del Camp
Sono 3 i filoni tematici di attività in cui i ragazzi si debbono cimentare.

  • Sviluppo di un gioco online per imparare i principi architetturali di una applicazione a tre livelli.
  • Cluster di Rancher su Raspberry per lavorare a container e conoscere i principi legati alle infrastrutture di rete moderne ad alta affidabilità.
  • Macchine Arduino, dotate di sensori e programmate per risolvere problemi complessi, come il follow-line, e per implementare i sistemi di sicurezza tipici delle automobili moderne (cruise control, parcheggio automatico, etc.).

Difficoltà e guide

I ragazzi non hanno alcun obbligo di risultato: sono infatti liberi di tracciare una strada e di percorrerla, con creatività e divertimento.

Il livello di difficoltà è alto, ma il supporto non manca. Accanto ai ragazzi ci sono infatti persone esperte pronte ad aiutarli nelle prove e sulla parte tecnica. È raro trovare Camp che mettono a disposizione professionisti e temi IT reali per assecondare gli interessi di ragazzini appassionati di informatica.

Il modello è mutuato dagli appuntamenti di CoderDojo, attività che a Imola Informatica organizziamo e promuoviamo da 5 anni.

 

OiLab e studenti

Abbiamo aperto l’OiLab Summer Camp anche a ragazzi delle scuole superiori e del primo anno di università, in particolare, a chi ha lavorato alle esercitazioni durante l’alternanza scuola-lavoro o come tutor di CoderDojo. Imola Informatica offre loro una alternativa al classico lavoretto estivo e un duplice ruolo: questi ragazzi possono essere, al contempo, una figura guida sui temi che già conoscono e allievi che si avvicinano a temi più complessi.

Il 2019 è l’anno zero dell’OiLab Summer Camp. Dopo aver sperimentato questo format, il nostro obiettivo è di far crescere questa esperienza, insieme alle scuole e ad altre aziende IT del territorio imolese.

Blockchain e integrazione IT: quali scenari offre la tecnologia?

Tag

, , , , , ,

* Autori: Emanuele pagliara, Michele Cappelletti

 

Le blockchain stanno rapidamente prendendo piede come architetture rivoluzionarie che aprono la strada a nuove opportunità di business basate su interazioni sicure e decentralizzate.

Nell’ultimo periodo si è lavorato molto nel cercare di integrare all’interno dei processi business queste architetture, per cercare di sfruttarne al meglio le qualità, in particolare l’immutabilità delle transazioni e la decentralizzazione delle informazioni.

Questo articolo si focalizza sulle modalità di integrazione software con la blockchain, analizzandone le peculiarità. Ogni possibile soluzione di integrazione viene categorizzata e valutata secondo una serie di requisiti; lo scopo è intuire quali possano essere i contesti di maggiore applicabilità, dei quali riportiamo alcuni esempi in scenari molto diversi tra loro.

 

Modalità di integrazione tra client e Blockchain

La blockchain è di fatto una rete composta da nodi server che costituiscono il punto di ingresso per software che desiderano interagire con la blockchain con il ruolo di client. Un nodo è un software che implementa tutte le funzionalità relative alla blockchain, in particolare è in grado di mantenere tutto lo storico dei blocchi e delle transazioni ossia la blockchain e ha la capacità di comunicare nel protocollo nativo con gli altri nodi della rete.

Le principali tipologie di client software sono le seguenti:

  • Full client: software che utilizza un nodo dedicato della blockchain, è la modalità con maggiori funzionalità ma anche un maggior impiego di risorse. Fondamentale in applicazioni che necessitano di massima verificabilità delle informazioni scambiate;
  • Lightweight client con accesso diretto alla blockchain: si tratta di una modalità innovativa che sfrutta una validazione parziale delle informazioni scambiate, permette una connessione diretta ai nodi della blockchain ma si adatta all’utilizzo su dispositivi dalle ridotte capacità;
  • Lightweight client con accesso intermediato alla blockchain: il software client non si connette alla blockchain, bensì utilizza funzionalità intermediate da un server dedicato o di terze parti;

Continua a leggere

Sicurezza e password degli utenti: anatomia di un data breach

Tag

, ,

Nel nostro intervento al Devoxx Marocco di Novembre 2018 (per consultare il documento in inglese: Secure Software Development Lifecycle Demystified), abbiamo esordito fornendo al nostro pubblico una cifra: 439 milioni di dollari.

Questa è la stima (per difetto) del costo del furto di dati che ha subito Equifax Inc., una società americana di monitoraggio del credito. Nel caso di Equifax, i dati rubati comprendevano i dati personali di circa 145 milioni di cittadini americani: tra i dati trafugati vi erano i codici personali dell’assistenza sociale (SSN), che negli Stati Uniti hanno il valore legale di una firma, essenziali per l’acquisto di beni o attivazione di prestiti.

Equifax non è un caso isolato: quotidianamente una miriade di siti web e società sono vittime di reati informatici.

La preda più ambita in questi crimini sono tipicamente i numeri di carte di credito e le credenziali degli utenti. Secondo una stima di IBM, il costo medio di ogni data breach (il furto di dati da parte di criminali informatici) è stato nel 2017 di ben 3,87 milioni di dollari: costi che tra gli altri possono includere le operazioni di correzione e messa in sicurezza, mancati introiti per indisponibilità dei sistemi, risarcimenti danni, perdite di valore sul mercato azionario, sanzioni e danni di immagine. Questi costi, anche grazie alla recente normativa GDPR, sono destinati a lievitare sensibilmente qualora non vengano prese per tempo le opportune contromisure (il GDPR prevede multe fino a 20 milioni di € o fino al 4% del fatturato annuo globale delle aziende).

Le analisi delle informazioni sottratte negli attacchi informatici sono di fondamentale importanza anche per la protezione dei sistemi: nelle attività di cyber threat intelligence, cioè nelle attività di ricerca e analisi delle informazioni, possono aiutare a comprendere ed individuare le minacce emergenti, così da attuare politiche di protezione adeguate. Continua a leggere

La minaccia dei malware bancari

Tag

,

Oggi i sistemi bancari sono minacciati costantemente da software malevoli, il cui scopo principale è quello di compromettere la sicurezza dei conti degli utenti.

Una delle famiglie di malware più diffuse è quella di ZeuS / Panda, un vero e proprio kit digitale multifunzione proveniente dai paesi dell’est Europa. Date le sue capacità, tecnicamente può essere definito un RAT (Remote Access Trojan), ovvero un software malevolo progettato per riuscire a prendere il controllo di un sistema remoto.

Cyber Theft Ring

Infografica dell’FBI su malware come ZeuS

ZeuS può essere considerato una vera e propria piattaforma di attacco digitale: acquistabile sul dark web a costi variabili da pochi euro fino a qualche migliaio a seconda delle versioni e delle funzionalità incluse, permette a un attaccante di creare quello che in gergo viene definito trojan horse (“cavallo di Troia”), ovvero un programma malevolo occultato all’interno di file apparentemente innocenti, quale ad es. un file Word.
Continua a leggere

Warm Wallet: architettura di wallet digitale per servizi IT basati su Blockchain

Tag

, , ,

* autori: Michele Cappelletti, Emanuele Pagliara

 

Le blockchain stanno rapidamente prendendo piede come architetture rivoluzionarie, aprendo la strada a nuove opportunità di business basate su interazioni sicure e decentralizzate.

I wallet sono lo strumento con cui l’utente si interfaccia con la blockchain, forniscono le funzionalità per gestire il saldo e custodiscono le chiavi necessarie alla firma digitale delle transazioni.

Per i wallet esistono differenti tipologie di architetture e diversi componenti hardware/software disponibili sul mercato, con diversi livelli di accessibilità e affidabilità.

In questo articolo sono analizzati i diversi tipi di wallet e viene proposta un’architettura di wallet che unisce l’accessibilità e i benefici di un wallet online con la sicurezza dei cold storage basati su sistemi disconnessi dalla rete.

Schema di interazione tra utenti e blockchain

 

Wallet

Un wallet è il software che consente di interagire con una o più blockchain. Consente inoltre di eseguire e ricevere transazioni, visualizzarne lo stato e tenere traccia del proprio saldo. Continua a leggere

Le nuove sfide della sicurezza informatica

Tag

,

Discutendo di sicurezza, in un modo o nell’altro mi ritrovo spesso ad esprimere un concetto: molti dei problemi derivano dal fattore umano, concetto che in inglese viene sintetizzato con l’acronimo PEBKAC, Problem Exists Between Keyboard And Chair.

Tutti abbiamo visto film come Codice Swordfish: anche con una pistola puntata alla tempia (accompagnata magari da distrazioni decisamente più gradevoli), un hacker esperto è in grado di bucare un qualsivoglia sistema, digitando pochi comandi alla tastiera… Ma è realmente così?

social engineering

In realtà, uno dei vettori più usati negli attacchi informatici è il social engineering, ovvero la manipolazione del fattore umano: sfruttando alcune peculiarità del carattere e del pensiero umano (empatia, curiosità, paura o anche solo bisogni materiali, come il sesso), chi attacca riesce ad avere accesso alle informazioni più disparate con uno sforzo minimo.

La versione più moderna del social engineering sono le mail di phishing: se mi arriva una mail dalla banca che mi dice che per problemi di sicurezza devo assolutamente accedere al mio Internet banking, quale sarà la mia reazione? La paura suscitata potrebbe spingermi a farlo, senza preoccuparmi della bontà della richiesta.

Per i più curiosi, uno dei libri più importanti sulle tecniche usate nel social engineering è L’arte dell’inganno di Kevin Mitnick, importante hacker-cracker statunitense degli anni ’90.
  Fonte: SMBC Comics

Continua a leggere