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.









Delphi Redis Client available through GetIt Package Manager

Delphi Redis Client
Delphi Redis Client Logo

Since some days ago, Delphi Redis Client, the official redis client for Delphi, is available through GetIt.

You can get the library with just a click, now there aren’t reasons to be afraid by Redis utilization 🙂

More info and the (very simple) installation instruction at the dedicated page.

The official repository if on github https://github.com/danieleteti/delphiredisclient

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 (https://en.wikipedia.org/wiki/Piadina) and offered to cook them. So, we bring some Porchetta di Ariccia  (https://en.wikipedia.org/wiki/Porchetta) 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.

ITDevCon: -15 days

In about 2 weeks ITDevCon 2016 will start!

The agenda is final since one week already, with most of the speeches already defined months ago.

You can check the agenda here: http://www.itdevcon.it/en/agenda

Get Your Ticket

We have 15 speakers from all over the world, from Brazil to Slovenia, from Germany to Italy; lot of contents, lot of topics. Almost all the speakers are Embarcadero MVP.

In every field you as Delphi developer usually works, will find something really interesting at ITDevCon.

Are you exploring how to create web client applications?

We’ll talk about interfacing between Delphi and web technologies with 2 speech specialized about Angular2 from Google and React from Facebook.

Do you want to stay current with your Delphi knowledges?

At ITDevCon we have the most updated list of news in the Delphi world! The market go on you cannot miss the technology that can give you a competitive advantage!

Do you need to know a clear path to apply unit tests in your Delphi code?

There will be a speech which talk about everything you need to know to start to use unit tests!

Are you using Firebird and you plan to migrate to version 3.0?

At ITDevCon we’ll talk beeply about the new Firebird 3.0, how to migrate to it from the previous version and how to optimize Firebird databases.

Do you need an application server and you have to choose among what the market offers?

At the conference there will be 2 speeches about DelphiMVCFramework, one of the most popular framework for REST services in Delphi, and MARS Curiosity, another framework to evaluate.

Do you need to speedup your applications?

There are specific talks about Redis and MongoDB which will make your application faster than ever.

Are you working in a particular complex environment to debug?

ITDevCon will offer a couple of talks about the advanced utilization of Delphi debugger and memory manager.

Are you interested in Dependency Injection and ORM?

The lead developer of Spring4d framework will talk to us about the latest version of the framework which address these particular needs (among other).

Are you interested in IoT, Arduino or Mobile?

There 2 speech about this topics showing how to integrate Delphi mobile app and an Arduino board.

Are you wondering about the new possibilities provided by the Windows Anniversary Update?

At ITDevCon there will be a session focused on using WinRT APIs from Delphi and building applications for the UWP Desktop Bridge (aka Centennial Bridge) in Windows 10 Anniversary Edition!


You can also get the ticket for only one of the two days of the conference.

More over our beloved sponsors give us a set of complete licenses and books for the conference attendants that will be available at the Prize Draw at the end of the second day. There are also chances that the value of what you may win is more than the price of the ticket you payed to be there!

Really, don’t miss this edition and Get your ticket!

See you in Rome!

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 – www.itdevcon.it)  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 http://www.itdevcon.it/registration#ticket

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!






Delphi Cookbook – 2nd Edition

Delphi Cookbook 2nd Edition

Starting from today my Delphi Cookbook 2nd edition is available to buy. The first edition got a lot of interest and appreciation comments. Delphi Cookbook is a best sellers for PacktPub (my editor) in its category, the editor decided to ask me a 2nd edition. So here it is!

What’s new

The problem with each “2nd” edition is: “What I can expect if I already bought the 1st one?”. This edition contains all the recipes from the 1st edition updated to the new Delphi 10.1 Berlin, plus a lot (ca 150 pages) of brand new contents. There is also a brand new chapter about less-known RTL classes. Also some “old” recipes has been completely rewritten because some techniques has been superseded by the newer Delphi versions. So, if you liked the 1st edition, you should find something interesting also in the 2nd one. The 2nd edition contains 470 pages compared to the 328 of the 1st edition.

Topics of the book

  • Understand the basics of professionals Delphi programming
  • Become a Delphi language Ninja
  • Knowing the new RTL classes to work with HTTP/S, Net encodings, event bus, compression etc.
  • Develop visually stunning applications using FireMonkey
  • Deploy LiveBinding effectively with the right OOP approach
  • The thousand faces of multithreading: syncronization tecniques in the real world
  • The Parallel Programming Library: Tasks, Futures parallel For
  • Create server-side programs to serve RESTful web services and provide data to your mobile apps
  • Use well-defined GUI design patterns to build mobile applications that provide a great user experience
  • Build mobile apps that read data from a remote server efficiently
  • Using sensors and network in mobile apps
  • Call the platform native API on Android and iOS even for an unpublished API
  • Manage software customization for your customer by making better use of an extended RTTI
  • Implement the most popular design pattern without wasting too much time on debugging and bug fixing

Some considerations

Delphi Cookbook 2nd edition, just like to 1st one, it is not an introductory book, you will not find any “Introduction to the Object Pascal language”, however the majority of the chapters are not too complex and can be grasped also by the new Delphi programmers.

Where to buy

The book is available for sale on the editor website and on Amazon.

PacktPub (Official book page)



Delphi Cookbook 2nd Edition on Amazon


