ITDevCon 2017 – The Delphi European Conference

ITDevCon2016 logo

ITDevCon 2017 is coming!

As every year (but 2015), I’m building the agenda for next ITDevCon that will be held next October 11th, 12th in Rome (Italy), in the same location of the ITDevCon 2016 and ITDevCon 2017 spring edition: the bit Time group headquarter in Rome!

This will be the 8th conference edition and will be organized, as usual, by bit Time Professionals, part of the bit Time Group.


The call for papers are officially open right now, so if you want to propose some speeches, I’ll be glad to see them.

Send your Call4Paper to

I already received some C4P, I’ll reply as soon as all the tech comitee members will accept (or reject) the proposals.

As usual, for the Call4Paper I need:

  • Title (for every talk)
  • Abstract (for every talk)
  • Difficulty level (for every talk)
    • Difficulty level is a scale from 1 to 3 with the following mean: introduction, intermediate, advanced
  • Speaker’s photo (at least 500x500px)
  • Speaker’s profile

I’m looking forward to your proposal. The call4papers ends at Sep 24th, 2017 but if you have *VERY* interesting topic to propose, propose it… I’ll try to arrange the schedule and fit it in the agenda.

Proposals will be evaluated and the speakers will be contacted ASAP.


This year topics will be the following:

  • What’s new in the latest Delphi versions
  • Linux development
  • IoT (Internet of Things) solutions
  • FireMonkey platform
  • MacOSX development
  • Windows development
  • Mobile development (Android and/or iOS)
  • Develop UIs for different devices (smartphones, tablets, TV, watch etc)
  • Delphi best practices
  • Design Patterns
  • OOP best practices
  • Open Source Delphi Frameworks (Spring4d, DelphiMVCFramework etc)
  • Arduino, Raspberry Pi or others similar system
  • Web Application with Delphi
  • Integration with external systems
  • TDD and Unit Tests
  • Agile methodologies
  • ORM and other data access patterns
  • Using NoSQL databases (even to speed up your VCL software)
  • FireDAC advanced techniques
  • UI, UX, optimization for mobile and desktop
  • Real use cases for extended RTTI, Generics and Anonymous Methods
  • RESTful interfaces design and development
  • Architectures
  • Cool (dev) things that you are doing or that you did in the recent past


  • Software architects
  • Software developers
  • Project managers
  • IT managers
  • Trainers

The conference web site is

Up to Sep 17th you can get the ticket at the discounted early bird of 299.00 Euro. After that day the normal ticket price will be 359.00 Euro. Get it!

The ticket includes:

  • 2 conference days
  • Lunches (with very good italian food 😉 )
  • Coffee Breaks
  • Gadgets
  • Prize Draw


For this edition we at bit Time Professionals want to give some heavy discounts to some particular situations and people.

  • If you come to ITDevCon 2017 with others colleague from the same company (2 or more tickets bought by with the same invoice), you have 20% discount;
  • If you are less than 30 years old (up to 29 years old) you have 30% discount;
  • If you are less than 22 years old (up to 21 years old) you have you ticket for only 100€;

More information about discounts at the web site.


Do you want to see a particular topic or have a suggestion for ITDevCon2017? Let me know

As usual one of the most important part of ITDevCon will be the networking between attendees. I know about great collaboration born during ITDevCon. Be there and don’t miss this social opportunity!

Thank you and…  see you at ITDevCon 2017.

ITDevCon 2017 Spring Edition has been a success!

ITDevCon 2017 Spring Edition has been a success! Beyond the good crowd of loyal Delphi italian programmers that usually comes to ITDevCon, also a good number of new guys were coming to the “Spring Edition”. Maybe because the SE is shorter, maybe because all the speeches were in italian, maybe because the Linux support attracted new people… maybe for all these things (we are still giving a full meaning to the surveis took during the conference).

The “community” mood has been always present at ITDevCon, and the SE is not different. Here’s some photos taken by our official photographer Valentina.

All the other photos are available in the ITDevCon 2017 SE album on ITDevCon facebook page.

Thanks to our sponsors, the final raffle gets its usual success!

So a big thank you to:



Here’s some photos, check the full album ITDevCon 2017 SE album on ITDevCon facebook page.

The class during my speech about hard-core linux development with Delphi
The class during my speech about hard-core linux development with Delphi
Salvatore introducing columbusegg4delphi
Salvatore introducing columbusegg4delphi

Daniele Spinetti (a.k.a. Spinettaro a.k.a. Danielino) talking about RaspberryPI+Delphi controlling hardware.
Daniele Spinetti (a.k.a. Spinettaro a.k.a. Danielino) talking about RaspberryPI+Delphi controlling hardware.

