From the blog

An Introduction To A High-Performance JS Grid

Nowadays, a large amount of data keep generating in businesses, and sometimes they need to display that information on websites for the consumers. The common way of displaying data on a website is using an HTML table. However, showing a large amount of data in an HTML table is cumbersome, especially if it slows down the entire page load. Therefore, if you want to show a large amount of data in a table on your web page, using a grid is the best way to do that.  A grid is similar to a table in HTML elements, but it allows you to easily fetch, scroll, sort, group, and filter a large number of data rows. When loading and processing large data sets, the performance is important because it should not hinder the user experience.  A high-performing js grid has a good initial page load time which is the amount of time the grid takes to load the initial data set. It is also efficient in dynamic filtering or the time it takes to filter one column. In addition, when considering a large amount of data in a grid, users often need to scroll through various sections of the grid to see the rest of the data. This scrolling speed is a good indicator of grid performance, and high-performing grids have a good scrolling speed that amounts to seconds.  Ext JS data grid is a high-performing grid that allows loading and manipulating a massive data set within milliseconds. In most benchmarking experiments, almost all the JS grid types from different vendors have shown good initial page load time and dynamic filtering speed. However, all those grids have shown a greater variation in scrolling speed, except when viewing the first few records of the grid. the Ext JS data grid has an outstanding scrolling speed which is 300x faster than other leading data grids, which can fetch and display massive sets of data in less than one second Ext JS grid consists of two parts which are Ext. data.Store and Ext.grid.The panel. The datastore represents the data and the set of columns in the grid to render.  The data stores give Ext Js grids the capability to load data inline and load them dynamically on-demand. It also allows loading nested data, sorting, and filtering. The following example shows a simple data store specified in JSON data structure which will be loaded to Ext Js Grid. Ext.create(‘Ext.data.Store’, { storeId: “myProductStore”, fields: [‘productid’, ‘title’], data: [{ ‘productid’: ‘1’, “title”: “LindtChocalate” }, { ‘productid’: ‘2’, “title”: “Milk” },] }); Ext.grid.The panel is the key component that allows displaying a massive amount of tabular data on the client side. For example, the below code generates a simple grid with two columns. The grid will load the data we specified in the above-specified data store. The grid generated will consist of the columns specified below and the header title ‘Products .’ Under the title will show the data directly below the header title.  var columns = [{ text: ‘productid’, dataIndex: ‘productid’, flex: 1 }, { text: ‘title’, dataIndex: ‘title’, flex: 1 }]; var grid = Ext.create(‘Ext.grid.Grid’, { title: ‘Products’, store: “myProductStore”, columns: columns, layout: ‘fit’, renderTo: document.body, width: ‘100%’, height: 300 }); Raw and Column operations, rendering, and scrolling Ext JS grid consists of a rich set […]

Read More

This Is The Blockchain: Expectations vs. Reality

We have discussed Blockchain technology in our “Everything You Need To Know About Blockchain” article. In that article we have learned about: Immutability Distribution How trust issues can be resolved with Blockchain Blockchain in the financial industry High integrity with Blockchain – and more You might find it useful to read that article first as a useful overview of what people mean by The Blockchain. We also talk about cryptocurrencies built with Object Pascal/Delphi programming language. What is the blockchain? Blockchain is simply a database containing a growing list of records named blocks, linked, and secured using cryptography. Each block holds a hash pointer that links to a previous block, timestamp, and transaction data. So, now we have a chain of blocks or just blockchain as many people call it. To point out that this chain of blocks or database is open, distributes system with every participating computer maintains a copy. What are the expectations of Blockchain? Market investigation indicates that blockchain technology will rule the future because of its many benefits like: Data transparency Immutability Decentralization Security A growing number of people think Blockchain is the future because it inspires a new generation of platforms that are easy to use, accessible, scalable, and interoperable. What is the reality of Blockchain? Despite the possibility that blockchain technology is not supported by many countries because of limits and control over blockchain projects. For instance, governments are fighting to not utilize Blockchain. Unless if blockchain technology matures through enough reforms to support the problems that we are having, it can be applied to every field of our society. Until now, blockchain technology has been a massive breakthrough in the financial industry: Cryptocurrency Decentralized Finance (DeFi) Art Collectibles – Non-fungible token (NFT) When companies started to accept cryptocurrencies, people started looking at the underlying technology that made cryptocurrencies possible. They are based on the basic concepts of cryptocurrencies applied to the deployment of general-purpose applications. These applications are called Smart Contracts, and this defines the business logic and after deployment to the network, it can be used to implement different use cases securely. Is it really worthwhile to integrate Blockchain technology? Technologies take time to be accepted by everyone. Blockchain technology can be a problem in some cases with specific people. But we can see that the financial industry is benefiting from this technology because it offers immutability, transparency, and reliability. For example, Blockchain has all the needed features in supply chains. Supply chain data is not always perceptible, available, or trusted. But blockchain technology helped them to create authenticity over these problems.  How to create decentralized applications with smart contracts in Delphi? You can utilize Delphereum which is an interface for the Ethereum blockchain that allows native development of decentralized applications using the Delphi programming language. In fact, the stability, security and blinding speed of Delphi native applications means it’s ideally suited to the task, Moreover, you can find samples of applications for starting your project with the Ethereum distributed computing platform. You can check out the post below to learn about using Ethereum with Delphi, smart contracts, and more helpful topics. Next-Generation Cryptocurrency – Pascal Pascal, also known as PascalCoin, is a fast, zero-fee, scalable, and decentralized multi-purpose blockchain designed for payments, data operations, and layer-2 applications. Enabled by the SafeBox technology to become the world’s first […]

