Category Archives: Delphi

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! 😉

Delphi Community Edition disponibile per il download!

Finalmente è arrivata la svolta: da qualche giorno è disponibile per il download Delphi Community Edition, una versione di Delphi gratuita e completa nelle funzionalità!

Delphi Community Edition è qui!

Embarcadero ha finalmente deciso di rilasciare una nuova versione, o meglio una nuova edizione di Delphi rivolta al pubblico di sviluppatori professionale e non, agli hobbisti, agli studenti e in generale a tutti coloro che vogliono utilizzare questo ambiente di sviluppo e il suo elegante linguaggio Pascal-based (o imparare a farlo).

Delphi Community Edition è scaricabile gratuitamente e, al contrario dei suoi predecessori, ha tutte le feature della versione professionale più completa.

All’inizio fu “Starter”…

Il rilascio di edizioni gratuite di Delphi non è una novità: Embarcadero rende disponibile già da diverso tempo una versione di Delphi free ma limitata, con nome Delphi Starter Edition e rivolta a coloro che muovono i primi passi con il linguaggio o vogliono utilizzare l’ambiente per costruire semplici app per piattaforma Windows, saggiando la bontà della libreria più matura per questo sistema operativo, ovvero la VCL (Visual Component Library), aggiornata per supportare le ultime novità introdotte in Windows 10, la versione dell’OS di Microsoft che a maggio aveva già raggiunto 500 milioni di dispositivi.

Questa versione tuttavia presentava diverse limitazioni: non era possibile utilizzare l’innovativa libreria FireMonkey (per applicazioni business 2D/3D), sviluppare per Mac OS e nemmeno per le piattaforme mobile Android e iOS; in aggiunta, molti strumenti dell’ambiente di sviluppo per la scrittura veloce del codice non erano disponibili, così come limitata era la connettività ai database, mancava il codice sorgente e così via.

In breve, l’edizione Starter era senz’altro meglio di niente, ma mancava di tutte quelle peculiarità che rendono Delphi l’ambiente appetibile che è in realtà, e questo era motivo di dispiacere per molti sviluppatori, compresi quelli paganti.

L’unico vero modo di saggiare le reali capacità del prodotto era quello di scaricarsi una versione trial, con tutte le funzionalità ma con la “spada di Damocle” del ridotto tempo a disposizione per provarle. Si sa, l’aspetto psicologico ha una sua importanza. Basti pensare che oggi la parola “trial” non si usa quasi più: meglio usare Free e invitare poi al passaggio alla versione Pro una volta ingolosito l’utente.

Quali sono le feature di Delphi Community?

Delphi Community Edition non è una vecchia Starter Edition a cui è stato cambiato il nome, ma rappresenta un notevole passo avanti rispetto alle versioni gratuite rilasciate in precedenza.

Si potrebbe sinteticamente definire come una versione Professional in tutto e per tutto, limitata nella licenza solamente nelle dimensioni e volumi di introiti dell’azienda, della persona o dell’associazione che ne fa uso: ogni sviluppatore individuale o azienda (fino a un massimo di 5 sviluppatori) può usare la Community Edition fino a quando le revenue sono inferiori a 5.000 USD.

Come indicato nella Feature Matrix del prodotto, scaricabile in formato PDF, Delphi Community Edition ha le stesse caratteristiche dell’edizione Professional.

Responsive Design IDE Delphi Community Edition supporta le piattaforme desktop Windows e Mac OS, e le piattaforme mobile iOS e Android. A differenza della precedente Starter, Delphi CE consente l’uso della libreria FireMonkey (oltre alla VCL), inclusi tutti gli strumenti di FireUI a supporto dello sviluppo cross-platform e multi-device (es. live preview sui device), a cui si aggiunge l’IDE con tutte le feature a oggi disponibili, l’accesso a database locali con la libreria FireDAC e il database embedded per mobile IBLite scaricabile tramite il package manager GetIt.