Italian Food!!
Italian Food!!
Italian Food!!
Italian Food!!


See you at the next ITDevCon… the standard one!

ITDevCon 2017 Spring Edition

Yes, we did it!

As we anticipated at the last ITDevCon in Rome (oct 2016) in 2017 we organized another appointment with ITDevCon, called Spring Edition. The Spring Edition is shorter than the classic edition and it is only in italian language, but offers the usual high-level contents that the ITDevCon brand usually does.

Many users recognize ITDevCon as a “different” conference – it is more business oriented, more practical and more authoritative than many other conferences out there. We are glad of these opinions and we’ll do our best to mantain this situation. So, this year we want to test a different format and timing. To keep things simple, we organized the spring edition only in italian language (that’s it, all the speeches are in italian). Don’t be afraid, the standard ITDevCon conference will remain of 2 days in october/november timeframe and with the usual format and languages!

In this spring edition I’ll talk about the following topics (in italian):


I miei speech per ITDevCon 2017 Spring Edition

DelphiMVCFramework 3.0: l’evoluzione della specie!
Dopo oltre 7 anni di sviluppo ininterrotto DelphiMVCFramework è arrivato alla versione 3.0 ed è uno dei framework RESTful più popolari del mercato. Oltre ad avere nuove caratteristiche, la versione 3.0 si distingue per una serie di refactoring e componentizzazioni che la rendono più snella, veloce, potente ed estendibile. Inoltre, dmvcframework 3.0 aggiunge il supporto per Linux e per la serializatione automatica personalizzata. Anche solo ricompilando un progetto 2.x avrai un importante miglioramento delle performance. In questo talk vedremo cosa c’è di nuovo nella 3.0, tutti i cambiamenti rispetto alla 2.x e come sviluppare soluzioni dmvcframework per Linux. Se già conosci dmvcframework, o anche se vuoi conoscere uno dei framework RESTful per Delphi più popolari, non puoi perdere questo talk.

Delphi per Linux… ma per davvero! Segnali, servizi e daemon
Scrivere un’applicazione console che esponga un servizio TCP o che esegua altre operazioni in background sembra facile. Scriverla correttamente e secondo le best practices tipiche di Linux potrebbe non esserlo. Per chi viene da Windows la conoscenza di alcuni aspetti tipicamente Linux potrebbero fare la differenza tra un software professionale e uno che “da me funziona”. Ad esempio: come gestire i segnali Unix? Come gestire la concorrenza tra segnali? I miei interrupt software sono rientranti? Come far partire un daemon al boot? come farlo ripartire da command line? Come gestire il cambio della configurazione e il restart? Se il daemon dovesse andare in crash, come posso farlo ripartire in automatico? Come definisco le dipendenze tra daemon? In questo speech molto denso di informazioni daremo risposta a tutte queste domande con esempi su Ubuntu Linux scrivendo servizi per systemd (lo standard de facto per sistemi Linux moderni).

Trasforma un database relazionale in un vero decision support system con Elasticsearch
Quando la struttura dei dati è complessa, non strutturata o i dati da ricercare diventano tanti, il database relazionale non è più lo strumento adatto a gestirli in maniera efficiente. Anche il sistema più semplice genera dati non strutturati come log, testi descrittivi, campi “note” e altro. Ostinarsi ad utilizzare un database relazionale in uno scenario del genere è assolutamente controproducente e può comportare problemi di usabilità e performance per gli utenti finali. Tenere traccia dei dati non strutturati non è sufficiente a dargli un senso e a renderli una buona base per un DSS (decision support system). Ancora una volta, usare un database relazionale è una soluzione miope, antiquata e inefficiente al problema. ElasticSearch permette di dare un senso ai dati non strutturati, e/o non omogenei, in maniera efficace ed efficiente. In questo talk vedremo cosa è ElasticSearch e perché potrebbe aver senso integrarlo nella propria soluzione software. La possibilità di affiancare ElasticSearch ad un sistema esistente senza stravolgerne l’architettura attuale, rende la scelta di ElasticSearch vantaggiosa e indolore.

E’ possibile acquistare i biglietti per la conferenza direttamente dal sito.

Ci vediamo a Roma!


Delphi 10.2 Tokyo: REDIS Client is ready for Linux (VIDEO)

Now that Delphi can compile for Linux, I’d like to show how to use Delphi REDIS client on Linux.
Redis is a very powerful key-value store server used by the biggest companies in the world. While it is very popular in web applications with thousands of concurrent users, also traditional desktop applications can benefits by REDIS.
If you need to speedup you application or if you want to optimize your data access layer, I suggest you to partecipate to one of our Delphi and REDIS training.
In this video I’ll use a sample project included with the Delphi REDIS client project to show how is possibile to use REDIS to integrate Delphi Windows application and Delphi Linux servers.