Read More

TMS Analytics joins TMS Academic family

Perhaps this is our product that suits and targets students & teachers best and finally it is available now as a free edition for students & teachers. TMS Analytics helps students by providing a library to easily evaluate mathematical expressions, calculate symbolic derivatives & integration, solving non linear equations, approximation function calculation and more… This library is fully cross-platform, so it can be used in VCL Windows applications as well as FireMonkey applications for Windows, macOS, Linux, Android & iOS. We encourage and hope that students will discover & learn to appreciate Delphi even more when having TMS Analytics in their arsenal of tools.  While you are visiting our academic offerings, check also following products available free for students & teachers: TMS VCL UI Pack: extensive UI controls library for VCL Windows applications TMS WEB Core: Object Pascal RAD component based web client development  TMS FNC UI Pack: extensive UI controls library for both VCL Windows applications & FireMonkey cross-platform applications TMS Aurelius: ORM framework for Delphi with full support for data manipulation, complex and advanced queries, inheritance, polymorphism, and more TMS Flexcel for VCL/FMX: Powerful, extensive & flexible component suite for native Excel report & file generation & manipulation  Also in the coming year 2022, we want to extend our academic offerings! Let us know what products you look forward to the most to join the TMS Academic family. Our team is listening!

Read More

‘How it works’ video series

With this blog we want to announce our new series of ‘How To” videos, presented by our colleague Holger Flick. In these video series you will learn how you can achieve basic interesting functionality with little to no code! Most of the time developers are blocked in a major project, just because of a little piece of information that is missing! This can be a common problem that keeps happening. That is why FlixEngineering and tmssoftware.com will work together to provide you hands-on solutions by explaining this step by step. Unlike other videos these series will not solve complex problems, here we will focus on simple “how to” questions! Subscribe to our YouTube channel and stay tuned for our first “How it works” video:   Happy Holidays!

Read More

How To Automate Large Numbers Of Delphi Project Builds

What is build automation? Despite the ever-increasing rise of mobile devices, desktop applications are still the backbone of enterprise environments. Typically, these enterprise solutions are made up from multiple discrete modules which are harnessed together to create an application suite. But even applications which are themselves monolithic there may exist multiple versions at any one time either to target specific use cases and operating systems or to provide for trialing versions of new functionality. It’s often quite complicated to keep on top of situations like this. It can really become overwhelming once you start to factor in things like cross-platform multi-device targets and functionality which includes localization into different languages such as a user interface which supports English, French, German, Spanish and so on Automating the builds of applications can be a huge improvement for developers who need to make various build scenarios and make repeated actions automatic. Automation can also help prevent mistakes which can creep in during repetitive and tedious tasks as our minds start to wonder or we lose focus. When we think about building web or mobile applications, we can think about techniques such as continuous integration and development pipelines or CI/CD as it’s more commonly referred to. Despite the benefits, developers are still often slow to utilize CI/CD for building and automating the builds and tests on desktop applications. Here’s a few suggestions on things to consider incorporating into your development and release processes which might help. How can I automate Delphi project builds? There are dozens of different solutions available to automate the process of building Delphi projects, but in this spotlight, we’re going to talk about MiTeC Project Maker and with a bonus solution at the end. What is MiTeC Project Maker? MiTeC Project Maker is a tool for automated batch Delphi projects building. With the Project Maker, you can set compiler configurations, define actions processed before and after building, patch version information of built binary, sign that binary with a specified code-signing certificate, apply for 3rd-party software protection, and many more. How does Project Maker work? Project Maker offers a clear powerful interface for project building task definition. Each project can contain an unlimited number of tasks. A ‘task’ represents a Delphi project as defined in a dpr or dproj file. Moreover, Project Maker features Profiles, where you can specify common properties for a project. The project can have an infinite number of profiles. By utilizing profiles, you can simply switch between a variety of build configurations.  Compiler Directives & Options Build options Signing tool Form Cleaner Versioning and more How can we use GitHub Actions to supercharge our GitHub workflow? With GitHub Actions, you can automate, customize, and execute your software development workflows right in your repository.  GitHub Actions are event-driven, meaning that you can run a series of commands after the specified event occurred. For instance, you can set a trigger to pull request event, and when there is a new change GitHub Actions starts code testing. Without any CI/CD integration, you can have everything with GitHub Actions. It gives end-to-end CI and CD capabilities. Additionally, it is in your GitHub repository. How do I use GitHub Actions on Delphi projects? One of the Delphi MVPs, Darian Miller, has written a number of useful articles and tutorials on Delphi. On his RADAuthenticator blog series, he shared his experience on configuring GitHub Actions with […]

