Category Archives: Eventi

Reportage del Delphi Day Padova Edition 2018

Delphi Day Padova 2018

Dopo il successo del Delphi Day primaverile di Piacenza, giovedì 22 novembre ha avuto luogo l’edizione dedicata al nord-est Italia, il Delphi Day Padova Edition 2018.

Come di consueto, l’evento è stato diviso in due momenti principali: uno dedicato a seminari di approfondimento, che si è svolto al mattino, l’altro dedicato alla conferenza vera e propria, nel pomeriggio.

L’affluenza è stata molto buona, con sale gremite sia al mattino che al pomeriggio, un successo che non potrà fare altro che piacere agli organizzatori, ovvero ai ragazzi e ragazze dello staff di Wintech Italia.

I seminari

I seminari organizzati al mattino hanno toccato un paio di tematiche fra quelle più attuali, anzi si potrebbe dire addirittura “scottanti”: quello della famigerata Fatturazione Elettronica, e quello dello sviluppo di applicazioni modulari e flessibili.

Fabio Codebue ha curato il seminario sulla tanto detestata (e detestabile) Fatturazione Elettronica, la cui obbligatorietà (salvo rinvii dell’ultimo minuto) è sempre più vicina. La scadenza imminente costringe gli sviluppatori software a correre ai ripari: bisogna trovare in fretta soluzioni per consentire a qualsiasi software che possa emettere fatture di generare il tracciato XML secondo gli standard dettati dall’Agenzia delle Entrate.

Assieme a Fabio abbiamo esplorato la storia, talvolta contraddittoria, delle normative uscite nel corso degli ultimi mesi riguardo la struttura del file XML che contiene i dati della fattura vera e propria e delle interazioni previste con il cosiddetto Sistema di Interscambio (SdI), che dovrebbe smistare le fatture tra i soggetti privati e comunicare l’esito delle operazioni.

Fabio ha poi presentato eInvoice4D, una soluzione open source per la Fatturazione Elettronica scritta in linguaggio Delphi.

La libreria è stata rilasciata nottetempo, appena prima della conferenza. E’ attualmente ospitata su GitHub ed è stata sviluppata dal team di delphiForce, un gruppo di volenterosi programmatori Delphi che ha unito le forze per creare questo progetto in grado di gestire le fasi di generazione del file XML e l’invio a uno o più intermediari diversi (es. Aruba).

L’utilizzo della libreria è estremamente semplice: con poche righe di codice, è possibile creare una nuova Fattura Elettronica in memoria, compilarla con dati di esempio o con i dati reali presi dal proprio applicativo o da un’altra fonte, e generare il file XML, ad esempio per esportarlo su disco. In alternativa, è possibile inviare direttamente la fattura al proprio intermediario, purché questo sia supportato da un apposito provider registrato nella libreria; al momento è disponibile solo il provider per Aruba, ma è ipotizzabile che ben presto la rosa degli intermediari supportati si arricchisca con nuovi fornitori, anzi il team stesso invita a partecipare al progetto e a creare nuovi provider a beneficio di tutti.

Il pacchetto comprende inoltre un servizio Windows pronto all’uso (completo di codice) che debitamente configurato (ad esempio, indicando qual è il proprio provider di riferimento) è in grado di monitorare una cartella e procedere all’invio dei file XML contenenti le fatture non appena si presentano: questo permette di ridurre al minimo il codice da scrivere, soprattutto in versioni datate di Delphi, limitandosi a generare il file XML e a salvarlo su disco.

Grazie poi al contributo di altri sviluppatori che hanno collaborato al progetto, il pacchetto si è arricchito di un visualizzatore, e anche il set di icone rappresentanti le fatture, i relativi stati e così via è stato reso disponibile separatamente.

Che cosa volete di più? 😉

Come sempre, mi dispiace non aver potuto seguire il seminario di Maurizio Del Magno e Luca Minuti sullo sviluppo di software che possano accettare di buon grado i cambiamenti, sull’applicazione dei principi SOLID e dei Design Pattern più utili, in breve sulla realizzazione di architetture che siano il più possibile disaccoppiate fra loro allo scopo di aumentarne la manutenibilità e il riuso.

Del resto, purtroppo, non ho la possibilità di sdoppiarmi (anche se pare io abbia maturato quella di… raddoppiare). 😄

La conferenza

Nel pomeriggio, dopo la consueta procedura di registrazione (e il pranzo per chi era presente già dal mattino), i partecipanti hanno preso posto nella sala principale per l’avvio dei lavori della conferenza vera e propria.

Anche il pomeriggio ha visto una presenza cospicua, una sala quasi piena di persone e con un trend di partecipazione sempre in crescita, sintomo della maturità della community e della voglia di partecipare agli eventi che la coinvolgono.

Il rilascio di Delphi Rio e il futuro di Embarcadero

Il giorno appena prima della conferenza è stato rilasciata la nuova versione di RAD Studio (Delphi e C++Builder), ovvero la 10.3, nome in codice “Rio”: non poteva quindi mancare una sessione interamente dedicata alle numerose novità introdotte in questa nuova release.

Prima di questa però, concluse le rituali presentazioni e saluti iniziali, Paolo Rossi ha riepilogato le ultime acquisizioni fatte da Idera, la società a capo di Embarcadero, che nella sua campagna acquisti – oltre alla più nota Sencha – ha fagocitato anche Froala (creatori di un editor JavaScript molto funzionale) e Whole Tomato (che producono un tool di refactoring per linguaggio C++ in Visual Studio). Esiste quindi una possibilità che il know-how di queste realtà porti nuove feature all’interno dei prodotti Embarcadero. Nel frattempo uno dei tool acquisiti dedicato all’amministrazione di database in diversi formati, Aqua Data Studio, è già incluso nella licenza Architect di RAD Studio 10.3 Rio, assieme a una licenza multi-site di RAD Server e una licenza Sencha ExtJS Professional. Sono ottime notizie: il costo relativamente alto dell’edizione Architect trova finalmente una giustificazione rinnovando la propria offerta e includendo prodotti – come ExtJS – che un tempo venivano acquistati separatamente per essere usati in combinazione con Delphi, mentre oggi fanno già parte della stessa famiglia e vengono distribuiti con esso.