The Linux compatible version of Delphi REDIS Client will be available through GetIt ASAP.


Delphi REDIS Client

RAD Studio Tokyo 10.2 Live Preview events in Rome and Milan

Yesterday and the day before, I was been the presenter for the RAD Studio 10.2 Tokyo Live Preview in Rome and Milan. There were a lot of interested people. As we all know, the Linux support was really awaited for the last 15 years or so (since the kylix time frame) all this interesting was awaited.

During the event I talk about some of the Windows 10 additions already present in the last versions and then I focused the biggest part of the “show” on the Linux support. I come with a couple of virtual machine; the first with Windows 10 and the last beta version of RAD Studio 10.2 Tokyo and the second with an Ubuntu 16.04.2 LTS. The audience has been really excited about all the possibilities. Now you can deploy your Delphi code as console applications or Apache modules into your Linux box. At the time I’m writing the officially supported distributions are Ubuntu 10.x LTS and RedHat Enterprise 7, but the binaries should works also in other “similar” distribution (for instance I plan to test ASAP a Debian server).

At the end of the events there’s been the prize draw for a total value of 20K euros more or less.

Here’s some photos of the Rome event.

WhatsApp Image 2017-03-16 at 08.49.27 (1)


And the winners of the prize draw i Rome are…
WhatsApp Image 2017-03-16 at 08.49.25 (1)

WhatsApp Image 2017-03-16 at 08.49.25

Here’s the photos of the Milan event

WhatsApp Image 2017-03-16 at 18.11.40 (1)

WhatsApp Image 2017-03-16 at 18.11.42



And the Milan winners are…

WhatsApp Image 2017-03-16 at 18.11.40

WhatsApp Image 2017-03-16 at 18.11.49

WhatsApp Image 2017-03-16 at 18.26.10


RAD Studio 10.2 Tokyo is a really promising release. Considering the current subscription model and all the new features that can be added in a relatively short amount of time, I think that we will see a lot of new development in the Linux and mobile area in not too much time.

See you soon.









ITDevCon Community Workshops: DelphiMVCFramework & Multithreading

As you probably know, monday and tuesday we held 2 ITDevCon Community Workshop.

On monday we had “Tutto su DelphiMVCFramework” (All about DelphiMVCFramework) a very intensive workshop which introduce al the major features about DelphiMVCFraemework:

  • DelphiMVCFramework architecture
  • Understanting Routing
  • Controllers
  • Routes and parameters
  • Renders
  • Action filters
  • Accessing data
  • Be amazed by the Mapper’s features
  • Sessions
  • JSON Web Token support (JWT)
  • Middleware
  • The built-in Authentication & Authorization framework
  • Serving static files
  • Server Side Views (a.k.a. SSV)
  • Using Push Notifications with DMVCFramework and RabbitMQ
  • The built in RESTClient
  • The amazing RESTAdapter (by Daniele Spinetti)

After a basic introduction about controllers, routing and renders, we give a look on all the advanced features. The people have been amazed by the framework flexibility and simplicity.

Here’s some photos.


About to start…



The class during the morning session



Lunch time!