Read More

The Pros And Cons Of Artificial Intelligence

Artificial Intelligence, or AI as we have come to refer to it, is a broad-ranging branch of computer science that focuses on automatic ‘thinking’ programs or machines that aim to imitate humans’ problem-solving and decision-making capabilities. Contrary to popular belief, artificial intelligence is built for humans, not to replace us but to make our jobs easier and augment our own abilities.  According to a recent article in Statistica in 2020, “the global total corporate investment in artificial intelligence (AI) reached almost 68 billion U.S. dollars, a significant increase from the previous year”. Also, another report titled “Global Artificial Intelligence in Retail Market Facts & Factors” projects the AI retail market will reach 20.5 billion U.S. dollars by the end of 2026, expanding at CAGR by 39% between 2020 and 2026. However, this parabolic growth in the artificial intelligence industry has led many to ponder what kind of impact AI has already had and will have in the future, with some doubting if AI’s effect will ultimately be for the benefit of society as a whole. What are the Pros of artificial intelligence? Over the years, artificial intelligence has found use cases in various industries, some of which constitute its pros. This article goes through a few of the views of either side of the arguments. Can AI really be useful to make ‘smart’ apps? In our daily life, artificial intelligence has numerous applications. For example, AI, and more specifically, machine learning, is used in face detection when taking pictures with smart devices. It helps in recognition of our live voice chat in smart devices such as Alexa, Apple’s Siri and even Cortana. In Google, the AI provides the facility of typing and responding purely by voice. This is one of the best uses of artificial intelligence. AI also provides direction and mapping in our navigation devices to assist with driving navigations to exact locations. The early navigation solutions were purely algorithmic, using mathematical techniques such as path analysis and optimization and the wonderfully named “simulated annealing” to pluck a good route from the myriad possibilities. Now those navigational instructions are enhanced with AI and machine learning to adapt to traffic conditions it has ‘learned’ have a negative impact on an otherwise good choice of route. Apple devices, for example, will suggest a good time to leave for your regular commute. In common with others it will also pick the nearest restaurants it ‘knows’ you like and apply filters to avoid ones it has learned you dislike. It’s not true AI as such but it’s as close as we have in many ways right now and, overall, I think we’d collectively see it as a great use of ‘smart’ apps. Until the navigation instructions try to get us to make a sea crossing in our car without a ferry – and we’re all surely ‘benefitted’ from the satellite navigation trying to get us to “drive a stupid route five miles out of the way” when our local knowledge knows that there is a shortcut which works better. Are they useful? Yes – anyone who remembers navigating with paper roadmaps or hastily sketched notes definitely appreciates the instant turn by turn instructions spoken by the friendly AI-backed GPS navigation. Is it an Analogue Helper? When we say ‘analogue helper’ we mean can […]

Read More

5 Apps To Help You Manage Your Automation

