Blog

Riguardo l'autore

Redazione Dasir

Sviluppiamo prodotti software e web con approccio sartoriale. Il nostro core business è sviluppare applicativi web o software avveniristici e trasformarli in start-up e brand di successo.

L'autore ha scritto

FutureFair: rinnoviamo la partecipazione all’appuntamento di fine anno della Apple Developer Academy

FutureFair: rinnoviamo la partecipazione all’appuntamento di fine anno della Apple Developer Academy

Anche quest’anno, noi di DasirTech, abbiamo partecipato al Future Fair, presso il Polo Universitario di San Giovanni a Teduccio della Federico II. Il Career e App Presentation Day di fine anno, tenutosi il 20 e il 21 giugno, consente agli studenti di presentare le App e i Progetti svolti durante i nove mesi di percorso formativo a più di 100 tra aziende ed investitori invitati all’evento. La manifestazione si è aperta con un convegno introdotto dal discorso di Giorgio Ventre, direttore scientifico della Apple Developer Academy. Successivamente sono stati presentati i progetti: Barefoot College experience e Ubuntu Pathways, due importanti lavori portati avanti dagli studenti «senior» dell'Academy con cui si coniuga tecnologia e sociale per la risoluzione di problematiche in paesi meno sviluppati come India e Sudafrica. La mattinata è poi proseguita con la presentazione dei tre progetti più meritevoli dell’anno 2019: Ever Portal: un mobile game dalla grafica rétro in pieno stile roguelike. Colors keeper: un'app in realtà aumentata per insegnare il pensiero computazionale ai bambini. Shirin: che segnala tentativi di aggressione ad amici e autorità competenti usando il machine learning. Le conclusioni del convegno sono state affidate a Gordon Shukwit, direttore Apple Information Technology and Learning Technologies. Nel pomeriggio, e durante tutta la seconda giornata, si sono tenuti gli incontri tra ragazzi e aziende dove, i team di lavoro dell’Academy, hanno presenteranno se stessi e le loro creazioni alle aziende interessate ad integrare questi talenti nei propri team. Un momento di confronto in pieno stile DasirTech dove il nostro CEO Salvatore Rullo, in compagnia di alcuni colleghi, ha potuto confrontarsi con tanti giovani entusiasti e talentuosi, espressione del polo d’eccellenza ICT che negli ultimi anni si sta sviluppando alle porte di Napoli.

Ad un passo dal lavoro: l’importanza dell’alternanza scuola-lavoro

Ad un passo dal lavoro: l’importanza dell’alternanza scuola-lavoro

L'alternanza scuola-lavoro è stata una novità introdotta e resa obbligatoria dalla riforma della Buona Scuola apportata dalla legge 107/2015. Lo scopo principale di questo percorso di formazione è di avvicinare gli studenti al mondo del lavoro, in maniera graduale e strutturata. Grazie al supporto delle aziende, gli studenti possono intraprendere un percorso sia teorico che pratico, in classe o direttamente presso l’azienda, volto ad acquisire le nozioni e le competenze necessarie per effettuare una scelta più consapevole sul proprio futuro lavorativo. Questa è una scelta di fondamentale importanza per i ragazzi e accompagnarli nella decisione deve essere un compito anche delle nostre istituzioni. L’alternanza scuola-lavoro si differenzia dallo stage perché è una vera e propria metodologia didattica e non un’esperienza circoscritta nel tempo. Nel tempo, non sono mancate problematiche e discussioni sul tema che hanno portato il Governo a rivedere in parte la riforma. Con la nuova legge di bilancio 2019, infatti, l’alternanza scuola lavoro assume una nuova veste cambiando il proprio nome in “Percorsi per le competenze trasversali e per l’orientamento” e la sua durata che sarà di 90 ore nei licei, di 150 ore negli istituti tecnici e di 180 ore in quelli professionali. Tale riduzione delle ore porterà un risparmio sul bilancio dello stato di almeno 50 milioni di euro l’anno. Noi di DasirTech crediamo fortemente nella metodologia e per questo abbiamo ospitato con grande entusiasmo diverse scuole locali che hanno intrapreso il viaggio con noi. Ci auguriamo che, durante questi incontri, la passione per la nostra attività sia passata ai ragazzi, facendoli avvicinare al mondo ICT e in generale a quello del lavoro. Nel futuro continueremo ad impegnarci in questo progetto mettendo a disposizione le competenze e l’impegno che ci caratterizzano, augurandoci che gli studenti possano trovare presto la propria strada e perché no, anche qui da noi!