L’argomento successivo non poteva che essere la nuova versione di Delphi appena rilasciata. Delphi Rio 10.3 porta con sé diverse novità che si notano fin da subito, appena l’IDE viene lanciato. Buona parte dell’aspetto grafico è stato ridisegnato per rimuovere alcuni difetti congeniti nello stesso, come doppi bordi, colori di primo piano e di sfondo poco evidenti, toolbar che fluttuano in modo disordinato o che contengono pulsanti che vanno a capo lasciando ampi spazi vuoti, altezze disomogenee e così via. Tutto l’ambiente di lavoro ha quindi subito un re-design, con finestre di dialogo migliorate e filtri incrementali per cercare le opzioni e gli elementi al loro interno.

Anche il linguaggio Delphi è stato esteso, forse con una delle possibilità più insolite per il linguaggio Pascal: la possibilità di dichiarare variabili inline, ovvero all’interno del corpo di procedure, funzioni e metodi, e all’interno di blocchi, limitando la loro visibilità a quell’ambito e senza la necessità di dichiarare tutte le variabili esclusivamente nell’apposita sezione a cui siamo abituati. Si può inoltre usare la Type Inference: non c’è bisogno di indicare esplicitamente il tipo della variabile, poiché questo viene determinato automaticamente in base al valore dell’assegnazione.

Sono state inoltre migliorate le performance di alcune classi e routine della RTL, i cui effetti sono visibili nel lancio e nell’uso dell’ambiente di sviluppo oltreché a run time; la parte dei LiveBindings ha subito delle velocizzazioni, rendendo più veloce l’aggiornamento della visualizzazione dei bindings all’interno del Live Designer.

I compilatori ora includono il supporto per le nuove piattaforme mobile iOS 12 e Android 9, assieme a nuove funzionalità che sfruttano le API di Windows 10.

Altre novità di Delphi 10.3 Rio sono riportate nella pagina del prodotto, oltre che nella documentazione (anch’essa rivisitata con un nuovo tema grafico).

Q&A con Marco Cantù

Dopo l’irrinunciabile pausa del coffee break, la platea ha potuto bombardare di domande Marco Cantù, Product Manager di Delphi presso Embarcadero, collegato da remoto.

Selezionando le domande e le risposte più interessanti, è emerso come il team sia impegnato con priorità alta sullo sviluppo del compilatore Mac a 64 bit, molto richiesto.

Qualcuno ha chiesto notizie sui piani per un IDE a 64 bit: Marco ha risposto che al momento non è previsto (del resto, lo stesso Visual Studio è a 32 bit) ma è possibile che vengano portate a 64 bit alcune parti dello stesso (es. compilatore, analisi del codice, ecc.) che verranno scritti per questa architettura laddove porta un effettivo beneficio.

Un po’ di lamentele (giustificate) sono state espresse sui difetti congeniti di LiveBindings: Marco ha confermato che si sta valutando una sua completa re-ingegnerizzazione, piuttosto che l’apporto di pochi e semplici ritocchi. Delphi Rio include comunque già diverse migliorie che riguardano questa tecnologia, segno che l’impegno su questo fronte c’è.

Sono seguiti poi un paio di demo live su altre feature introdotte in Delphi 10.3 Rio: il supporto ai monitor ad alta risoluzione (4K) con l’API di Microsoft PerMonitorV2, l’uso di funzioni che finalmente forniscono valori corretti per le metriche di sistema e che tengono conto delle effettive caratteristiche del monitor in uso, e un demo del nuovo componente VirtualImageList che permette di sostituire la classica “Image List” con una lista di immagini virtuali, ossia generate dinamicamente, a partire da una nuova “Image Collection” che permette di salvare immagini in diverse versioni e dimensioni, adatte a essere ridimensionate con la minor perdita di qualità possibile, un difetto che si nota soprattutto quando queste vengono ingrandite.

Riguardo la versione Community di Delphi, rilasciata durante l’estate, essa è stata aggiornata alla versione 10.3: per gli studenti, gli hobbisti e i curiosi è possibile quindi scaricare una versione completamente gratuita di Delphi, con le stesse feature dell’edizione Professional e con tutte le novità introdotte in Rio.

PWA con Delphi ed ExtJS

Nella sessione seguente, Luca Minuti ha mostrato il demo di una Progressive Web App (PWA) realizzata con ExtJS e Delphi.

Le PWA sono una nuova tipologia di applicazioni Web su cui Google sta spingendo particolarmente, grazie al supporto offerto dal browser Chrome sia su dispositivi mobile che su desktop (ma gli altri browser si stanno gradualmente adeguando).

Per poter essere definite tali, le PWA devono poter offrire un set di caratteristiche particolari: innanzitutto, devono utilizzare la rete senza fare mai comparire la pagina di connessione assente grazie al lavoro svolto da un “service worker”, una sorta di thread in background che esegue in parallelo, scritto in JavaScript, che contiene il codice vero e proprio di gestione dell’applicazione; esso intercetta le chiamate provenienti dall’interfaccia utente, realizzata con i classici HTML e CSS, e gestisce le chiamate per il recupero dei dati, che possono essere scaricati dal server o prelevati dalla cache. Le PWA sono talvolta installabili sul device o sul desktop, vengono avviate in tempi brevissimi, sono performanti, immersive e coinvolgenti; in breve, mimano quasi alla perfezione il comportamento di un’applicazione nativa.

Un altro elemento fondamentale delle PWA è il cosiddetto “manifest”: un file che specifica le caratteristiche dell’applicazione, come il titolo da attribuire, una descrizione, una icona che la contraddistingue, i colori scelti per la barra degli indirizzi (che può essere anche nascosta), i colori per lo sfondo e per il primo piano; in breve, si tratta di un file di configurazione contenente elementi standard e riconosciuti dal browser di turno che forniscono informazioni sull’applicazione e permettono di personalizzare l’esperienza utente.