Advances in control system technology and robotic process automation software are changing how enterprises view and manage business processes and workflows. From improved asset utilization, faster process completion, to real-time data access, automation opportunities are limitless. However, many companies find automation projects challenging to execute as it takes more than “just technical skills” to successfully manage one. You need to ensure you’re leveraging tools that will improve operational efficiency and performance.  Here are five apps you can leverage for successful, rock-solid automation at maximum speed: Did you know Delphi is the fastest and most efficient way to manage automation projects? RAD Studio Delphi is the most powerful Object Pascal IDE and component library for single-source multi-platform Native App Development with flexible Cloud services and broad IoT connectivity. It provides modernized VCL controls for Windows 11 and enables FMX development for Windows, Mac, and Mobile. Delphi is your choice for ultrafast Enterprise Strong Development. Enhancements include support for high-DPI and 4K+ screens, extended multi-monitor support, improved Object Inspector, and much more. Delphi is 5x faster for development and deployment across multiple desktops, mobile, cloud, and database platforms, including Windows 11. Successful automation projects require communication and organizational skills. With Delphi’s enhanced Remote Desktop support (for VCL and IDE), you easily collaborate remotely with your team. Is C++ Builder the ultimate answer to robust, lightning-speed automation projects? C++ Builder is a rapid C++ application development toolset for native Windows, Mac, and Mobile development, with broad Cloud and IoT support. It features updated CLANG 3.3 and C++11 support with the fastest Windows 11 and multi-device development tools. It also allows you to connect natively to over 20 databases like Oracle, SQL Server, MySQL, and more with FireDAC’s high-speed direct access. C++Builder comes with hundreds of components for every task, from creating user interfaces to database connectivity, enabling easy and fast builds for connected business applications on desktop and mobile platforms. In addition to the included VCL and FireMonkey components, a broad range of tools and components are available from the Delphi and C++Builder communities. How can PyScripter leverage Python and Delphi’s winning team for automation? PyScripter is a free and open-source IDE that supports writing, editing, and running python scripts. It has all the features expected in a modern Python IDE in a lightweight package. It’s also natively compiled for Windows to use minimal memory with maximum performance. Although it’s a simple and easy-to-use IDE, it contains more than enough features for professional users. PyScripter is fully developed in Delphi with huge extensibility via Python scripts. Some of its features include: Syntax Highlighting Editor Integrated Python Interpreter Full Python debugging with support for remote debugging Integrated Unit testing Integration with Python tools like PyLint, TabNanny, Profile, etc. Full support for encoded Python source Remote Python Debugger Run or debug files from memory Code Explorer To-Do List Find and Replace in Files Integrated regular expression testing Choice of Python version to run via command line parameters Run Python Script externally (highly configurable) Modern GUI with docked forms Persistent configurable IDE options Have you looked at Embarcadero Dev-C++, the ultra-light C++ power tool? Embarcadero Dev-C++ is a new and improved fork of Bloodshed Dev-C++ and Orwell Dev-C++. It is a full-featured Integrated Development Environment (IDE) and code editor for the C/C++ programming language. It uses […]

Read More

Appercept’s New AWS SDK For Delphi, Available With RAD Studio And Delphi Enterprise and Architect

Embarcadero today introduces a brand new first-class AWS client library for Delphi, soon to be included in the Enterprise and Architect editions of Delphi and RAD Studio. Given the relevance of Amazon Web Service cloud infrastructure in today’s IT landscape, including an AWS library in our product offerings delivers substantial added value to our customers. The Agreement With Appercept Embarcadero has reached a two-year exclusive distribution agreement with Richard Hatherall, the UK-based owner of Appercept, on the company’s “AWS SDK for Delphi”. The deal includes an initial preview, with additional features to be released over time. The AWS library and updates will be available via GetIt, and limited to customers on Enterprise and Architect with active update subscription. Customers using the AWS library also get support by Appercept through Embarcadero’s own support team. The library does not currently support C++Builder, but there are plans to provide C++ support for the AWS SDK in the future. Why An AWS SDK For Delphi Amazon Web Services (AWS) is the world’s leading cloud service today, with well over 50% market share. AWS offers many services, from storage and orchestration to AI services and insights, and it’s leading a transformation in the industry. The availability of an easy-to-use, high-profile AWS SDK for Delphi from Appercept will make it much easier to use AWS cloud services in Delphi client applications, both for desktop and mobile, and will be particularly useful when building server applications, especially if they are deployed in the AWS infrastructure. Closer Look: What to Expect From the Appercept AWS SDK for Delphi The Appercept AWS SDK for Delphi makes heavy use of modern language and framework features, from PPL (Parallel Programming Library) to anonymous methods for async operations, as required by a good REST client framework. This library offers direct mapping to the AWS APIs, starting with a few services like storage (S3) and notifications (SNS) plus a solid support of user accounts and access permissions. Not only does this SDK make the APIs available as direct calls (mapped internally to Delphi’s HTTP client library as needed), it also offers many easy-to-use constructs and data structures, so that the most common AWS operations will require a very limited amount of code while allowing developers to focus on their business logic. The library comes with extensive documentation and demos, making it easy to embrace. It also ships with full source code, enabling users to learn how the solution works and debug it directly within their applications. Want a quick demo? This is all you need to write to have a list of S3 buckets (or folders): uses AWS.S3; var  S3Client: IS3Client; begin  S3Client := TS3Client.Create;  var Response := S3Client.ListBuckets;  for var BucketName in Response.Buckets do    ListBox1.Items.Add(BucketName); uses AWS.S3; var  S3Client: IS3Client; begin  S3Client := TS3Client.Create;  var Response := S3Client.ListBuckets;  for var BucketName in Response.Buckets do    ListBox1.Items.Add(BucketName); What To Do Next If you missed the “Introducing Appercept’s AWS SDK for Delphi” webinar on the 15th of December, you can catch the webinar replay soon after. We’ll post the link here as soon as it’s available. We will also be posting additional information as new features are added and coverage of AWS services grows. For questions, inquiries and additional information please contact me (Marco Cantu).