Medical Imaging & Deep Learning: il futuro dell’istopatologia

Medical Imaging & Deep Learning: il futuro dell’istopatologia

I Patologi di tutto il mondo si stanno affidando sempre più alle tecnologie legate al Medical Imaging. Queste tecnologie, attraverso la creazione di file (WSI), permettono di creare rappresentazioni digitali delle analisi cliniche di tessuti tumorali, consentendo ai medici di effettuare prognosi e diagnosi sempre più veloci ed affidabili. I file WSI trovano ampio utilizzo nell’istopatologia digitale: l'indagine microscopica dei tessuti, della loro morfologia e delle possibili alterazioni tumorali dovute alla progressione e allo sviluppo del cancro. In particolare, confrontando le immagini di tessuto canceroso con quello di cellule sane, è possibile classificare il grado e lo stadio di un tumore. I confronti sono possibili grazie all’utilizzo di alcuni classificatori sviluppati prevalentemente attraverso la tecnica del Deep Learning. Grazie ad una struttura stratificata il classificatore riesce, in autonomia, a ricercare le caratteristiche e i pattern tumorali con grande precisione e accuratezza. Questa recente tecnologia, basata essenzialmente sull’utilizzo di reti neurali di tipo CNN, come ad esempio la ResNet50, risolve il problema della perdita delle informazioni durante la fase di training effettuata su un dataset di migliaia di immagini. I più recenti classificatori, sviluppati da studenti dell’Università Federico II di Napoli, riescono a identificare più categorie di tessuto come: normale, benigno, in situ o invasivo. Si è riusciti così a raggiungere un’accuratezza massima del 98%, risultato che si spera di superare ulteriormente. Tra i possibili sviluppi futuri si pensa sicuramente al mobile. E’ infatti prevista la nascita di app che possano integrare al loro interno un classificatore mobile con un servizio di messaggistica, utile per un celere scambio di pareri tra patologi.

La scelta della tecnologia nei progetti software

La scelta della tecnologia nei progetti software

Quando si inizia un nuovo progetto software la valutazione delle tecnologie da utilizzare, ed in particolare, la scelta del framework, è una fase fondamentale e particolarmente critica che richiede grande attenzione e uno studio preliminare approfondito. Al giorno d'oggi gli strumenti che supportano lo sviluppo software sono numerosi, con caratteristiche, vantaggi, svantaggi e costi differenti. La fase precedente a questa scelta, dovrebbe prevedere un'accurata raccolta di requisiti funzionali, non funzionali e relativi all'aspetto grafico che il prodotto finale dovrà avere. Una volta completata questa prima analisi, si procede con quella delle tecnologie disponibili. Trovare la tecnologia che supporti completamente ed esaustivamente lo sviluppo delle funzionalità richieste è impossibile, ma si può restringere il campo selezionando quella che facilita maggiormente il lavoro. Lo sviluppo delle funzionalità non è però l'unico fattore da considerare. Altri, altrettanto importanti, sono: - Il supporto da parte degli sviluppatori della tecnologia, ma anche quello di una community che attraverso forum e blog proponga soluzioni a problemi più o meno comuni che si possono presentare; - La stabilità degli aggiornamenti nel tempo: utilizzando componenti che non vengono aggiornati da molto tempo, si rischiano problemi di compatibilità che in futuro potrebbero costringere a dover rimuovere quel componente o addirittura a dover riprogettare tutto utilizzando tecnologie diverse; - La compatibilità tra le tecnologie e la facilità con cui interagiscono dovrà essere comprovata, se si dovesse aver bisogno di utilizzarne più di una; - La scelta tra linguaggi nativi e ibridi: si tratta di un problema molto comune quando si parla di sviluppo di App. Utilizzare linguaggi nativi, ovvero linguaggi scritti appositamente per un determinato sistema (ad esempio iOS o android), permette di sfruttare al massimo le potenzialità del dispositivo migliorando nettamente le prestazioni. Lo svantaggio che ne consegue è che la stessa App dovrà essere sviluppata più volte nei vari linguaggi. D’altro canto, l’utilizzo di linguaggi ibridi permette di sviluppare una singola App che funziona su vari sistemi, a discapito però delle prestazioni; - L’esperienza nelle tecnologie, fattore va valutato insieme al tempo a disposizione. Se il tempo per la realizzazione del prodotto finale è limitato, probabilmente è meglio optare per tecnologie che già si padroneggiamo in modo da poter entrare subito nel vivo dello sviluppo. In caso contrario si possono anche scegliere tecnologie che prevedano una prima fase di formazione. Per lo sviluppatore, quindi, la valutazione della giusta tecnologia da utilizzare è un passo fondamentale. Se questo aspetto viene affrontato con la giusta attenzione, porta indubbi vantaggi al progetto che si intende realizzare.