Si da il caso che ExtJS contenga un template in grado di generare automaticamente un file manifest.json valido e widget già disponibili che, essendo responsive, sono perfettamente adatti a sviluppare una PWA.

Il codice dell’applicazione è scritto in JavaScript, mentre Delphi ha il ruolo di contenere la business logic, fornire eventualmente una Web API invocabile (usando una delle tante librerie disponibili, anche di terze parti, oppure lo stesso RAD Server distribuito con Delphi) e i file statici delle risorse (pagine HTML, fogli di stile, script, immagini, ecc.) che vengono memorizzati nella cache del browser per consentire alla PWA di avviarsi istantaneamente.

Il termine PWA e le specifiche che sottintende sono ancora in fase di definizione e in continua evoluzione, ma è senz’altro una tecnologia da tenere d’occhio per la rapidità con cui si trasforma una applicazione Web in una app mobile (o un app desktop) molto simile a quelle native e ben integrata nell’ambiente operativo.

Delphi Performance Diagnostic

I tempi stretti accumulati nel corso della giornata hanno rubato un po’ di spazio alla sessione di Paolo Rossi sulla diagnostica delle performance delle proprie applicazioni scritte in Delphi.

L’obiettivo della sessione (a mio avviso comunque perfettamente raggiunto) era quello di sensibilizzare gli sviluppatori sull’importanza di misurare il proprio codice e le sue tempistiche di esecuzione: molto spesso si parla di rendere una routine più veloce o più performante, ma in assenza di strumenti che assicurino il “timing” di queste procedure, è impossibile rilevare se una modifica – ad esempio – ha incrementato o diminuito l’efficienza dell’algoritmo o la velocità della procedura stessa.

Oltre alla misura delle prestazioni, un altro suggerimento molto valido è stato quello di registrare e salvare i risultati ottenuti in un archivio permanente, ad esempio in un database; salvando questi dati a ogni modifica, è possibile determinare con maggiore precisione il momento in cui può aver avuto inizio l’eventuale degrado delle performance monitorate, e identificarne quindi la causa in modo mirato.

Ovviamente, per misurare le prestazioni in modo efficace, è necessario utilizzare lo strumento adeguato in base alle esigenze: se dobbiamo calcolare il tempo di esecuzione di una procedura che impiega giorni, una banale differenza tra l’ora corrente e quella di inizio può restituire un time stamp con una precisione sufficiente, poiché senz’altro i millisecondi non sono significativi; per quantificare tempistiche molto più ristrette, potrebbe essere utile ricorrere alla funzione QueryPerformanceCounter() oppure usare la classe TStopWatch presente in Delphi all’interno della unit Diagnostics.

Per un maggiore approfondimento di questa tematica e delle altre trattate durante i seminari e la conferenza, potete scaricare slide e materiale dal sito ufficiale del Delphi Day.

Conclusioni e saluti

La conferenza si è conclusa con l’estrazione di alcuni premi gentilmente offerti dagli sponsor e con il consueto arrivederci al prossimo evento.

Di certo, ce n’è uno a cui non è possibile mancare: la prima conferenza dedicata alla libreria Spring4D, utilizzata da molti sviluppatori Delphi, che si terrà in Italia nell’aprile 2019 e che ha già un sito dedicato da consultare per maggiori informazioni e per registrarvi in anteprima.

Per tutti inoltre c’è l’appuntamento annuale con la “big conference” online organizzata da Embarcadero, CodeRage, ai nastri di partenza nel momento in cui scrivo.

Detto questo, non mi resta che augurare buona programmazione con Delphi Rio e al prossimo Delphi Day! 👌

ITDevCon9 (European Delphi Conference) a Roma, 18-19 ottobre 2018

Ormai mancano pochi giorni: il 18 e 19 ottobre a Roma si terrà la nona edizione di ITDevCon, la conferenza europea dedicata agli sviluppatori Delphi.

Già da qualche edizione, come di consueto, la conferenza si terrà presso la sede di bitTime Professionals, con due track parallele di sessioni ricche di contenuti e che avranno luogo nelle ormai classiche sale “Kirk” e “Spock”. 🖖

Le mie sessioni

Alla conferenza ci sarò anche io e, anche per questa edizione, annoierò i presenti con due sessioni, di cui vi riporto qui di seguito titolo e descrizione. 😊

Actor Model: multithreading e micro services resi semplici

Actor Model con Delphi

Oggi siamo circondati da CPU multicore con prestazioni stratosferiche, ma gran parte di questa potenza non viene sfruttata dalle nostre applicazioni, e la causa principale è da ricercarsi spesso nelle difficili problematiche della programmazione multithreading: la gestione delle risorse condivise, il coordinamento tra i diversi thread, l’aggiornamento dell’interfaccia utente e così via, problematiche talmente subdole che, se non gestite correttamente, possono provocare effetti devastanti nell’esecuzione del programma e sono tali da scoraggiare anche lo sviluppatore più esperto.
In questo talk approfondiremo il paradigma “Actor Model”, un pattern che semplifica drasticamente lo sviluppo multithreading alla base di alcuni blasonati framework open source: grazie a questa architettura, vedremo come è possibile “salvare capra e cavoli”: creare applicazioni multithreading ultra-performanti e scalabili mantenendo però il codice semplice, manutenibile, testabile e addirittura pronto per trasformarsi in micro service e volare verso il Cloud.

Progressive Web Apps: costruire le app mobile del futuro con Delphi

Progressive Web Apps con Delphi