And the end of the monday session, my friend Maurizio Del Magno brings a lot of piadinas ( and offered to cook them. So, we bring some Porchetta di Ariccia  ( and organized the first ITDevCon Community Dinner 🙂


Here’s Maurizio while is cooking the piadinas.



And this is the porchetta!img_20161128_181640


This is the link for the complete photo album


The day after, we had the workshop: “Tecniche per il multhreading” (multithreading tecniques). Have been introduced and explained all the major problems related to multithreading programming and then we show the fundamental tecniques to cope with them, including Parallel Programming Library. There were the topics.


  • What’s a thread?
  • TThread Basics
  • Synchronize background threads with the main thread: the easy way
    • Synchronize
    • TThread.Synchronize
    • Thread.Queue
  • How to correctly destroy a thread
  • When a piece of code is thread safe?
  • Fundamental synchronization tools
    • Critical section – TCriticalSection
    • Interlocked function – TInterlocked
    • Monitor – TMonitor
    • Mutex – TMutex
    • Events – TEvent
  • The producer-consumer pattern
  • Beware to the deadlock!
  • The RTL thread safe classes
    • TThreadedQueue<T>
    • TThreadList<T>
  • Practical applications of multithreading in database programming
    • Background queries
    • Parallels queries
  • Background HTTP requests
  • The parallel programming library: TTask, TFuture and TParallel.&For

Here’s some photos of the second day of workhop



The “multithreading” class


This is the link for the multithreading workshop album.


These 2 days have been very intensive, however have been a really success: lot of people, lot of good-old Delphi programmers but also a good number of younger (50%/50% more or less).
I’m planning to organize other ITDevCon Community WorkShop in the beginning of 2017.

See you soon guys, and keep in touch!



Delphi 10.1 Berlin Update 2 – startup problems and fixes

Just a quick note to leave documentation for other Delphi and C++Builder developers around here.

After installing the RAD Studio 10.1 Berlin Update 2 my RAD Studio installation was broken.

The installation reach the end but when I start RAD Studio I get a lot of messages of “Package raise exception XXX do you want to load the next time?”. All the dbx related packages raises that exception. Disabling all the dbx packages I get my RAD Studio running but it is half-working… here and there there are AV, and if I try to reinstall the dbx related packages I get the following error.


Moreover, I cannot use any of the deploy facilities built into the product. The PAClient executable return always “Error 217” even if launched from the command line.

After some struggling with this problem, my friend Stefan Glienke point me to the right direction with the following message: “I think I had some issue with the DBX package in a previous reinstall and IIRC it was because of a misconfigured/corrupt dbx settings file somewhere.”.

That point me to the right direction. I renamed the dbxconnections.ini and the dbxdrivers.ini so that the bpl cannot find them. Restarting RAD Studio I can reenable the dbx related package and the PAClient start to works as well.

So, I closed RAD Studio and opened the inifiles to check where could be the problems. Seems that in some installation/reinstallation/update some keys and section of the ini have been duplicated. So I just fixed the ini removing the duplicated sections and keys, renamed the files with the correct names and restarted RAD Studio.

Now it works.

We have the number, “Delphi Cookbook 2nd Edition” is a bestseller!

Delphi Cookbook 2nd Edition was published by PacktPub at the end of June 2016. I’m very happy to see that in just 30 days, it has become a bestseller in its category.

So far, the book has sold 13 copies each day, which is a good figure for a tech book (it should increase in the following months because the book will be available in more stores).
Currently the book is available on all the big online stores.

PacktPub Store


Apple iTunes



Some notes about ITDevCon 2016

PacktPub will be a sponsor of the upcoming ITDevCon in Rome (ITDevCon is the biggest Delphi Conference in Europe –  and they have organized a nice offer for all the ITDevCon attendants!

If you are a Delphi developer (or you want to know why Delphi is so interesting now) you cannot miss ITDevCon 2016.

Get your ticket here

Moreover, since the 1st edition of ITDevCon we saw that a lot of programmers wants to be at ITDevCon because is a great conference full of practical contents (and with good italian food 🙂 ) but leaving the office for 2 days often can be a problem. So, starting by this year, you can buy also a single day of conference! So, if you cannot be with us for 2 days, check the timetable, and book the day most interesting for you!






Mar., 22nd 2016: “Refactoring legacy code to design patterns”

On Mar,22nd 2016 I’ll talk about refactoring during a programmed skill sprint with the title: Refactoring legacy code to design patterns.

After a short theoretical introduction, there will be a live demo showing the power of refactoring and the power of the refactoring engine built in into the RAD Studio IDE. At the end of the session will be given some reference to the most important books about refactoring (IMHO).

Register here:


DelphiMVCFramework at the 10° Delphi Meetup in Dresden , Germany

Mathias Pannier did a nice talk at the 10° Delphi Meetup in Dresden, Germany. You can find his review with the slide (both in english) in his blog.

Mathias contacted me about some specific questions the audience did.

Here’s my replies.

  • Is it possible to have a [MapperJSONSer(‘first_name’)] attribute for DataSet fields?
    • Not currently. It quite simple to implement but now this feature is available only for objects using RTTI attributes. Maybe in the near future this will be extended also to dataset serialition.
  • Is it possible to implement a custom renderer for example for xml output?
    • Sure! DMVCFramework is really opened to extensions. You can implement renders for every format you like, you are not tied to the built in.
  • Which Delphi edition is required? Starter, Professional, Enterprise, Ultimate?
    • DMVCFramework requires Professional version, because WebBroker is available from that version upwards.
  • Did You have any performance comparison?
    • Yes, it is not a complete test, is just a rough test between DMVCFramework and nodejs. DMVCFramework is not running into Apache or IIS, but is using its INDY default web server so the actual performance using a real webserver are far better.


I’m planning to do more tests and as sson I’ll do them, will be published here and in the facebook group.

  • What about documentation?
    • The framework is quite intuitive, so after read this presentation (ITDevCon2013) you can go though all the samples (which covers all the features) and you will be up&running in in an hour or so.
    • However, some volenterous users, are starting to work on a more structured documentation. There will be a markdown generated site which will provide tutorial and devguide.


Still thank you to all the people which actively partecipating in this project.


Stay tuned.