Delphi

Partner Collaboration to Drive Innovation (Interview with TMS Software)

About a month ago we published a short blog post about the importance of our partner ecosystem and interviewed DevExpress.  Our partners not only build much needed functional capabilities for RAD Studio developers, but also deliver exciting innovation. One partner that is particularly active on the innovation front is TMS Software. They not only provide valuable suites of components for both VCL and FMX, but also new capabilities, such as the recently released TMS WEB Core framework for Delphi-based web development, or the TMS FNC technology to offer visual & non-visual components from a single code-base that span VCL, FMX, LCL and WEB. Over the years, I have learned a lot from TMS Software’s founder, Bruno Fierens, and I asked him to spend some time with me and give me perspectives on our ecosystem and the future. I know that you are one of the most passionate advocates for the Delphi / Pascal languages. Tell me what is your latest thinking about our ecosystem? I absolutely love Object Pascal and Delphi. I believe that this is one of the most important languages with so much unrealized potential. Over the years, we have had our ups and downs, but I am excited about the latest developments and energy in the community. There is no language that is easier to learn, and the RAD Studio visual tooling is superior to many alternatives, so our system creates tremendous value for developers. The pillars of unmatched productivity are: 1) RAD component-based development, 2) strongly typed object -oriented language, 3) focus on easy data-binding and 4) last but not least, a huge language backwards-compatibility. There can, of course, be questions about how fast we move and language evolution. We Delphi developers are not a patient bunch and tend to be very vocal, but it is because we love what we do. We see some good developments, but we think that there can be more and we will actively work with the community to deliver more capabilities for Delphi developers. What are the main issues you think we should address? Well, what worries me most is how we get new young developers to learn and fall in love with Delphi. I think that things are improving, but not fast enough. There were times where we go in Delphi meetings and the majority of people are in their 40s or older. Today, we see more young people and they are doing interesting things, However if you look at the popularity of languages, such as Python or JavaScript, we are way behind. We need to all work to promote what is possible to do with Delphi. It will take the whole community, both Free Pascal and Delphi, to make this possible. We also try to help and contribute with the means we have in this area with our academic program we launched last year https://www.tmssoftware.com/site/academic.asp that offers free components to Delphi students and teachers and that we are expanding all the time. We also launched this year our web academy platform https://www.tmswebacademy.com with free webinars where everyone can learn about Delphi and our tools. How can we promote Delphi better? This is the million-dollar question. You are not Microsoft, so resources of course are limited. I think there are several main areas where we can focus our messaging. […]

Read More

Powerful Flight Assistant Application Is Built In Delphi

AoA Flight Assistant is here to solve a specific problem.  I’m sure one thing most of us agree on is that flying is a complicated and risky job.  If you’ve ever flown in one of those huge passenger planes, I’m sure, like me, you’ve been amazed at the incredible array of switches, dials and knobs laid out in front of the pilots.  There are lots of lights and bizarre ball-shaped gauges which seem to be incomprehensive to most of us.  The pilots of smaller planes may have fewer dials to deal with but they also typically do not have the more sophisticated – and brutally expensive – tools to help them manage the art of defying gravity. This is where the AoA Flight Assistant from Advance IT, based in Slovenia, tries to even the score. What does AoA Flight Assistant do? AoA Flight Assistant is a mobile app which integrates into the pilot’s daily workflow and the process of flying the aircraft. AoA Flight Assistant does this by integrating with the mobile phone’s built-in GPS and accelerometer and then calculates the aircraft’s “angle of attack”. The angle of attack is an important calculation which tells the pilot what the angle of the on-coming wind is in relation to the edge of the aircraft’s wings. If the angle of attack is incorrect the plane stops being a flying aircraft and becomes a falling and spinning aircraft. So it’s pretty important to get the angle of attack right! Angle of attack sounds important, don’t all aircraft have something to calculate it? In a word: no, they don’t, at least not on smaller ‘personal aircraft. If you are a pilot and your airplane lacks an instrument which shows you airplane’s angle of attack, but you have a mobile phone with built-in GPS and accelerometer, AoA Flight Assistant is the right app for you. Website AoA Flight Assistant Google Play AoA Flight Assistant Apple App Store AoA Flight Assistant Screenshot Gallery

Read More

Developer Stories: Mehrdad Esmaeili Discusses About ParsLogo