Tutti parlano di “Progressive Web App” (PWA): si tratta solo dell’ennesima buzz word del momento, oppure c’è qualcosa di tangibile dietro?
La diffusione di dispositivi mobili è capillare e ha ormai surclassato da tempo laptop e computer tradizionali nell’utilizzo quotidiano. Studi statistici mostrano però come gli utenti siano sempre più riluttanti all’installazione di nuove applicazioni sui propri device, poiché ogni app va mantenuta aggiornata, occupa spazio prezioso, necessita di autorizzazioni specifiche e richiede allo sviluppatore di crearne una versione per ciascuna piattaforma e sistema operativo, con il rischio concreto di perdere una fetta importante di potenziali clienti. Esiste una soluzione?
Sì, creare una Progressive Web App. In questo talk scopriremo cosa sono le PWA e quali sono le caratteristiche che le contraddistinguono, approfondendo i vantaggi che offrono rispetto alle applicazioni tradizionali, e vedremo come costruirle utilizzando Delphi come backend, lo strumento ideale per garantire l’affidabilità e le elevate prestazioni richieste.

Last but not least…

Tutte le informazioni su ITDevCon, come l’agenda completa delle sessioni, i profili degli speaker di questa edizione, le offerte per la registrazione e l’acquisto dei biglietti e tutti i dettagli logistici li potete trovare sul sito ufficiale della conferenza.

Se avete la possibilità di “staccare” due giorni dal lavoro, non perdete l’occasione di partecipare a questo evento, anche se non siete sviluppatori Delphi: la conferenza non è solo talk e keynote, ma è sempre anche buona compagnia, buon cibo, condivisioni tecniche (e non), risate, confronto e scambio di opinioni sulle proprie e altrui esperienze, riflessione sulle nuove tecnologie e le opportunità correlate a esse, spunti per nuove idee e coltivazione di possibili collaborazioni.

Ci vediamo a Roma! 😉

Seminare codici: laboratorio Arduino per orti

Cover

OUI (Orti Urbani Intelligenti), un laboratorio che avvicina le realtà agricole urbane alle community digitali, assieme a Contamina, un progetto che propone iniziative pratiche per concretizzare idee volte a soddisfare le esigenze di aziende, PA e scuole, hanno organizzato l’evento “Seminare Codici – Laboratorio Arduino per Orti”: una mattinata di esercitazioni pratiche con Arduino, alla luce del sole e nel bel mezzo del Mercato nell’Orto di Reggio Emilia.

Già da qualche tempo desideravo partecipare a un workshop per muovere i primi passi, o meglio i secondi, nella realizzazione di progetti con la scheda elettronica a microcontrollore più celebre del mondo: Arduino.

Lo scorso weekend si è presentata una ottima occasione, curiosamente all’interno di un orto gigante. 🙂

Il laboratorio Arduino

I ragazzi del Google Developer Group locale assieme ai professori Fabrizio Silvetti (IIS Cattaneo-Dall’Aglio) e Nicola Carpanoni (ITS Blaise Pascal, la scuola superiore che ho frequentato più di 20 anni fa… sob!), con l’aiuto di alcuni studenti volenterosi, hanno affiancato un’orda di partecipanti curiosi di vedere come è possibile utilizzare Arduino per coltivare il proprio orticello… letteralmente. 😄

Dopo le presentazioni di rito, ha avuto inizio l’esercitazione pratica vera e propria. Obiettivo proposto: misurare la percentuale di umidità presente in un campione di terriccio, prelevato direttamente dall’orto a fianco.

Per iniziare…

Per la costruzione del prototipo è stato utilizzando un Arduino MKR1000, un modello progettato appositamente per soluzioni IoT, di dimensioni ridotte e con il supporto della connessione Wi-Fi.Arduino MKR1000

Tramite l’uso di una breadboard, la scheda è stata collegata a un sensore che misura la conduttività elettrica del materiale che consente il passaggio di corrente tra due poli che lo formano. Abbiamo quindi sfruttato questo principio di funzionamento piegandolo alle nostre esigenze, allo scopo di ottenere il dato che ci serviva: immergendo il sensore nel terriccio, maggiore è l’umidità e migliore è la conduzione elettrica tra i due poli, poiché l’elettricità viene trasportata dai sali minerali dell’acqua presente nel campione di terra; se invece il terriccio è arido, la conduttività sarà ovviamente inferiore. Partendo da questo principio, abbiamo la possibilità di attribuire un significato all’informazione analogica che proviene dal sensore e viene comunicato alla scheda Arduino. Scrivendo un semplice programma, è possibile “catturare” il valore del sensore e mostrarlo sul PC all’interno della console di monitoraggio.

Completare il prototipo

Si era detto però che l’obiettivo era mostrare una percentuale, poiché i valori acquisiti direttamente dal sensore e mostrati non sono immediatamente intelligibili. Quindi, come trasformare il dato acquisito dalla scheda? Servirebbero due valori acquisiti dal sensore, uno che rappresenti il massimo e un altro il minimo, che possano rappresentare il livello più alto di umidità (100%) e quello più basso (0%). Abbiamo quindi immaginato un bicchiere d’acqua come la condizione di maggiore umidità che avremmo mai potuto riscontrare nel terriccio: basta immergere il sensore nel bicchiere e annotare il valore letto come massimo; lasciando invece il sensore sospeso nell’aria, ecco che possiamo leggere e annotare un dato che sia valido come minimo. A questo punto, è bastato applicare una proporzione per poter visualizzare un dato comprensibile della quantità di umidità presente nel nostro prezioso campione di terra.

IoTGiunti a questo punto, è facile immaginare quante infinite estensioni si potrebbero applicare alla nostra soluzione: collegare un display per visualizzare il valore, installare un led rosso da accendere per segnalare una umidità sotto la soglia ideale, interfacciarsi tramite WiFi e quindi a Internet per comunicare l’umidità in tempo reale, ad esempio inviando messaggi istantanei con Telegram, oppure ancora attivare l’impianto di irrigazione per “dissetare” un po’ il terreno, e chi più ne ha più ne metta. E stiamo parlando della gestione di una sola grandezza, di un solo aspetto specifico del nostro ipotetico orto.