Read More

5 Ways To Modernize Your Data Access Pipeline

Building database applications with RAD Studio (Delphi & C++ Builder) gives the best experience for developers. For instance, if you want to connect to a database, just drop a database connection component into the project and select the source of the data. Then open the LiveBindings designer and link the database fields to the UI controls and that is it! If you want to connect to a remote database you can make use of the REST Client Library and Rad Studio’s incredibly powerful REST Debugger. Perhaps you need to connect Azure or AWS? That is covered too – just drop the Cloud Connection Provider component. configure it securely, and everything works right away. What sort of topics are covered in this article? We’re going to take a whistle-stop tour through some of the ways using Rad Studio Delphi and C++ builder can make life much easier for developers looking to work with database servers and data. What is FireDAC? How can I convert my programs from the Borland Database Engine BDE to FireDAC? How can I connect to Amazon Web Services and Microsoft Azure with Delphi or C++ Builder? What is the Embarcadero REST Client Library? How do I bind a data source to UI controls in seconds? What is FireDAC? FireDAC is a multi-device data-access library that comes with RAD Studio Delphi and C++ Builder. One thing you can do with FireDAC is talk to SQL databases. You can also make use of an ODBC connection to talk to ODBC data sources.  With its powerful universal architecture, FireDAC enables native high-speed direct access from Delphi and C++Builder to InterBase, SQLite, MySQL, SQL Server, Oracle, PostgreSQL, DB2, SQL Anywhere, Advantage DB, Firebird, Access, Informix, DataSnap, and more, including the NoSQL Database MongoDB. FireDAC features: An enterprise-grade data access engine A unified API Has high-performance Data Access Where can I learn more about using FireDAC? How can I convert my programs from the Borland Database Engine BDE to FireDAC? On the FireDAC page, there is the BDE to FireDAC set of steps that will take you through taking the existing source code, your existing forms in Delphi, and running refined utility which is per-regular expression search and replaces utility. Also, there is a script for migrating BDE that will convert the forms and source code for Delphi into use FireDAC whether it is in data modules on your forms or in your source code for database connectivity.  In general, the FireDAC components have a high compatibility level with the BDE data access components. This includes the syntax and semantics of the properties and methods in the FireDAC and BDE. You can learn some other parts which are different in Migrating BDE Applications to FireDAC. Check out this tutorial to learn more: How can I connect to Amazon Web Services and Microsoft Azure with Delphi or C++ Builder? Delphi & C++ Builder come with Cloud components that allow you to easily utilize cloud services from Amazon Web Services and Microsoft Azure. As you can see, these two core components can be used to connect to AWS or Azure. There is a really helpful sample project called CloudExplorer, that familiarizes you with how to: Initialize Connection Get Selected Account Update Cloud File List Get Selected Cloud File Upload Selected Local File Download Selected Cloud […]

Read More

High DPI support for all FNC UI Pack Components

High DPI In this update of the TMS FNC UI Pack the main focus was the implementation of high DPI in our controls. Some components already had high DPI support since the previous update. Now all of our components are scaled to the monitor and have clear lines and fonts. This is implemented in design-time for Delphi 11 and in run-time from 10.3 onwards due to the integrated support. Design-Time Editors Introduced in the previous update are the improved editors which have an adjustable theme, high DPI support and available in Delphi and TMS WEB Core for Visual Studio Code. Planner Mode Editor A new addition to the editors is the TMS FNC Planner Mode Editor, which is now registered in design-time. It is possible to configure the mode and the different positions and resources of the planner. The editor is accessible via the mode property or by the configure option in the context menu via the right-click. This update also addresses different fixes and some smaller new features to the product which can be found in the release notes.

Read More