Mehrdad Esmaeili started programming with Turbo Pascal 7. He has an application (ParsLogo) as showcase entry for Delphi 26th Showcase Challenge and we had a conversation with him to know all about his Delphi experiences. Go on over to ParsLogo to download the application. When did you start using RAD Studio/Delphi and have long have you been using it? Since First Release of Delphi i have found it my great tool for my lifetime, before i was using Turbo Pascal 7 as my desired programming language but since i found Delphi till Today at least 12 hours per day we were together… in result many applications have been produced. What was it like building software before you had RAD Studio/Delphi? I was using Basic in commodore 64, then in high school i found TURBO PASCAL and i knew since that time that it is great and i did not change  my idea still in the university….and i am the only author of DELPHI educational Persia since Delphi 6 … to Delphi 2005 How did RAD Studio/Delphi help you create your showcase application? Since 2005 It was all native pure delphi code, since i found how powerful applications can be made with mixing well known third party components since Delphi 7, So combine well  debugged components from TMS SOFTWARE and replace dwScript with TMS Scripter and adding Charts changed my app from classic to very Modern Idea so that i have introduced it in GITEX FAIR 2006 in DUBAI in multilanguage…. it has been awarded the best educational software in the First multimedia Fair in the country. What made RAD Studio/Delphi stand out from other options? Clean Code used since Pascal that is very closed to human language , Perfect IDE that is getting much more better in Delphi 10.4.1 that now i am using and it is amazing… What made you happiest about working with RAD Studio/Delphi? FireDAC or UniDac components that connects you to any DataSource via any device, because i believe that every application finally need to save/load data so it would be lead to DATABASE concept and today DADABASE must be remote for many reasons (like small storage on mobile devices) What have you been able to achieve through using RAD Studio/Delphi to create your showcase application? TMS Scripter from TMS Software (thanks from Mr.Bruno Fierens and specially Dear Mr.Wagner Landgraf) that have changed my opinion to programming concept completely: you can see my comments in that page: https://www.tmssoftware.com/site/scriptstudiopro.asp : I fell in love with this great product, it changed my opinion and my vision in programming. I am using it at least 12 hours per day and everyday I understand what a clean code you have used to make it …thanks a lot. Mehrdad Esmaili, via email What are some future plans for your showcase application? Visual ParsLogo that i  am working on it everyday and released …. Mixing BASIC/PASCAL in IDE like Delphi with more components palette features: http://smilyfiles.ir/MFTVisualParsLogo.exe Thank you, Mehrdad Esmaili! You can check out his application’s showcase entry below. Showcase https://blogs.embarcadero.com/impressive-logo-programming-software-pars-logo-is-powered-by-delphi/    

Read More

Football Playview Is An Outstanding Mobile Delphi App

With Football Playview coaches and players can view animated plays, drills and practice plans on their phone or tablet. Football plays, drills and practice plans can be created with the companion desktop Football Playbook program from Jes-soft, which is free to try and available at http://www.jes-soft.com/football/index.html. The playbook program is compatible with Windows all recent versions of Windows, Create your plays and practice plans on your desktop. Save them to your cloud drive (gdrive, DropBox for example). Open the plays and practice plans on your mobile device from your cloud drive. Website Football Playview Google Play Football Playview Screenshot Gallery Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder. Design. Code. Compile. Deploy.Start Free Trial   Upgrade Today    Free Delphi Community Edition   Free C++Builder Community Edition

Read More

Easily Deploy Powerful AI Vision Tools On Windows And Mobile