Conclusioni

In conclusione, l’iniziativa è stata senz’altro divertente oltreché istruttiva: mi ha consentito di capire meglio e più da vicino le capacità e le possibilità di quel meraviglioso dispositivo che è Arduino, di cui avevo solo poco più di una infarinatura molto superficiale, soprattutto dal punto di vista dell’hardware, poiché generalmente la programmazione non è un problema per me che la affronto anche a occhi chiusi. Come si dice in questi casi, “meglio tardi che mai”. 😉

In questi giorni sto attendendo l’arrivo del kit Arduino che non ho potuto fare a meno di ordinare: sull’onda dell’entusiamo tipica dei bambini troppo cresciuti, è possibile che seguano altri post sull’argomento. 😄

VisuinoUna delle prime cose che senz’altro sperimenterò per la programmazione è Visuino: un ambiente di sviluppo visuale per Arduino creato con Delphi dall’ottimo Boian Mitov.

A presto! 🤗

Delphi Day 2017 Padova Edition: il reportage

Articolo - Delphi Day 2017 Padova Edition in Tweet

Ho partecipato ieri al Delphi Day 2017 Padova Edition, la conferenza che si affianca a quella tradizionale e più conosciuta che si tiene ogni anno a Piacenza nel mese di giugno. Essa di fatto sostituisce l’iniziativa precedentemente conosciuta con il nome “Delphi Porte Aperte”.

L’iniziativa si è svolta all’Hotel Sheraton di Padova e ha riscosso un discreto successo, con un centinaio di sviluppatori Delphi presenti: un segnale che la community Delphi continua a essere particolarmente viva e “pulsante”.

La giornata era suddivisa in due parti: il mattino con seminari tecnici, il pomeriggio con la conferenza vera e propria, gratuita e aperta a tutti.

Seminari

Riguardo i seminari, non avendo il dono dell’ubiquità e potendo partecipare solamente a uno di questi (e la scelta era senz’altro ardua), ho deciso di unirmi al pubblico di Maurizio Del Magno sullo sviluppo di applicazioni con il paradigma MVVM, nello specifico con l’uso della libreria iORM sviluppata dallo stesso Maurizio.

Già in altre occasioni avevo avuto modo di approfondire MVVM e di vedere in azione iORM, ma finalmente ieri – grazie all’approfondimento di 3 ore – sono riuscito a “carpire” un quadro più completo dell’utilizzo generale della libreria in un contesto reale e pratico.

Sicuramente approfondirò meglio l’argomento nei prossimi giorni, magari facendo qualche post sul blog in merito alle esperienze e alle soluzioni realizzate, se possono essere utili ad altri.

Delphi Day 2017 Padova Edition:
la conferenza

Nel pomeriggio si è tenuta la conferenza vera e propria, seguendo la formula ormai collaudata del “Delphi Day classico”, partendo quindi con Paolo Rossi e un’analisi dello stato di Delphi sino a oggi, e delle novità che ci attendono nell’immediato futuro.

Tra le cose importanti da segnalare c’è l’inversione di tendenza già registrata da qualche anno in merito all’uso di Delphi, con un aumento delle licenze vendute e una impennata del numero di librerie e componenti molti dei quali free e open source, frutto diretto degli “improvement” apportati al linguaggio (es. Generics e Anonymous Methods) grazie agli investimenti che Embarcadero ha fatto in termini di R&D, raccogliendo di fatto un prodotto in affanno (per motivi anche non tecnici) e aggiungendo feature, piattaforme e compilatori.

Molto interessante è stata la sessione di Stefano Maestri di RedHat, con una dimostrazione pratica del funzionamento della cosiddetta blockchain, lo strumento che è alla base dei Bitcoin e delle altre criptovalute, che potrebbe rivoluzionare nei prossimi anni il modo in cui viene concepito l’uso della Rete e il concetto di “scambio” (visto come compenso per l’erogazione di un servizio) all’interno della stessa.

La giornata è proseguita con un case study di applicazione industriale tridimensionale in Delphi, per dare un’idea di quali sono le possibilità e i risultati raggiungibili con l’uso di librerie 3D di terze parti, in larga parte scritte in C++ (per massimizzare da subito le performance) ma interfacciabili con Delphi grazie ai “binding” forniti dagli sviluppatori. L’attenzione è stata rivolta in particolare alla libreria Afterwarp e incentrata sullo sviluppo di applicazioni business (non solo giochi), unendo di fatto le prestazioni elevate del codice scritto in C++ con il livello più alto e l’eleganza del linguaggio Delphi Pascal.

L’attenzione si è spostata poi sulla recente introduzione del supporto alla piattaforma Linux, caratteristica principale di Delphi 10.2 Tokyo, e sulle motivazioni più che valide per sfruttare questa occasione per sviluppare applicazioni server-side (no GUI, per il momento) con Delphi: il risparmio dei costi di licenza, la manutenzione più semplice dei sistemi Linux-based (SSH vs RDP, apt-get vs installer, …), il supporto esteso per il Cloud e soprattutto Docker, la disponibilità di appliance già disponibili con distro e applicativi, la facoltà di costruire soluzioni con l’embedding di macchine Linux all’interno di box, preinstallati assieme alla vostra applicazione. Inoltre, il codice Delphi esistente (salvo chiamate esplicite alle API native) può essere portato facilmente sulla piattaforma Linux con un numero estremamente ridotto di modifiche.

Infine, Luca Minuti ha curato una breve panoramica dello sviluppo di applicazioni Web RIA con ExtJS, un framework JavaScript ricco di widget già pronti e funzionali, prodotto da Sencha, recentemente acquisita da Idera (la società che controlla attualmente Embarcadero). Grazie a questa acquisizione, è ipotizzabile attendersi in futuro delle novità riguardo l’integrazione tra Delphi ed ExtJS, che vanta una certa maturità con più versioni rilasciate nel corso degli anni, nonché una discreta base di utenti.

