ITDevCon 2024 Spring Edition: sun and code!
One week has passed since the conclusion of ITDevCon 2024 European Delphi Conference Spring Edition , the conference dedicated to Delphi developers organized by bit Time Group ( bit Time Software and bit Time Professionals ). 😊
I also made my little contribution to the event giving a session dedicated to MongoDB, or rather FerretDB. But let’s go in order.
Despite being shorter than its winter “big sister” counterpart (one day instead of two), this spring edition did not lack any of the ingredients that make the beauty of the event: exchanging of opinions and experiences, seasoned with a healthy dose of humor and washed down with a huge amount of interesting technical content.
What was talked about
I’ll tell you a little about the speeches I participated in, in addition to the one I brought, and why I appreciated all of them greatly.
One of the most fascinating talks was on genetic algorithms: inspired by natural selection processes, this category of algorithms allows us to solve impossible problems, or which would require an extremely long time (virtually infinite) to produce a right result. Daniele Teti (CEO, MVP, trainer and consultant in bit Time Professionals) started from the statement of the problems that are typically solved with these algorithms, such as planning of work shifts, determination of a itinerary on a car navigator, or the most classic of all examples: the Knapsack Problem . Developers generally avoid similar problems by circumventing the obstacle, i.e. by avoiding proposing them as features or by modifying the initial requirements. Thanks to the overview offered by this talk, that has been very balanced from theoretical explanations through practical parts, we now know which tool we can use to face these challenges.
I chose the next talk due to force majeure: it was mine! 😅 I have provided an overview of FerretDB and its features. It is a valid opensource alternative to MongoDB. As those who use this database - probably the most famous of the NoSQL family - know well, the company that develops MongoDB has changed its licensing policies by placing various limitations onto this database. Thanks to the layer offered by FerretDB we can enjoy a NoSQL storage that is totally compatible with MongoDB (with few exceptions). It is also a full open-source tool, based on technologies that are the same, such as PostgreSQL used to save our data, and the Go language, including all the tools that accompany them. Through live practical demonstrations, I showed how any administrative tool for MongoDB allows you to access databases managed by FerretDB without limitations, and how to exploit them from a Delphi application through the use of FireDAC components and its types that belong to the MongoDB driver, which is also fully compatible with FerretDB.
Over the next hour I followed the interesting talk by Omar Bossoni (CEO & Digital Developer at BCI Solutions Srls) on the so-called Mobile Local Push Notifications. Notifications have always been a fundamental element of the experience of using mobile devices. All the best-known platforms (Android and iOS) offer tools to be able to emit and receive them, relying on targeted external services. However, it may happen that you want to have “private” notifications, confined within a local network. Well, especially in the Apple world, obtaining them is not simple at all: starting from the labyrinthine procedure of registering the app in the Apple dashboard and going to the request for the necessary entitlement to manage this kind of notifications, up to the deployment in production, Omar showed in detail all the steps to follow and all the challenges that must be overcome.
Thanks to the “double session” of Daniele Spinetti (MVP and developer at DICE) we really traveled through the Event-Driven Architecture. We have seen the scenarios this approach brings added value to, without exclusively representing a complication compared to the simpler “monolith”, also analyzing various patterns mainly aimed at separating the application components, avoiding excessive strong dependencies between them, among strategies and techniques to solve the problems that such architecture brings with it, since as we well know the form we choose to give to software is always the result of a compromise, a “trade-off” in which we try to balance the potential of the solution we have chosen while mitigating its problems. I fully realize that this short description cannot do full justice to the contents of this two-part talk, however the concepts explored and the elements covered were so many that summarizing them in a few lines would be a rather difficult task: one more reason to participate in presence next time. 😉
The last talk that I am going to mention is from Maurizio Del Magno (developer of Levante Software) on TVirtualInterface: it’s a class unknown to many Delphi developers, but with infinite possibilities (so much that it can be considered like “the philosopher’s stone”). It allows you to create dynamic implementations at runtime of any interface, giving access to extremely flexible solutions that can really result in very few lines of code, thus improving maintainability. Explaining the TVirtualInterface is like describing the Matrix: it cannot be done, it must be seen live, or explored through the excellent examples that Maurizio presented as “case studies”, very useful for understanding its potential; for example, the implementation of a “lazy loading” mechanism is appropriate to defer the creation of an object over time without requiring changes to the code that uses it, which continues to receive in any case an always valid reference to an object. For those familiar with the C# language, the TVirtualInterface allows you to set up implementations similar to those that can be created with the DLR (Dynamic Language Runtime) present in .NET and the infamous dynamic type.
Conclusions
Whether it is the long edition or the short one, ITDevCon always turns out to be an unmissable event for anyone who works in the Delphi world, not only for its always current and trendy contents but also for the background which makes them pleasantly enjoyable, thanks to the flawless efforts of the bit Time staff, who puts their souls into it, and the great opportunities with which it is possible to share experiences and advice with all the other participants, without neglecting the break moments and the lavish catering, able of jeopardizing any diet… after all, the conference is held on a Friday so you can resume the diet fast on the following Monday. 😄
If you are curious, you can read another short official report in the bit Time news section .
If you have not taken part to this edition, I warmly invite you to do so between the end of October and the beginning of November, when the winter edition will be held, so you can “forgive” yourself.
See you at ITDevCon 2024 Winter Edition! 👋🏻