Table of contents


  • Change your application look&feel with VCL styles and no code
  • Changing the style of your application at run time
  • Customizing TDBGrid
  • Using owner draw combos and listboxes
  • How to make an owner draw control aware of the VCL styles
  • Creating a stack of embedded forms
  • Manipulating JSON
  • Manipulating and transform XML documents
  • I/O in the 21th century: knowing the streams
  • Creating a Windows service
  • Associating a file extension with your application on Windows
  • Be coerent with the Windows look&feel using TTaskDialog


  • Fun with anonimous methods – using higher-Order functions
  • Writing enumerable types
  • RTTI to the rescue – configuring your class at runtime
  • Duck typing using RTTI
  • Creating helpers for your classes


  • Check strings with regular expressions
  • Consuming RESTful services using native HTTP(S) client libraries
  • Cope with the encoded Internet world using System.NetEncodings
  • Save space using System.Zip
  • Decouple your code using a cross platform publish/subscribe mechanism


  • Giving a new appearance to the standard FireMonkey controls using styles
  • Creating a styled TListBox
  • Impressing your clients with animations
  • Using master/details with LiveBindings
  • Showing complex vector shapes using Paths
  • Using Firemonkey in a VCL application
  • Reinvent your GUI a.k.a Mastering Firemonkey controls, shapes and effects


  • Synchronizing shared resources with TMonitor
  • Talking with main thread using a thread safe queue
  • Synchronizing multiple threads using TEvent
  • Displaying a measure on 2D graph like an oscilloscope
  • Using the Parallel Programming Library in the real world: Tasks
  • Using the Parallel Programming Library in the real world: Futures
  • Using the Parallel Programming Library in the real world: Parallel For/Join


  • Developing web client JavaScript applications with WebBroker on the server
  • Converting a console service application to Windows service
  • Serializing a dataset to JSON and back
  • Serializing objects to JSON and back using RTTI
  • Sending a POST HTTP request encoding parameters
  • Implementing a RESTful interface using WebBroker
  • Controlling remote application using UDP
  • Using AppTethering to create companion app
  • Creating DataSnap Apache modules
  • Creating WebBroker Apache modules
  • Using native HTTP(S) client libraries


  • Taking a photo, applying effects, and sharing it
  • Using ListView to show and search local data
  • Using SQLite databases to handle a to-do list
  • Do not block the main thread!
  • Using a styled TListView to handle long list of data
  • Customizing the TListView
  • Taking a photo and location and sending it to a server continuously
  • Talking with the backend
  • Making a phone call from your app!
  • Tracking the application’s lifecycle


  • Using Android SDK Java classes
  • Using iOS SDK classes
  • Displaying PDF files in your app
  • Sending Android intents
  • Letting your phone talk: using the Android TextToSpeech engine
  • Using Java classes in Android apps with Java2OP
  • Do it in background, the right way: Android services


In the next months there will be some events regarding the book.

  1. A one day workshop, held in Rome and Milan, about selected recipes of the books with additional contents and other “live” considerations.
  2. Some blog post about contents that not fitted (by time and other contraints) in the book. Most of them will be about the server side development and will involve Redis and other open source projects.
  3. Oct 6,7 2016 PacktPub will be one of the sponsor of ITDevCon 2016. During that event there will be some surprises for the attendants offered by the Delphi Cookbook “series” (yes, 2 is a series 🙂 ) editor.



As usual, writing a tech book is an hard task. 470 pages are more than I was thinking at the day 0. However, I’m quite (not completely, as usual) satisfied about the work. I really hope that you will enjoy the content at least as much I enjoy the writing.

ITDevCon 2016 – Call4Paper

ITDevCon2016 logo

ITDevCon2016 will be held next Oct 6th, 7th in Rome (Italy).

The post has been updated as well.

Dear potential ITDevCon speaker,

As every year (but 2015), I’m building the agenda for next ITDevCon that will be held next October 6th, 7th in Rome (Italy), in a new location, the bit Time group headquarter!

This will be the 7th conference edition and will be organized 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 d.teti@bittime.it.

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
  • Speaker’s profile

I’m looking forward to your proposal. The call4papers ends at Jul 31st, 2016 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
  • IoT (Internet of Things) solutions
  • FireMonkey platform
  • MacOSX development
  • Android development
  • iOS development
  • Windows development
  • Mobile development (Android and/or iOS)
  • Develop UIs for different devices (smartphones, tablets, TV, watch etc)
  • LiveBindings ®
  • Delphi best practices
  • Design Patterns
  • 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
  • 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

Target audience

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

The conference web site is http://www.itdevcon.it

Up to May 31st you can get the ticket at the discounted early bird or 249.00 Euro. After that day the normal ticket price will be 349.00 Euro. Get it!

The ticket includes:

  • 2 conference days
  • Lunches
  • Coffee Breaks
  • Gadgets

Do you want to see a particular topic or have a suggestion for ITDevCon2016? 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 2016.

Great success for RAD Studio in one of the most important italian government palaces

This week, in one of the most important government palaces in Italy (I cannot say which one), I did a consultancy about mobile development. The internal dev team is currently using Xamarin and they have a blocking problem with it. In the team there is a friend of mine which called me some days ago to know if I know how to solve their problem using Delphi. I told him that the “blocking” problem could be solved with Delphi. The resultant 2 days of consultancy were been quite hard, but the result has been really rewarding. A long standing problem has been elegantely solved using Delphi in a couple of hours.

The problem was about using HTTP client certificates with iOS in a Microsoft architecture, where each user had its own certificate.

I dont know Xamarine so deeply to say if the problem could be elegantly resolved with it as well, but the team is quite smart and skilled, so I think that they have been tried all the documented solutions to face the problem, but without success.

I want to thank the always helpful Jim McKeeth and the great Diego Navarro from Embarcadero, to have help me about this issue. Thank you guys.


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: https://www.embarcadero.com/landing-pages/skill-sprints