CMS headless: gestori di contenuto per le moderne esigenze

CMS headless: gestori di contenuto per le moderne esigenze

Lo sviluppo tecnologico ha portato a dover trasferire contenuti e dati attraverso piattaforme e canali di comunicazione differenti. Anche la gestione del flusso dei dati sul web si è evoluta. I CMS tradizionali non riescono a soddisfare le esigenze moderne per la loro struttura monolitica che prevede la gestione e la visualizzazione dei dati in un unico software. Per questo motivo sono nati i CMS headless, ovvero “senza testa”, poiché la parte di presentazione dei dati (Content Delivery Application) non è presente nel sistema che, è composta dalla sola parte di gestione dei contenuti (Content Management Application).  Il contenuto di questo tipo di CMS si può considerare puro e permette in una sola istanza di essere visualizzato su diverse piattaforme quali siti web, smartphone, tablet e device IoT. I servizi sono offerti mediante delle API di tipo REST basate sul protocollo HTTP. Le diverse operazioni di CRUD sui dati vengono effettuate chiamando il giusto URL che farà da endpoint e utilizzando uno specifico verbo HTTP quali GET, POST, PUT e DELETE. Focalizzandosi solo sulla parte di gestione dei contenuti, il CMS headless è un sistema più semplice di uno tradizionale riuscendo quindi ad offrire i suoi servizi mediante un numero più basso di operazioni. I contenuti possono essere offerti dividendo il carico di gestione e flusso dei dati utilizzando un CDN (Content Delivery Network), il quale permette di ridurre gli attacchi di tipo DDOS. La sua flessibilità permette di sviluppare dei frontend con qualsiasi tecnologia e di facilitarne un loro possibile aggiornamento, senza aver bisogno di dover aggiornare anche il backend. In conclusione possiamo affermare che la tendenza è sempre più quella di sviluppare sistemi di questo tipo o talvolta di tipo ibrido. Non è un caso che alcuni tra i CMS di maggior rilievo come WordPress e Drupal si stiano spostando anch’essi verso questa direzione.

Il team working: come si crea un gruppo di successo

Il team working: come si crea un gruppo di successo

Negli ultimi anni, si sta diffondendo sempre di più nelle aziende l’idea di valorizzare le persone, organizzando attività formative costanti. Lo scopo principale è quello di sviluppare e rafforzare le relazioni tra i membri di un team e migliorare, così, la qualità del lavoro. Gli ingredienti fondamentali per creare un team di successo sono: L’analisi delle competenze. Il primo passo da seguire è la profilazione dei membri del team, che prevede un’analisi primaria delle hard skills e, soprattutto, delle soft skills. Nonostante la difficoltà nel misurarle, le soft skills ricoprono un ruolo di fondamentale importanza e tra queste le più rilevanti sono quelle relative alle capacità relazionali, comunicative e di problem solving; La condivisione. Quest’ultima è immediatamente successiva alla profilazione poiché tutti i membri della squadra e il team leader devono conoscere i punti di forza e di debolezza dei colleghi. Grazie alla condivisione, ogni membro può dare il meglio di se in determinate aree e può, invece, contare sull’esperienza e le qualità degli altri per quello su cui può migliorare; La sintonia. Dopo aver messo insieme le risorse che, secondo l’analisi dei profili, possono lavorare bene insieme, tra queste deve scattare quella che viene semplicemente definita sintonia. Si arriva, quindi, ad accettare il collega per le sue capacità e a mettere in atto le proprie, con la consapevolezza di essere importanti per il team. Infine, la buona riuscita di un team risiede nella figura del leader. Quest’ultimo deve avere un buon background per assegnare compiti e responsabilità in modo del tutto oggettivo, deve essere in grado di gestire il gruppo in tutte le situazioni e dosare, di conseguenza, la propria leadership. Deve comprendere i momenti che la squadra sta affrontando e le diverse persone con cui opera, per trovare sempre la soluzione migliore. In conclusione, per un team di successo è fondamentale ascoltare le opinioni, i suggerimenti e le idee dei membri del team, portando ognuno di loro alla percezione concreta di non essere soli nel momento del bisogno e che tutti sono singoli pezzi di un unico puzzle.

