

Serge Pilko
Members-
Content Count
7 -
Joined
-
Last visited
-
Days Won
1
Serge Pilko last won the day on June 26
Serge Pilko had the most liked content!
Community Reputation
17 GoodRecent Profile Visitors
The recent visitors block is disabled and is not being shown to other users.
-
We have had these Delphi FMX guides available for a while, and I thought it could be useful to share them here: How to use Google Maps to determine the user's location in the Embarcadero Delphi FMX app: https://www.softacom.com/blog/how-to-use-google-maps-to-determine-the-users-location-via-embarcadero-delphi-fmx-app/ - shows how to access the user's coordinates and display them on a map. How to save and read data from Google Sheets in an Embarcadero Delphi FMX app: https://www.softacom.com/blog/development/how-to-save-and-read-data-from-google-sheets-in-an-embarcadero-delphi-fmx-app/ How to implement multi-touch in an Embarcadero Delphi FMX app: https://www.softacom.com/blog/development/how-to-add-multi-touch-to-an-embarcadero-delphi-fmx-app/ - shows how to add multi-touch drawing support How to use gestures in an Embarcadero Delphi FMX app: https://www.softacom.com/blog/development/how-to-use-gestures-in-embarcadero-delphi-fmx-app/ - shows how to handle swipe, zoom, and rotate gestures How to master FastReport in Delphi: https://www.softacom.com/blog/development/mastering-fastreport-in-delphi-dynamic-file-reporting-and-visualization/ – shows how to create dynamic reports and charts How to send email via an Embarcadero Delphi FMX app using the Gmail API: https://www.softacom.com/blog/development/sending-email-via-embarcadero-delphi-fmx-app-by-using-api/ How to generate images in an Embarcadero Delphi FMX app: https://www.softacom.com/blog/development/image-generation-capabilities-with-delphi-fmx-application-via-openai-api-dall·e-models/ - shows how to use OpenAI DALL·E for image generation
-
Migrating a Delphi XE4 System to MSSQL, PostgreSQL, and Linux – Softacom’s Experience
Serge Pilko posted a topic in Tips / Blogs / Tutorials / Videos
At Softacom, we recently completed a large-scale project where we modernized a Delphi XE4 application. The system was used daily for payroll & HR, and over time, it had grown into a huge codebase with outdated dependencies. The goals were clear: Update the database access layer Support both MSSQL and PostgreSQL Add Linux support Introduce a testing framework to stabilize future changes Challenges we faced: Outdated data access technology – the system was incompatible with modern DB systems No testing framework – made regression risks high Cross-DB migration issues – MSSQL vs PostgreSQL differences (LEN() vs LENGTH(), IDENTITY vs SERIAL, transaction handling, etc.) Platform restrictions – Windows-only code needed to run on Linux Knowledge gaps – some application areas were undocumented and poorly understood, even by the company What we did: Replaced the legacy DB layer with UniDAC, making the app work with both MSSQL and PostgreSQL Handled SQL dialect differences and concurrency issues during the migration Added support for Linux by rewriting ±769,000 lines of Windows-specific code Built a unit testing framework from scratch (500+ tests) Automated about 30% of the process with our internal conversion tools Outcomes? Query time reduced by ±35% Defects cut by ±50% thanks to tests Full Linux (Ubuntu, CentOS, Debian) support added Technical debt reduced by ±40%, making the system easier to maintain and extend If you are interested in a full breakdown of this project, we have published it here: https://www.softacom.com/cases/softacom-transformed-a-delphi-xe4-system-for-mssql-postgresql-and-linux/ -
Hello everyone! Together with the Softacom team, I have been exploring how AI can support Delphi projects. As part of these experiments, we created a video showing how to use OpenAI features to generate text, images, and speech via an Embarcadero Delphi FMX app. If you are curious how these APIs can be integrated into your Delphi workflow, check out our video. I hope you will find it useful! Watch the video: If you prefer reading, we have article versions too: Generate text with GPT: https://www.softacom.com/blog/development/text-generation-capabilities-with-delphi-fmx-application-via-openai-api-gpt-models/ Create images using DALL·E: https://www.softacom.com/blog/development/image-generation-capabilities-with-delphi-fmx-application-via-openai-api-dall·e-models/ Convert text to speech with OpenAI API (TTS-1 and WHISPER-1 models): https://medium.com/@softacom.com/speech-and-text-by-speech-generation-capabilities-with-delphi-fmx-app-via-openai-api-tts-1-and-b19293070588
-
How upgrading from Delphi 7 to Delphi 12 eliminated 15 monthly support tickets and unlocked Linux deployment.
Serge Pilko replied to Serge Pilko's topic in Tips / Blogs / Tutorials / Videos
Thank you! For this specific project, we stayed in the Delphi ecosystem to meet the client's requirements around team familiarity and step-by-step modernization. But we are seeing more and more companies ask about web-based options, especially combining a Delphi backend with JS or Blazor front-end. In the future phases, this client is considering exactly that: a service-based architecture with a modern front end. We are currently evaluating .NET Blazor + Delphi API for this project -
How to Use ONNX Runtime in Delphi for Object Detection
Serge Pilko posted a topic in Tips / Blogs / Tutorials / Videos
Softacom has recently created a video showing how to use ONNX Runtime in Delphi to run object detection. The demo includes: A quick overview of ONNX Runtime Three integration approaches Pros and cons of each method, from HTTP services to native DLL calls and Python wrappers Live examples of AI-powered object detection in action And most importantly: how you can set it up the same way If you are exploring ways to bring AI features into your Delphi application, this video might be helpful. Watch it here: https://youtu.be/WDaCjraF9ts -
How upgrading from Delphi 7 to Delphi 12 eliminated 15 monthly support tickets and unlocked Linux deployment In May 2024, we were contacted by a European leader in natural gas measurement systems. Their software was partly built in Delphi 7 and partly in C#. It had become difficult to maintain. The company wanted to migrate to Delphi 12, modernize the UI, and enable Linux deployment, without breaking existing functionality. Our team faced and handled the following challenges: The project relied on Delphi 7. That version lacked full Unicode support. The framework used ANSI strings by default, and this created critical limitations for modern global applications. The legacy app only ran on 32-bit Windows, using outdated Win32 APIs and hardcoded paths (C:\Data\). This prevented deployment on Linux cloud servers (AWS/Ubuntu). The app was built on obsolete BDE components and unsupported libraries. Here's what we did: ✅ Migrated from Delphi 7 to Delphi 12 ✅ Replaced BDE and Indy 9 with FireDAC and Indy 10 ✅ Refactored code for cross-platform compatibility ✅ Delivered a modernized UI with preserved workflow familiarity We achieved: - 15 support tickets per month were reduced to zero - Windows-only application is now cross-platform - Overall, the application is more prepared for future challenges A few months later, the client returned for an estimate to migrate other Delphi projects to a web-based platform. If you want to see the full story, with the challenges and solutions broken down, follow the link https://www.softacom.com/cases/modernizing-industrial-software-with-delphi-12/
-
Legacy Database Migration to PostgreSQL
Serge Pilko posted a topic in Tips / Blogs / Tutorials / Videos
Turning a legacy database into a modern, high-performance platform might seem intimidating. Old routines, custom PL/SQL, proprietary extensions. There is a lot that can break. But with careful planning, the right tools, and a methodical approach, you can make the move safely. Migration can take 3 phases: Assessment phase. The first step is identifying the schema's complexity, custom code, and potential pitfalls. Pilot phase. The second step is about testing the migration path with low-risk components first. Full migration phase. The third step is to minimize downtime and ensure that your data is consistent. You should prepare a rollback plan, backup your data, and carefully cut over with extensive testing afterwards. Some of the most common pitfalls you may face include: Fully trusting automation to do everything. ORM differences. Transaction isolation and locking mechanisms. It is not the same in Oracle and PostgreSQL. Extension dependencies. Missing libraries can break your migration if you are not careful. Our team at Softacom recently successfully performed a complex migration for a financial institution. It required a phased approach. We migrated over 800 tables and 300 routines from Oracle to PostgreSQL, retaining data integrity and functionality, all while avoiding significant outages and preserving business operations. If you want more detailed information about what we did, you can find it here: https://www.softacom.com/wiki/how-to-migrate-a-legacy-system-to-postgresql-real-world-example/