Approfitto di questo post per ringraziare Wintech Italia per la sempre ottima organizzazione dell’evento, e anche tutti i colleghi partecipanti con cui ho potuto ancora una volta conversare (e scherzare) scambiando ottimi pareri tecnici e utili opinioni.

La giornata in tweet

Concluso il post con una “storia” che riepiloga i tweet scritti durante la giornata, con qualche foto e dettaglio della conferenza.

Continue Reading

ITDevCon 2017: slide e sorgenti su Clean Code e Information Radiator con Delphi

Badge di ITDevConSi è conclusa da qualche giorno l’appuntamento annuale imperdibile per gli sviluppatori Delphi, ITDevCon 2017 – European Delphi Conference, la conferenza europea dedicata agli sviluppatori Delphi.

L’evento si è tenuto anche quest’anno nella sede di bitTime Software a Roma, tra le verdi colline che adornano la città di Frascati, con un tempo metereologico da fare invidia all’estate.

Dopo la parentesi primaverile della Spring Edition è tornata quindi la “sorella maggiore” della conferenza, con due giornate piene di interessanti speech, sia in italiano ma anche in inglese, per non far mancare nulla agli ospiti venuti da fuori Italia, che sono certo avranno gradito parecchio anche le prelibatezze servite nei coffee break e nel pranzo durante il giorno, raggiungendo il top con i piatti della tradizione locale serviti all’agriturismo per cena, inclusi i tipici Saltimbocca alla Romana (che Fabrizio Bitti, CEO di bitTime, ha prontamente tradotto per i non italiani in «Jump in Mouth at the Roman Way»). 😄

Anche questa edizione ha mantenuto lo spirito che la contraddistingue: contenuti tecnici di elevata qualità, a giudicare dai feedback positivi lasciati dai presenti al termine di ogni singolo speech, con una buona dose di humour che non guasta mai.

La caratteristica più apprezzabile di ITDevCon, a mio avviso (e dopo anni di partecipazione come speaker e come attendant posso dirlo) è che non ti lascia mai tornare a casa senza una buona dose di spunti e ispirazioni da cui trarre nuove idee e tecniche per il nostro lavoro. Questo è dovuto al fatto che tutti gli speaker cercano sempre di trasmettere le proprie esperienze, e non solo di raccontarle asetticamente, una tendenza che non sempre si trova negli eventi di questo tipo, a cui si aggiunge l’accoglienza esclusiva dei padroni di casa.

Slide e codice sorgente

Quest’anno ho partecipato come speaker (ormai è una tradizione) proponendo due talk.

Nel primo talk, intitolato ironicamente «Non Aprite Quella Unit!», ho presentato esempi di “codice orrorifico” tratti dalla mia esperienza di “code revision” presso clienti, sia per farsi quattro risate, sia per introdurre l’argomento principale della sessione, ossia la scrittura di “codice pulito” (Clean Code) e i benefici che porta nel team di sviluppo, in termini di chiarezza e manutenibilità del codice, partendo dalle regole più banali e intuibili fino ad arrivare agli accorgimenti più sconosciuti e difficili da attuare.

Nel secondo talk, intitolato «Crea un Information Radiator con Delphi», ho spiegato innanzitutto cosa si intende con questo strano termine: si tratta di un pannello che distribuisce informazioni alle persone nelle vicinanze, collocato e dimensionato affinché sia visibile con facilità. Ne avrete sicuramente visti in aeroporto, per mostrare le informazioni sul volo in partenza, oppure negli autogrill, per diffondere informazioni sul traffico e le ultime notizie. Si tratta di una nuova tendenza, che sta dilagando al punto tale che pure i team di sviluppo li stanno adottando per tenere sotto controllo l’andamento delle attività sui progetti aperti e gestiti con metodologie agili (es. Scrum). Per realizzare il nostro pannello, abbiamo scelto Raspberry Pi 3 come hardware e Delphi (con FireMonkey) per creare un’applicazione Android nativa e ultraveloce (rispetto alle soluzioni più comuni basate su pagine Web a rotazione e browser pesanti).

Potete scaricare i sorgenti dal mio repository su GitHub, assieme alle slide pubblicate nel mio profilo su SlideShare a questi indirizzi:

Conclusioni

In breve, se non avete mai partecipato o se mancate da qualche anno, non mi farei sfuggire la prossima edizione, magari la Spring se ci sarà. 😉

ITDevCon SE 2017: Web API e applicazioni Web con Vue.js e Delphi

Logo ITDevCon 2017 Spring EditionQuesto mese di maggio si conclude con un appuntamento inedito: ITDevCon 2017 Spring Edition.

A furor di popolo, come si suol dire, la conferenza europea dedicata a Delphi ITDevCon torna il prossimo venerdì 26 maggio a Roma per una edizione speciale primaverile, in forma ridotta (solo una giornata prima del weekend) e in lingua italiana, ma come sempre molto ricca di argomenti interessanti per gli sviluppatori Delphi.

Affrettatevi ad acquistare i biglietti per partecipare alla conferenza, perché stanno per terminare sia i biglietti che i giorni a disposizione. 🙂

L’agenda completa dell’evento la trovate sul sito ufficiale. Fra i tanti speaker presenti ci sarò anche io con due talk orientati all’integrazione di Delphi con il Web.

REST API e Vue.js

Come usare REST API fantastiche e dove trovarle

Nel mondo là fuori c’è un intero universo di Web API interessanti e curiose, tutte da esplorare. Dopo una breve introduzione, utile a fissare bene determinati concetti di base, in questo talk vedremo come è possibile “consumare” queste API con Delphi, costruendo applicazioni client anche molto accattivanti e di sicuro impatto.

Applicazioni Web ultra-performanti con Vue.js e Delphi

Vue.js è una libreria JavaScript per creare interfacce utente estremamente performanti, che può essere introdotta gradualmente nelle vostre applicazioni Web, nel modo meno invasivo possibile. In questo talk vedremo come utilizzare la libreria per costruire passo passo un frontend fino alla sua integrazione con un backend realizzato in Delphi.