CBL apprendere per innovare

CBL apprendere per innovare

Spesso ci troviamo a cercare idee geniali, pensando direttamente alla soluzione tecnica prima ancora di aver identificato il problema da risolvere. Esiste un approccio didattico multidisciplinare noto come CBL (Challenge-based learning), basato su un framework collaborativo e su momenti di brainstorming che, adottando  principi flessibili ma fondamentali, guida step by step, nell'identificazione del problema da gestire. Si parte dall'identificazione delle “Grandi Idee”, si fanno “Domande” e si “Scoprono e Risolvono le Sfide”. Più precisamente: La big idea: non è l'idea geniale che cerchiamo, bensì l'ambito in cui cercare quell'idea. Esempi di big idea possono essere la musica, lo sport, i viaggi o qualsiasi altra tematica di nostro interesse. Le essential questions: sono domande che dobbiamo porci riguardo l'ambito scelto. Se ad esempio la nostra big idea è la ristorazione, un'essential question potrebbe essere "Come posso migliorare l'esperienza del cliente che frequenta pub, ristoranti o pizzerie?". Sono quindi domande generiche che puntano ad aprire quanti più scenari possibili su cui indagare. La challenge: è la sfida che ci poniamo per risolvere una problematica. In questa fase è molto importante non concentrarsi ancora sul come risolverla, ma esclusivamente su cosa risolvere. Ad esempio se consideriamo l'essential question precedente, una possibile challenge potrebbe essere "Ridurre i tempi di attesa dei clienti in fila per entrare in un luogo di ristorazione". Investigation: l'obiettivo è trovare quante più informazioni possibili sulla challenge che abbiamo scelto. È molto importante conoscere meglio i nostri ipotetici utenti proponendo sondaggi che ci aiuteranno nella scelta della soluzione e del target a cui sarà rivolto il nostro prodotto. In questa fase non rientrano ancora domande tecniche, riguardanti ad esempio la tecnologia con cui implementeremo la soluzione. Soluzione e implementazione: se il processo è stato effettuato in modo corretto, si arriva in questa fase con più di una soluzione. E' possibile quindi sceglierne una o fare un merge per poi procedere con la scelta delle tecnologie da usare per l'implementazione. Dunque l'apprendimento basato sulla sfida si basa sul caposaldo delle idee innovative e aiuta ad acquisire le competenze necessarie per migliorarsi continuamente in un mondo in costante evoluzione.  

Il business plan: vantaggi e limiti

Il business plan: vantaggi e limiti