E’ inoltre presente anche il codice sorgente delle librerie Delphi principali (RTL, VCL e FMX), utile quando si vuole dare una sbirciata all’implementazione delle classi per estendere una architettura, replicare un pattern oppure aggirare un bug noto.

E sei hai bisogno di aiuto, nessun problema: anche per Delphi Community Edition è stata predisposta la documentazione ufficiale online, che affianca quella delle edizioni più complete.

Quali sono le limitazioni?

Quali sono le limitazioni della licenza Community rispetto a quelle a pagamento, ad esempio quella più vicina ovvero la Professional?

Come già detto, la restrizione principale riguarda il numero di sviluppatori e il volume di affari dell’azienda che ne fa uso.

La licenza Community è inoltre sottoposta a un termine temporale di 1 anno, che Embarcadero ha promesso di estendere o che ipoteticamente si presume potrà essere rinnovato con l’arrivo di nuovi aggiornamenti.

A questo si aggiunge l’impossibilità di accedere alle versioni precedenti di Delphi, una facoltà concessa a coloro che hanno una Subscription attiva, che possono invece installare versioni più vecchie così come accedere alle versioni future rilasciate, agli aggiornamenti del prodotto e ai vari hot fix.

E’ fatto inoltre divieto (benché sia difficile da verificare) di modificare il codice sorgente incluso nel prodotto.

La licenza di Delphi CE restringe a un massimo di 5 le istanze eseguibili in rete: per esigenze di training massivo è quindi necessario ricorrere all’Academic Program di Embarcadero, che rimane attivo e disponibile.

Conclusioni

Cosa dire di più sul rilascio di Delphi Community Edition? Si tratta di una iniziativa eccezionale, doverosa, estremamente interessante e che sono certo avrà effetti positivi nella diffusione di Delphi come linguaggio e come prodotto, ora che è possibile utilizzarlo liberamente, soprattutto dai neofiti, incrementando il numero di sviluppatori della community.

Ha ragione chi considera l’iniziativa un pochino tardiva (per usare un eufemismo) rispetto alle scelte analoghe della concorrenza. Microsoft – per citare un esempio – rilascia
Visual Studio Community già da diversi anni. Occorre tuttavia tenere a mente che Visual Studio non è il “core business” di Microsoft, ma uno strumento per incentivare l’adozione delle tecnologie su cui Redmond conta (e guadagna) veramente, ossia Windows, Azure, SQL Server e così via. Embarcadero invece produce essenzialmente strumenti di sviluppo, quindi rilasciare gratuitamente il proprio prodotto commerciale è senz’altro una manovra da eseguire con cautela.

A mio avviso, soprattutto per chi – come me – si occupa anche di formazione oltreché di sviluppo, oggi è indispensabile poter disporre di una versione gratuita del prodotto, da fare installare al cliente e da far provare in tutte le sue sfaccettature, passando poi a una versione a pagamento nel momento in cui lo strumento diventa essenziale per
la vita dei progetti software. L’offerta di Delphi Community Edition non potrà che essere un vantaggio in questo ambito.

Grazie al rilascio della Community Edition, Delphi finalmente è accessibile con pochi clic a un ampio pubblico di interessati e possibili adopters. Studenti e universitari finalmente possono scaricare e usare Delphi senza dover compilare noiosa documentazione per ottenere una licenza gratuita. Ciascuno sviluppatore Delphi può usare la versione a cui è abituato anche a casa, per formarsi o costruire le proprie utility personali, senza dover “rubare” una licenza alla propria azienda. 😊 Se sei un appassionato di Internet of Things, puoi costruire da subito i tuoi prototipi realizzando client per tutte le piattaforme conosciute in pochi minuti. E ancora, puoi partecipare al tuo Programmer User Group preferito o alla Coding Gym più vicina e risolvere gli esercizi usando (e facendo usare) Delphi come tool di sviluppo. Puoi irrompere nell’evento dedicato a startup, hacking e simili sviluppando la tua soluzione mobile in pochi istanti sbaragliando i vari X-Coder e Xamariner. 😜

