Noutați

Firestore server-side filtering in TMS WEB Core v1.7

To create a high performance web client application, a lot of things need to be taken in account. But foremost, when you create a modern SPA (single-page-application) architecture web client application, you will want to look at optimizing the communication of the application to your database back-end. In case you use the Google cloud based infrastructure as your database back-end, you will want to perform as little as possible requests and ensure that the data involved in these requests is as compact as possible. The server-side filtering capabilities of Google Firestore allow you to easily achieve this, especially with the new built-in support for it in the TWebFirestoreClientDataSet in TMS WEB Core. Recalling loading and filtering features of TClientDataSet in classic VCL If you have used a TClientDataSet in Delphi VCL, you already know that the component provides an in-memory table that can be manipulated easily and efficiently. But if there are a large number of records in a database, loading all of them in the TClientDataSet needs to be avoided. With traditional Delphi TClientDataSet, if the records are loaded through a DataSetProvider that supports queries then you can change those queries to load limited records based on a criteria. This approach greatly reduces the memory overhead of the TClientDataSet, since fewer records need to be stored in memory.  Compare this with another option of local filters, also from standard Delphi VCL, where the number of records visible in the dataset can be reduced by using local filtering options. But that does not reduce the number of records in memory. It only restricts access to the records filtered out. In Web Core, we give a solution similar to  DataSetProvider where certain filtering criteria can be applied at the Firestore to reduce the number of records fetched on opening the dataset. New server-side filtering features in TWebFirestoreClientDataSet The new server-side filtering features purpose is to limit the number of records fetched from a Firestore collection. Consider the problem when the Firestore collection has a large number of records. Loading all of them at once is not a good idea due to the memory overhead of an in-memory table in the TClientDataSet.  In the new release of TMS WEB Core, the Firestore ClientDataSet component provides new features to apply filters to the data obtained at the Firestore end. Important background information Before we look at the details of each filtering method, it is necessary to understand some core principles. 1) Method names begin with “AddService” There are several Firestore related filtering methods available in the Firestore ClientDataSet component.  They are named starting with “AddService” indicating that they are applied at the Firestore Service level. This is to differentiate them from any local filtering methods already available in the standard ClientDataSet. 2) Firestore filters are not as flexible as SQL queries  The primary purpose of the Firestore filter methods is to limit the number of records fetched on opening the dataset in order to reduce the memory overhead.  Don’t expect the Firestore filters to be as flexible as an SQL query for your data processing requirements. There are many restrictions and limitations as you will discover later. For an exanple, please see “Limitations and Gotchas” under AddServiceFilterCondition method later in this article.  If you have advanced filtering requirements then in addition to the […]

Read More

3 upcoming free webinars!

We especially ramped up organizing webinars this year to give your more opportunities than ever to learn about what is available to empower you as Delphi developers to deliver great solutions to your customers. In the coming 3 weeks, there are 3 upcoming free webinars. So, don’t tell us we didn’t inform you  FNC Cloud components webinar : Apr 29, 14h UTC Embarcadero Germany organizes on April 29 a free webinar about using FNC cloud components to consume cloud services in  a service agnostic way. The webinar will be held in German language. The official title of the webinar is:“Plattformübergreifend Webdienste einfach nutzen mit TMS FNC Cloud Pack” and is presented by Matthias Eißing and Holger Flick. See the full webinar info and register here First steps into using an ORM with Delphi : May 5, 15h UTC If you are completely new to using an ORM (Object Relational Mapping), this webinar is for you. Our product manager and architect of the BIZ product line, Wagner Landgraf will introduce you to the concepts of ORM, why you can benefit from using it and how it will change your developer life forever when you abstract the database you use via an ORM.This webinar centers around the flagship Delphi ORM: TMS Aurelius and is even more interesting as TMS Aurelius was recently added to our academic program. This means that students and teachers can register for their fully free and fully functional version. We offer this free webinar via our own TMS Web Academy webinar platform. Register now for your free seat! First steps into creating web apps with Delphi : May 12, 15h UTC While since the introduction of TMS WEB Core a lot of Delphi developers picked up this tool to produce web client applications with the familiar RAD component based Delphi development approach, for many Delphi developers it is still a big step to enter the world of web application development. This webinar is especially focused at Delphi developers with no prior experience with web application development and we will introduce the concepts and approaches to create these web client applications with TMS WEB Core step by step. After this webinar, you’ll be comfortable to set your first steps into a new and exciting platform to deliver applications to your customers. This webinar is hosted by Bruno Fierens, CTO of tmssoftware.com and architect of the TMS WEB Core framework. We offer this free webinar via our own TMS Web Academy webinar platform, that was by the way entirely developed using TMS WEB Core! Register now for your free seat! More webinars?  If you have ideas, let us know what you want to see covered in upcoming webinars! We are eager to learn where we can add value with content offered via a webinar. Or, if you created a great application or have an original or creative use case for any of our products and you feel like presenting this to your fellow Delphi developers, don’t hesitate to reach out and you could be next offering a webinar on our TMS Web Academy.Or meanwhile you can have a look at the previous webinars we offered and for which the recorded sessions are available.

Read More

Developer Stories: Giuseppe Massimo Pinto Talks About His Application Metrodrummer 2