Slide e codice speech ITDevCon 2016 su Delphi con React e Telegram

Articolo - ITDevCon 2016 - Slide e codice sorgente

Ho reso pubblici slide e codice sorgente degli esempi relativi ai talk tenuti alla conferenza ITDevCon 2016 – European Delphi Conference.

Codice sorgente

Il codice sorgente può essere scaricato dalla mia pagina su GitHub, che contiene anche il materiale utilizzato nelle conferenze passate. I sorgenti degli esempi di ITDevCon 2016 li trovate precisamente in questa cartella, che include anche i documenti PDF con le slide.

Per scaricare gli esempi, potete clonare il repository usando il vostro client Git preferito, oppure scaricare lo ZIP del repository con tutti i sorgenti.

Slide

Le slide mostrate durante l’evento le trovate sulla mia pagina SlideShare.

Potete visualizzarle direttamente online e scaricarle a questi link:

ITDevCon 2016: riepilogo e qualche foto

Articolo - ITDevCon 2016 - Recap

Sono tornato già da qualche giorno dalla “gitarella” a Roma per ITDevCon 2016 (sito ufficiale), la conferenza europea dedicata a Delphi. Ecco qui una breve recensione dell’evento.

Dopo le esperienze di Verona e Milano, quest’anno l’evento si è svolto per la prima volta a Roma, nel quartier generale di bitTime Professionals, gli organizzatori dell’evento: oltre al beneficio del valore tecnico, la conferenza è sempre un’ottima occasione per spostarsi e vedere posti nuovi.

Questa edizione ha visto la partecipazione di una sessantina di persone, un vero “sold out” con la room principale piena: unito al dato di partecipazione del Delphi Day dello scorso giugno, il risultato conferma il desiderio di fare community da parte degli sviluppatori, che è uno degli aspetti di maggiore risalto in questo tipo di eventi, nonché il vivo interesse verso Delphi e le novità che riguardano il prodotto.

Dal punto di vista dei contenuti, non sono mancati gli approfondimenti relativi alle tecnologie assodate ma anche a quelle emergenti.

Si è parlato di sviluppo di applicazioni Web e SPA (Single Page Application), usando le librerie Angular2 e React lato client, ovviamente con backend in Delphi, approfondendo ben due librerie free e Open Source, DelphiMVCFramework e MARS Curiosity, che si affiancano a quelle già disponibili “out of the box” in Delphi.

Non sono mancate le sessioni maggiormente orientate agli “smanettoni”, con un approfondimento di tecniche avanzate per il debugging delle applicazioni e gli “internals” del memory manager FastMM4.

La tematica dell’accesso ai dati non è stato senz’altro trascurata: si è parlato del movimento NoSQL e delle caratteristiche di uno dei database NoSQL più diffusi, MongoDB, per il quale la libreria FireDAC offre un driver già da qualche versione. A questi argomenti si è aggiunto un approfondimento di Firebird 3.0 e delle novità portate dalla nuova versione, assieme a una sessione di tips per incrementarne le performance.

Screenshot Io ho tenuto uno speech su un argomento particolarmente in voga al momento, ovvero i Bot e il loro possibile impiego nelle proprie soluzioni business, spiegando come realizzarne uno sfruttando la piattaforma messa a disposizione da Telegram, realizzando a titolo di esempio un bot ad hoc per la conferenza, in grado di fornire informazioni sempre aggiornate sulle sessioni e sugli speaker, oltre ad avvisi organizzativi (con una punta di “british humour”).

Ho trovato particolarmente interessanti le sessioni su Arduino e sugli spunti di integrazione con Delphi: basta davvero solo la fantasia per immaginare uno scenario di possibile utilizzo della scheda assieme ai tanti moduli ordinabili in rete per costruire qualcosa di concreto da cui potrebbe scaturire un’interessante idea.

Infine, sono stati molti i tool e le librerie analizzate nel corso dei vari talk, tutti in buona prevalenza gratuiti e open source, in grado di ricoprire la totalità delle problematiche di sviluppo di qualsivoglia tipo di applicazione Delphi.

Il tutto contornato da un’ottima cena e da abbondanti buffet pomeridiani che hanno reso ancora più gustosi i coffee-break di condivisione e chiacchiere con gli altri partecipanti.

Promossa quindi a pieni voti anche questa edizione romana di ITDevCon, per la generosa ospitalità e l’ottima organizzazione, per la quantità e qualità dei contenuti tecnici proposti, per la ricca premiazione e per la simpatia dei partecipanti e dello staff che ci ha gentilmente ospitati.

Arrivederci quindi a presto, si spera, a una nuova edizione di ITDevCon!

Vi pubblico qui di seguito qualche foto e i tweet in diretta.

Continue Reading

Delphi Boot Camp: scarica e impara Delphi gratis!

Sei uno sviluppatore software che ama conoscere ogni giorno nuove tecnologie, strumenti e linguaggi di programmazione? Questa è senz’altro una occasione che non puoi assolutamente lasciarti sfuggire: il Delphi Boot Camp!

Delphi Boot Camp - dal 5 al 9 settembre

Cos’è il Delphi Boot Camp?

Il Delphi Boot Camp prevede 5 giornate di training online gratuito, dal 5 al 9 settembre (2 ore al giorno), con cui potrai scoprire la magia della programmazione con Delphi, le funzionalità di sviluppo rapido delle applicazioni (RAD) offerto dall’ambiente, l’uso del moderno ed elegante linguaggio Object Pascal, le potenzialità del framework crossplatform FireMonkey.

Per il tuo “training”, puoi scegliere se iniziare a usare gratuitamente il prodotto completo scaricando la versione di prova, oppure approfittare di una eccezionale promozione limitata: ottenere una licenza gratuita di Delphi Starter Edition (del valore di € 395,28) e scaricare anche una copia di Object Pascal Handbook, il libro di Marco Cantù sul linguaggio Object Pascal (aggiornato con le novità di Delphi 10.1 Berlin) con il quale potrai seguire meglio il corso.