Il business plan è lo strumento per comprendere quali strategie, decisioni, risorse ed obiettivi devono essere implementati e perseguiti dall’iniziativa imprenditoriale. Attraverso la definizione di un business plan si ottiene una visione integrata della propria azienda o del proprio progetto imprenditoriale. In un unico documento, infatti, devono essere sintetizzate tutte le informazioni fondamentali: la strategia, i prodotti, la tecnologia, il mercato, i concorrenti, le risorse umane e gli aspetti economico-finanziari. Con il business plan è possibile tenere traccia di ciò che deve accadere, monitorare date e scadenze, delegare chiarendo chi è responsabile e di che cosa, tenere d’occhio i risultati, pianificare e gestire il flusso di cassa, correggere eventuali rotte errate o poco produttive. È pertanto facilmente comprensibile perché siano molti i vantaggi derivanti da tale documento che un buon manager non dovrebbe trascurare. Nonostante l’importanza che assume per la pianificazione e la gestione aziendale, il business plan è oggi sottoposto ad un velato scetticismo e talora ad aperte critiche. Tra i principali limiti, vi è la mancata capacità di valutare l’incertezza e la “curva delle probabilità” sui risultati. Avvalersi, quindi, di un business plan non significa avere garanzie certe sul raggiungimento degli obiettivi in esso indicati. In conclusione, per migliorare la metodologia di predisposizione del business plan bisogna partire dalla consapevolezza che fare business, nella sua essenza più profonda, comporta sempre e comunque un’assunzione di rischio che nessuno strumento di pianificazione strategica può eliminare.

Magento 2 - usare Transaction per salvare oggetti

Magento 2 - usare Transaction per salvare oggetti

Magento 2 è la nuova versione della piattaforma E-commerce che offre nuove e interessanti funzionalità. Tra queste Transaction per salvare oggetti. Una funzionalità poco conosciuta, che risulta però molto utile se si desidera garantire uno stato coerente nel database. Con una singola transazione è possibile combinare molti oggetti da salvare . In tal caso sono possibili due esiti: Transazione riuscita garantisce che tutte le operazioni SQL all'interno della transazione siano eseguite senza problemi. Quindi i dati sono validi e vengono salvati in db. Errore di transazione qualcosa è accaduto durante l'esecuzione della transazione. I sistemi di transazione forniscono una funzione chiamata rollback in cui i dati vengono ripristinati all’istante prima dell’inizio della transazione. Magento 2 in alcuni casi  non sembra garantire un comportamento corretto nelle operazioni verso il db. Un esempio è il mal funzionamento con "rollback della transazione asimmetrica", ossia il salvataggio di default di tutte le informazione riguardati più tabelle. Tale malfunzionamento può essere risolto usando alternativamente:TransactionFactory o Custom SQL statement transaction TransactionFactory Il seguente codice mostra come utilizzare TransactionFactory in Magento 2: class MyClass { protected $saveTransaction; public function __construct \Magento\Framework\DB\TransactionFactory $transactionFactory ){ $this->saveTransaction = $transactionFactory->create(); } public function saveManyObjects() { ... $this->saveTransaction->addObject($order); $this->saveTransaction->addObject($customer); $this->saveTransaction->addObject($customObject); $this->saveTransaction->save(); } } Se si esegue il metodo saveManyObjects () di questa classe, tutti gli oggetti specificati vengono salvati contemporaneamente. Per una transazione è necessario iniettare la classe \ Magento \ Framework \ DB \ TransactionFactory, che offre tutte le funzionalità necessarie. È possibile aggiungere oggetti da salvare con il metodo addObject (). Si possono aggiungere oggetti quali: ordini, clienti, prodotti o persino oggetti personalizzati. Tramite il metodo save() viene eseguito automaticamente un commit o una rollback in base all’esito dell’operazione garantendo uno stato coerente dei dati.  Custom SQL statement transactions Se si vuole usare istruzioni SQL custom utilizzando le transazioni è possibile riferirsi al seguente codice di esempio: $connection = $this->getConnection(); $connection->beginTransaction(); try { ... $connection->commit(); } catch (\Exception $e) { $connection->rollBack(); throw $e; } È possibile chiamare il metodo beginTransaction () per inizializzare una transazione sull'oggetto “connection” dell'utente. In seguito si possono creare le istruzioni di inserimento o aggiornamento. Con commit () vengono rese persistenti le operazioni sul database. Se qualcosa non è andato a buon fine, il costrutto try catch chiamerà una transaction rollBack per ripristinare uno stato coerente del database e genererà un errore. In conclusione Magento 2 offre tutto il necessario per utilizzare le transazioni. Una transazione è uno strumento utile per rendere sicure le modifiche al database, impedendo di corrompere un database se qualcosa non ha avuto esito positivo.

Visualizzo 1-9 di 101 elementi.