Giuseppe Massimo Pinto has been programming for about four years now. His application (Metrodrummer 2) was one of the Delphi 26th Showcase Challenge entries and we asked for his insights on programming with Delphi. Download Metrodrummer 2  to experience the application. When did you start using RAD Studio/Delphi and how long have you been using it? I”m starting using delphi from about 4 years. Starting with community edition then my boss buy a license con me. I use rad studio for many purpose, but mainly i use it for mobile app development. What was it like building software before you had RAD Studio/Delphi? The only thing I had never created was an app for iPad or Mac.  I used, and still use, other tools, mainly C++ or VB6 for development on Windows and Java with Android Studio for Android development. How did RAD Studio/Delphi help you create your showcase application? It helped me a lot for the very intuitive graphic management. The main advantage is having a single project to compile Windows, MAC, iOS and Android applications. What made RAD Studio/Delphi stand out from other options? It compiles for many platforms. What made you happiest about working with RAD Studio/Delphi? The ease of compiling for Android and iOS. What have you been able to achieve through using RAD Studio/Delphi to create your showcase application? Obviously the development of many apps and a .dll which in turn uses an oxc made in C. It was very useful to me as a sound engine in our very famous top program for PC and macOS “Winlive Pro Synth”. The latter however is not  done in Delphi. What are some future plans for your showcase application? Now in my company I am working on updates of our software. Certainly some other software always in the music field in which we work Thank you, Giuseppe! Go over to the link below and view the application’s showcase entry for more information. Showcase

Read More

Terrific Fun With The Good Cat Bad Cat Mobile Game!

All the cool cats are coming to a party in this hilarious mobile game. Watch out though, some are coming to have fun, but just like a real party, some will try to ruin it! Your task is to let the GOOD cats IN and keep the BAD cats OUT. No party poopers allowed!. The game play involves you tapping on the cat entrance door to close it quickly when a bad cat appears. If you accidentally let three felonious felines through the cat flaps the party is over and nobody likes that! Good luck! Written in Delphi using Firemonkey FMX – the best and only monkey allowed at the party – this kitty-friendly mobile game is harmless fun. In fact, you could say Good Cat, Bad Cat is purrfect.. [Enough with the puns now, I know, I know] Developer Davor and Robi have done such an excellent job. You can find Good Cat, Bad Cat on the Apple App Store and on Google Play using the links below. Google Play Good Cat Bad Cat Apple App Store Good Cat Bad Cat Screenshot Gallery Delphi makes developing a mobile game very easy Just add your imagination with a sense of fun and your mobile app could be one of the cool cats too.

Read More

TMS WEB Core for Visual Studio Code v1.3 beta is available

We’re pleased to inform that we have released the beta for TMS WEB Core for Visual Studio Code v1.3 to our TMS ALL-ACCESS customers and customers of TMS WEB Core for Visual Studio Code.  What is on the table This is a very exciting new version as it brings: Support for packagesYes, from now on, it is easy to create your own custom components and compile & install these for use at design-time. The package system is similar to how you can use packages to install components in the Delphi IDE or Lazarus Support for workspacesWith workspaces, now you can have multiple projects in a folder and activate and select which project to compile/run/debug. Support for using the entire FNC component suiteAs our entire set of FNC components is ready for use in web client applications, the new package support in TMS WEB Core for Visual Studio Code enables to install all TMS FNC components in the TMS WEB Core for Visual Studio Code IDE. The latest FNC registered version updates released last week contain all the required packages for this. Brings the framework up-to-date with latest version as available in TMS WEB Core for Delphi/Lazarus v1.7The TMS WEB Core framework that comes with TMS WEB Core for Visual Studio Code is now in sync and up-to-date with the latest release of TMS WEB Core for Delphi. This means that all new components and component improvements are now also available for Visual Studio Code users. This includes the new USB components, local file access components, new Firestore dataset capabilities, extensions to grids, web socket connection improvements and much more…  One important note though, the Miletus application type is not yet in our release for Visual Studio Code release but scheduled for the next release.  Start learning Developing your own custom components is for sure a very powerful way to fully apply a RAD component based and in a sense also low-code approach to become productive at developing web client applications with TMS WEB Core.Our chief architect José Leon Serna explains in this video how you can use packages and start writing your own components. We held a webinar (on our TMS Web Academy platform that was by the way developed entirely with TMS WEB Core for Visual Studio Code) with a sneak preview of TMS WEB Core for Visual Studio Code v1.3 earlier this week, so you can see the replay and see the package support, FNC components in the IDE and learn from the discussion and Q&A with attendees.  Start developing TMS ALL-ACCESS customers and customers of TMS WEB Core for Visual Studio Code, login on our website and under Account / My Products, you will find the beta download of TMS WEB Core for Visual Studio Code v1.3. Enter your credentials to activate the product. If you also have the full FNC component suite, open the FNC web specific packages from the FNC product folder opened in Visual Studio Code and activate and install these packages.From here, you’ll have the full power of TMS WEB Core + custom packages + well over 200 FNC components to start developing exciting web client applications!  Your feedback We are now testing, polishing, fine-tuning till we can officially release TMS WEB Core for Visual Studio Code v1.3.Your feedback is crucial to achieve […]

Read More

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