Il training si rivolge sia a coloro che hanno sentito parlare di Delphi e aspettavano un’occasione buona per provarlo sia a chi non lo conosce assolutamente oppure a chi lo ha già usato in passato e vuole vedere quali sono state le migliorie apportate all’ambiente e al linguaggio di programmazione, tenendo presente che con la prossima versione in arrivo (nome in codice Godzilla) un nuovo compilatore per Linux affiancherà quelli già esistenti per Windows e Mac (32 e 64 bit), per Android e Apple iOS, come indicato nella nuova roadmap aggiornata ad agosto 2016.

Agenda delle giornate

Qui di seguito riporto gli argomenti di ciascuna giornata del training. Le sessioni sono in lingua inglese.

  • Giorno 1 – Introduzione a Delphi: l’IDE e la tua prima applicazione
  • Giorno 2 – Conoscere il linguaggio Delphi
  • Giorno 3 – Costruire interfacce utente efficaci con FireMonkey
  • Giorno 4 – Game Development con Delphi
  • Giorno 5 – Sviluppo Mobile e Database

Per approfondire il contenuto delle lezioni e i dettagli dell’iniziativa, guarda il filmato di introduzione di Jim McKeeth, Evangelist di Embarcadero Technologies.

Ora che conosci tutti i dettagli, non ti resta che iscriverti subito all’evento.

Iscriviti subito

Buon addestramento! 😉

ITDevCon 2016: creare Bot e applicazioni React con Delphi

Articolo - ITDevCon 2016

Questo autunno ritorna l’appuntamento con ITDevCon, la conferenza europea dedicata agli sviluppatori Delphi che quest’anno si terrà il 6 e 7 ottobre, per la prima volta a Roma.

Per questa edizione di ITDevCon ho proposto due talk su un paio di argomenti che in questo periodo sono interessati da un discreto hype, a parer mio giustificato.

Creare un Bot con Delphi

Articolo - ITDevCon 2016 - Speech su BotNel primo talk si parlerà del fenomeno dei Bot, uno strumento sicuramente non nuovo ma molto in voga al momento, anche grazie a Telegram che ha fatto il primo passo introducendone il supporto nella propria piattaforma di messaggistica.

Con il termine Bot ci si riferisce a una categoria di software che sono in grado di svolgere automaticamente una serie di operazioni, facendo le veci di un utente in carne e ossa e interagendo attraverso gli stessi canali (ossia Internet), e sono spesso interfacciati ad algoritmi di intelligenza artificiale (AI) che contribuiscono a candidarli ancora di più come perfetti sostituti di una persona nello svolgimento di determinati compiti. Si pensi ad esempio al loro impiego nei giochi di ruolo online, al posto di giocatori reali, oppure ai casi relativamente più semplici dei software che rispondono automaticamente a messaggi su IRC per gestire canali, o a messaggi e-mail per fornire informazioni su una mailing list e consentire agli amministratori di gestirne tutti gli aspetti.

Il diffondersi di sistemi di messaggistica in grado di raggiungere un elevato bacino di utenti, nell’ordine dei milioni, come Whatsapp, Facebook Messenger e il già citato Telegram, hanno fatto letteralmente esplodere la “Bot Mania” con diversi enti pubblici, aziende e altre realtà che li hanno integrati nel proprio processo produttivo, grazie anche alla facilità con cui è possibile interfacciarsi alle API utilizzando protocolli standard e alla presenza di piattaforme e librerie di alto livello, come il Microsoft Bot Framework, per citarne una.

Nel corso di questo speech, vedremo quali sono i vantaggi derivanti dall’uso di Bot all’interno di diversi contesti reali e analizzeremo i passi necessari per costruirne uno con Delphi sfruttando la piattaforma fornita da Telegram.

Applicazioni Web con Delphi e React

Articolo - ITDevCon 2016 - Speech su ReactNel secondo talk parleremo dello sviluppo di applicazioni Web in Delphi utilizzando uno dei framework JavaScript più in voga del momento: React.

React è la libreria creata da Facebook per gestire l’interfaccia utente del social network più conosciuto e utilizzato al mondo.

Grazie alle numerose soluzioni disponibili per la creazione di server REST in Delphi, sia integrate nel prodotto (come DataSnap e RAD Server) sia di terze parti e Open Source come Delphi MVC Framework (ne ho parlato anche in un episodio di Delphi Podcast) e MARS Curiosity, sviluppare un backend per le proprie applicazioni Web è diventato un gioco da ragazzi, peraltro con performance di tutto rispetto, mentre dal lato frontend abbiamo a disposizione una quantità infinita di framework e librerie JavaScript che possiamo utilizzare, e React è una fra quelle più usate e diffuse.

Cosa rende React così innovativo? Sicuramente il fatto che sia basato sull’uso e sulla creazione di componenti, un concetto molto familiare agli sviluppatori Delphi (benché non vada confuso con l’approccio RAD offerto dalla libreria RTL/VCL, né tantomeno confrontato con IntraWeb!) e che è stato ripreso da altri framework concorrenti, oltre alle prestazioni elevate nella manipolazione della pagina Web che lo rendono la soluzione ideale per tutte quelle interfacce utente particolarmente ricche, interattive e “affollate” che devono rimanere il più possibile responsive.

Come iscriversi e partecipare a ITDevCon 2016

Questa edizione si prospetta più ricca che mai di argomenti ed è un’occasione unica per approfondire anche le ultime novità introdotte nelle release più recenti di Delphi: in poche parole, non potete mancare.

Tutte le informazioni si trovano come sempre sul sito ufficiale dell’evento, compresa la pagina per la registrazione.

Arrivederci quindi a ottobre a ITDevCon 2016! 🙂

Copyright © 2018. Powered by WordPress & Romangie Theme.