Google Cloud’s AI Vision API offers powerful pre-trained machine learning models that you can easily use on your desktop and mobile applications through REST or RPC API methods calls. Lets say you want your application to detect objects, locations, activities, animal species, products, or maybe you want not only to detect faces but also their emotions. Or you may have the need to read printed or handwritten text, this and much more is possible to be done for free (up to first 1000 units/month per feature) or at very affordable prices and scalable to the use you make with no upfront commitments. “Detect Labels” – an ordinary name for some extraordinary AI The option to “Detect Labels” is part of the AI Vision API that we can use to detect and extract information about entities in an image across a broad group of categories. With that information we can identify general objects, locations, activities, animal species, products, and more. We can use RAD Studio Delphi to easily setup a REST client library to take advantage of Google Cloud’s Vision API to empower our desktop and mobile applications. If the request is successful, the server returns a 200 OK HTTP status code and the response in JSON format. Our RAD Studio and Delphi applications will be able to call the API and perform the detection on a local image file by sending the contents of the image file as a base64 encoded string in the body of the request. Alternatively, it can use an image file located in Google Cloud Storage, or on the Web, without the need to send the contents of the image file in the body of your request. How do I set up the Google’s Cloud Vision Label Detection AI API? Make sure you refer to Google Cloud Vision API documentation; specifically the “Detect Label” section (https://cloud.google.com/vision/docs/labels), but, in general this is what you need to do on the Google server side: Visit https://cloud.google.com/vision and login with your Gmail account. Create or select a Google Cloud Platform (GCP) project. Enable the Vision API for that project. Enable the Billing for that project. Create a API Key credential. AI vision in action! Lets take, for example, the image below, as a brief practice. Make sure you take a long look at the image and try to think about 5 to 10 things you notice in it. Focus on what calls your attention the most. To make it more fun write them down or say them out loud and then see if Google can guess correctly. How do I call the Google Vision AI API Label Detection endpoint? All we need to do is to call the API URL via a HTTP POST method passing the request JSON body with type LABEL_DETECTION and source as the link to the image we want to analyze. We can do that using REST Client libraries available in several programming languages. A quick start guide is available on Google’s documentation found here: (https://cloud.google.com/vision/docs/quickstart-client-libraries). Actually, at the bottom page of the the Google Cloud Vision documentation Guide (https://cloud.google.com/vision/docs/labels) there is an option: “Try This API” allowing you to post the JSON request body as shown below and get a JSON response. POST https://vision.googleapis.com/v1/images:annotate POST https://vision.googleapis.com/v1/images:annotate { “requests”: [ { “features”: [ { “maxResults”: 5, […]

Read More

Connecting Databases with FireDAC through SSH

A customer recently asked me if FireDAC can be used to connect to a database through an SSH tunnel. The short answer is yes, of course. But let’s understand better what is an SSH tunnel, and how this goal can be easily achieved when using Delphi and FireDAC. SSH Tunnels Secure Shell (ssh) is a standard tool included on most “network” operating systems i.e. Linux, UNIX, MacOS, and now also on Windows (natively speaking). If you had used PuTTY sometime in your life to connect to a remote command line interface, in general a Linux system, SSH was the protocol used for that. So the key thing here to use FireDAC via an SSH secure interface is to understand that FireDAC (or any other database access framework) has nothing to do with it. What you need is to establish a permanent SSH tunnel and then setup your database connection properly. We’ll see two ways to establish an SSH tunnel: one using an external tool (PuTTY) and the second one directly coded in your application. SSH Servers The aim of this article isn’t to teach how to create an SSH Server, but I had to create one to test my solution, so here is what I’m using. Basically I have a Linux VM running a PostgreSQL database (this is the database the customer would like to connect, but the solution is database agnostic), and over it I’ve installed and started an SSH Server following this tutorial: https://docs.oracle.com/cd/E37670_01/E41138/html/ch25s03.html This is for Oracle Linux (this is what I’m running due another proof of concept I had to do past week) but you’ll find similar tutorials for your preferred Linux flavor. Testing the Connection Before trying the connection from FireDAC, it’s a good idea to prove the connection using just command line tools that are integral part of the operation systems, so you have an idea if things are working or not. So, having both the SSH Server and the database instance (PostgreSQL in my case) open and running on Linux, we can try a first connection from Windows using any SSH client terminal. Windows 10 has a native client since the 1809 “October Update”, but I’ll stick with PuTTY as this is a dominant utility for system admins. These are my Putty configurations. In the Session page you need to specify the server IP and the SSH port (22 is the default): And in the SSH/Tunnels configuration page you specify how the tunnel will be created: What this configuration is saying? Basically to create an SSH tunnel you have to specify the Source port (any available/not used port number you have in your system) and the Destination IP/Port (in this case the Linux server IP address and the Port where the PostgreSQL instance is listening – the 5432 is the default PostgreSQL port). Of course, the Source IP address will be always “localhost”, meaning your database connection will point to localhost/63333 and the tunnel will do the magic, sending the commands to the server and receiving back the results. Finally, opening the PuTTY connection and providing a valid Linux user and password (it’s recommended to create an specific user only for the SSH usage), you are going to see something similar to this below. Ugly, I know. You can test some Linux commands […]

Read More

Developer Stories: Ziad Allaghi Shares On System Of Student Registration

Since 1998, Ziad Allaghi has been developing programs with Delphi. Ziad’s (System of Student Registration) application is a showcase entry for the Delphi 26th Showcase Challenge and we talked to him about his knowledge creating programs with Delphi. You can find more information about the application over at System of Student Registration. When did you start using RAD Studio/Delphi and have long have you been using it? I started programming in the Delphi language in 1998 the third edition and then version 6, and I have become better in my programs and increase my productivity because Delphi provides an environment for generating ideas easily. What was it like building software before you had RAD Studio/Delphi? The Delphi editor provides an excellent programming environment because it depends on the Pascal language, which is a clear language with a clear code that allows you to develop more than one program at the same time with minimal code description instructions, which allows you to easily understand It with less time and effort … The latest version is very amazing at all levels Delphi 10 4. 2 How did RAD Studio/Delphi help you create your showcase application? Rapid development in this language with the availability of many resources that help in the implementation of applications on adequate operating systems and increases the demand of users and your customers for your programs Thank you Embarcadero What made RAD Studio/Delphi stand out from other options? It provides easy-to-use and effective components such as dealing with various databases and communications .. Pascal language with the Delphi editor 10.4.2 gives the programmer the complete departure in writing his programs with creativity What made you happiest about working with RAD Studio/Delphi? It gives you the possibility that you can produce a program entirely without resorting to assistant programs, such as designing branding screens, databases, and visual components What have you been able to achieve through using RAD Studio/Delphi to create your showcase application? Sharing experiences is very important and taking notes in developing a program while developing programming style and ease of implementation with the new version of Delphi 10.4.2. What are some future plans for your showcase application? Program development, especially with the new components only available in Delphi version 10.4 ControlList and compiler speed Thank you, Ziad! Click through the link below for the showcase entry of System of Student Registration. Showcase Thanks for the interview Ziad!

Read More

Quickly Convert Speech To Text With Powerful Google Artificial Intelligence APIs

What can the Google Audio Transcription API do for our applications? Google’s Audio Transcription API allows your program to use all the power of Google’s huge computing resources to accurately transcribe speech found in audio files into text. As Google’s documentation says: Transcribe your content in real time or from stored files Deliver a better user experience in products through voice commands Gain insights from customer interactions to improve your service How can we use the Audio Transcription API with Delphi? Google cloud services have been positioned as a must have computing service solution today. They allow us to easily use their perfectly-designed AI solutions to use in our applications. Not only that, prices are also reasonable and you can start with zero payment by just adding your credit card. But how about getting those amazing functions to our Delphi application? Some people would think that Delphi is not the ideal language to work with those popular cloud computing APIs. It’s not true. With the help of the huge community for Delphi, it’s simpler than you think. Google Speech to Text and Text to speech are two of those cloud computing functions that could vital for some business applications. With the help of few repositories by grijjy in GitHub, we can easily get those functionalities to our Delphi application. Actually the repository is dated from 2017 but surprisingly it works perfectly with the newer versions of Delphi without many changes to the code. How to setup Google cloud services to work with Delphi? To use Google cloud services in our Delphi project, we need credentials to allow our project to use our google cloud API account. To do that, please visit this link and create an account. https://cloud.google.com Then create a new project. Then go to API and services dashboard and create new credentials. Make sure it’s service account. Then go to the new service account and create new key in Keys tab. Please make sure the key type is P12. Now you need to convert this P12 key to PEM to use with our Delphi components. To do that, please run this command in a folder with OpenSSL binaries. Make sure to edit file names: openssl pkcs12 -in path.p12 -out newfile.key.pem -nocerts -nodes em>openssl pkcs12 –in path.p12 –out newfile.key.pem –nocerts –nodes/em> Keep that generated pem file to use with our Speech to Text Delphi project. What are the prerequisites for creating a Delphi Audio Transcription project? Download the GrijjyFoundation repository. https://github.com/grijjy/GrijjyFoundation Download the “Nghttp2.pas” from this link and copy it to the GrijjyFoundation folder. https://github.com/grijjy/DelphiRemotePushSender/blob/master/Nghttp2.pas Download the “Google.API.pas” form this link and include it in your project folder. https://github.com/grijjy/DelphiGoogleAPI/blob/master/Google.API.pas How to setup new Delphi project to demonstrate Audio Transcription? Create a new Delphi project and add components like this. Alternatively, you can download the demo project form this link. Demo Project GrijjyFoundation has many units to support many Google Cloud services. But in this project we only need few of them. Please include only these units to your Delphi project. How to code the Delphi Audio Transcription project? Now let’s move to the coding part. We use an instance of “TgoGoogle” class to post data and get the response form the Speech to Text API. We need to set some parameters of “TgoGoogle”. TgoGoogle.OAuthScope – OAuth Scope of the […]

Read More

Easily Automate The DigitalOcean API From Windows And Mobile

DigitalOcean offers a set of APIs that we can access to manage their products from our application.  You can create applications that act like DigitalOcean’s Droplets Control Panel. You can access DigitalOcean’s API documentation here https://developers.digitalocean.com/documentation/v2/. One reason to utilize the DigitalOcean API is to automate your cloud server management and deployment process. If you are building out separate machines for customers (using RAD Server for example) this would be a great way to automate that process. Or maybe you have a CI pipeline you’re setting up that involves automated deployment and testing of an installation process this would be a great way to automate the process through Delphi and the DigitalOcean API. How do I set up a Windows app with DigitalOcean’s API? This article is only an example of the initial steps in creating an automation application, so I only show how to set up the DigitalOcean’s Droplet. In order to create a droplet (virtual private server) the /v2/droplets endpoint exists. It can be called to create a new server for you to use. Here are the two request headers needed which include authorization. Content-Type: application/json Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582 Content–Type: application/json Authorization: Bearer b7d03a6947b217efb6f3ec3bd3504582 Here are the list of request parameters that can be set when creating a droplet. The parameters are sent via JSON in the request body. You will see these parameters used in the Object Pascal code below. Name Type name String region String size String image integer (if using an image ID), or String (if using a public image slug) ssh_keys Array backups Boolean ipv6 Boolean private_networking Boolean vpc_uuid string user_data String monitoring Boolean volumes Array tags Array And here is some example JSON of a request body: { “name”: “example.com”, “region”: “nyc3”, “size”: “s-1vcpu-1gb”, “image”: “ubuntu-16-04-x64”, “ssh_keys”: [ 107149 ], “backups”: false, “ipv6”: true, “user_data”: null, “private_networking”: null, “volumes”: null, “tags”: [ “web” ] } 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 {   “name”: “example.com”,   “region”: “nyc3”,   “size”: “s-1vcpu-1gb”,   “image”: “ubuntu-16-04-x64”,   “ssh_keys”: [     107149   ],   “backups”: false,   “ipv6”: true,   “user_data”: null,   “private_networking”: null,   “volumes”: null,   “tags”: [     “web”   ] } What Does the Delphi API code look like to access DigitalOcean? We are going to use the TRESTClient TRESTRequest TRESTResponse pipeline that is built into the Delphi RTL to make it easy to handle the REST request. The library is available for all platforms that are supported by Object Pascal. The REST Library framework focuses on JSON as the representation format. REST.Client.TRESTClient is the component that actually executes a request to a service. TRESTClient manages the HTTP connection to the service, deals with HTTP headers and proxy servers, and receives the response data. Authenticators (described later) can be attached to the client for a convenient way of adding authentication to a request. The request (REST.Client.TRESTRequest) holds all parameters and settings that form the actual HTTP request to the service. When connected to a client-component, it can be executed (even at design time). One of the most important properties of the request is the ‘Resource’. This value forms the previously mentioned ‘second half’ of the full request-url and defines the actual action that is executed on the service. The request also defines the HTTP methods (‘get’, ‘post’, ‘put’, ‘delete’) that are used for its execution. The response […]

Read More

Developer Stories: Giuliano D’Oronzo Talks Through His Board Game Prime

Giuliano D’Oronzo has been programming with Delphi since 2017. His (Prime) application was one of the showcase entries of the Delphi 26th Showcase Challenge and we have also asked him further about his Delphi skills. Get more information about his board game at Prime. When did you start using RAD Studio/Delphi and have long have you been using it? I have been using Delphi since 2017, but have been programming in Pascal for over 30 years. I almost always used Embarcadero development tools (first Borland then Inprise). What was it like building software before you had RAD Studio/Delphi? Previously I developed only for the Windows platform, now thanks to Delphi I can create applications for all the major existing platforms. How did RAD Studio/Delphi help you create your showcase application? Delphi allowed me to speed up the porting process to the Android platform with minimal effort. What made RAD Studio/Delphi stand out from other options? For me the “Object Pascal” language is extremely easy to use as well as very powerful. As a result, the development speed is significantly faster than with other development tools. What made you happiest about working with RAD Studio/Delphi? Working with Delphi is a lot of fun, and it gives me a lot of satisfaction. What have you been able to achieve through using RAD Studio/Delphi to create your showcase application? I managed to get a good chess engine (adapted for my game), and a good GUI on both platforms (android and windows). What are some future plans for your showcase application? I am developing another video game soon. Thank you for your insights, Giuliano! You will find the showcase entry for his application below Showcase

Read More