Internet of Things

Se sei uno sviluppatore curioso, non c’è momento migliore per iniziare a utilizzare Delphi. C’è addirittura un libro gratuito che puoi scaricare per muovere i primi passi. Se lo conosci già, ora puoi farlo conoscere anche ad altri e allargare la tua community.

Long live to Delphi! 🖖

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 Cookbook Second Edition: la mia recensione

Riporto qui la mia recensione del libro Delphi Cookbook Second Edition di Daniele Teti, che riprende e integra quella rilasciata in lingua inglese su Amazon.

Copertina di Delphi Cookbook Second Edition

Copertina del libro

«Delphi Cookbook Second Edition» è un ottimo libro estremamente utile.

Devo premettere che io sono un fan dei cosiddetti “libri accademici”, quei lunghi tomi che ti introducono a un linguaggio di programmazione o a una tecnologia e ti dicono tutto quello che c’è da sapere su di esso, partendo dai concetti basilari e andando in profondità sviscerando ogni dettaglio e fornendo una conoscenza completa a 360 gradi. Delphi Cookbook Second Edition non appartiene a questa categoria di libri, ma questo non deve essere considerato un aspetto negativo: occorre tenere conto che al giorno d’oggi il tempo è una cosa preziosa, e il software – in particolare se si tratta di uno strumento di sviluppo – si evolve molto velocemente, e leggere dei “volumi senza fine” richiede parecchio impegno quando noi programmatori dobbiamo invece iniziare a lavorare al nostro progetto nel più breve tempo possibile, altrimenti partiremmo già in ritardo.

Da questo punto di vista, Delphi Cookbook Second Edition si presenta in un forma molto comoda da usare: quando si incontra un problema specifico nel processo di creazione dell’applicazione, è possibile partire dall’indice del libro e cercare il capitolo relativo, ottenendo quei bit di informazioni essenziali che permettono di sbloccare la situazione e proseguire nel completamento del task. In fondo, un “tip” è spesso tutto ciò che serve a uno sviluppatore.

Ma non vorrei essere frainteso: non stiamo parlando di una raccolta di quei vecchi e banali trucchetti di cui tutta la community Delphi ormai è già a conoscenza: il libro affronta casi d’uso aggiornati e al passo con i tempi, spiegando per ogni “ricetta” (una sorta di design pattern) come procedere e soprattutto il perché della soluzione proposta, in modo da consentire al lettore di cogliere la logica che vi sta dietro, consentendogli di riapplicarla anche in altri contesti differenti da quello affrontato.

All’interno del libro scoprirete inoltre che molte delle soluzioni proposte sfruttano le caratteristiche del linguaggio Object Pascal e si basano su classi e componenti che sono già presenti in Delphi: questo dimostra come il linguaggio e il tool siano uno strumento del tutto moderno e adatto alle esigenze di sviluppo odierne. Vi sono però anche ricette basate su componenti di terze parti e open source, come Delphi MVC Framework, con una spiegazione completa del loro utilizzo, dall’installazione al deploy, fornendo così anche dei tutorial aggiuntivi rispetto a quelli che si trovano nella documentazione ufficiale di questi interessanti progetti.

Le tecniche mostrate spaziano dall’interfaccia utente (come il supporto ai temi e l’owner-drawing) alla logica di business (come l’uso della Extended RTTI per la meta-programmazione), passando per l’esposizione dei dati tramite server Web HTTP al consumo di servizi REST, coprendo in breve tutti gli aspetti salienti della costruzione di una soluzione software completa, sia per desktop sia per piattaforme mobile.

Concludendo, se sei uno sviluppatore Delphi e vuoi utilizzare questo tool di sviluppo come merita, devi per forza leggere questo libro. 🙂

Acquista su Amazon

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! 😉

Copyright © 2018. Powered by WordPress & Romangie Theme.