Noutați

How Can Computer Vision Help You Stay Ahead Of The Competition?

Who loves AI algorithms? The Read service is an API that identifies any visible text, printed and handwritten on images or PDF files. The API returns the words on results with confidence percentual of that text found on the image/PDF. Using it, you can extract any texts from images/PDF even if someone wrote by hand. If is there any word, it can identify. Now let’s create our Javascript Ext JS application using best practices and applying this awesome API to scan images to extract texts from it. Incorporating computer vision into your Javascript applications like this can really help you stay ahead of the competition. Let’s get started! Prerequisites Before you start, there are some prerequisites to follow to access the API. You can follow the steps here to create a Computer Vision resource on Microsoft Azure to get your keys to access the API. Starting with Sencha CMD If you still don’t have Sencha CMD, you can download it for free here. Once you have it installed make sure it was installed and configured properly, running this command on terminal/shell: If it returns sencha cmd version, you are good to go. Here are more details on how to install, configure and use Sencha CMD, but this article will show all the important details. Creating the application The first thing you want to do is create your project structure and Sencha CMD can do it for you easily, just by running this command: sencha -sdk /Users/fabio/sencha-sdks/ext-7.3.1/ generate app modern ReadTextImage ./read-text-image-extjs /Users/fabio/sencha-sdks/ext-7.3.1/ is where your Ext JS SDK folder is. ReadTextImage is the name of our application that will be our namespace for our classes. ./read-text-image-extjs is the path where it will create our project structure with the needed files. modern is the toolkit selected for our application. Make sure when you run this command there is no error on the output. If everything was running correctly, it created your project structure. Let’s run our application with the initial structure. First navigate to your project folder: $ cd read-text-image-extjs/ Then, run the command that will up the server on a specific port: The output of this command will show you the URL where your app will be available. For our case, it is available on http://localhost:1841/. Open it on your browser and you will see a screen like this: Cleaning up Once we have our basic project running, we can remove from it the files and components that will not use. You can delete these files with the command bellow (open other terminal and keep sencha app running because it will update the application automatically): $ rm app/model/* app/store/* app/view/main/List.* Now let’s clean up our classes that are on app/view/main. Make sure your three classes are like this: Main.js: /** * This class is the main view for the application. It is specified in app.js as the * “mainView” property. That setting causes an instance of this class to be created and * added to the Viewport container. */ Ext.define(‘ReadTextImage.view.main.Main’, { extend: ‘Ext.Panel’, xtype: ‘app-main’, controller: ‘main’, viewModel: ‘main’ }); MainController.js: /** * This class is the controller for the main view for the application. It is specified as * the “controller” of the Main view class. */ Ext.define(‘ReadTextImage.view.main.MainController’, { extend: ‘Ext.app.ViewController’, alias: ‘controller.main’ }); MainModel.js: /** * This class is the view […]

Read More

Securing Serverless Applications

Published Apr 29, 2021 WRITTEN BY ED TITTEL. Ed Tittel is a long-time IT industry writer and consultant who specializes in matters of networking, security, and Web technologies. For a copy of his resume, a list of publications, his personal blog, and more, please visit www.edtittel.com or follow @EdTittel Although the term says “serverless,” serverless applications don’t really run without any servers involved. Rather, serverless applications run inside cloud-based infrastructures so that developers and operators need no longer stand up and run their own servers, virtual or physical. That is, the application still runs on a server, but the responsibility for server management falls on the cloud service or cloud platform provider instead. That means that organizations need not themselves provision, scale, manage and maintain servers on which their applications run – they use a serverless architecture to build, test, deploy and run their applications and services for clients, customers, end-users, and so forth. AWS Lambda, for example, is a serverless service that includes automatic scaling, with high availability baked into the runtime environment, charged on a pay-for-value basis. As is typical for cloud-based runtime environments, serverless applications adhere to what’s often called a “shared security model.” Following this model means that the cloud provider is responsible for the security of the cloud while those who host their applications are responsible for security of their application  in the cloud. When organizations adopt serverless technologies, the responsibility that the cloud or application provider assumes climbs up the stack to include operating system and networking security for the servers it operates on which the organization’s serverless application runs. Theoretically this means that the job of security is easier for serverless applications than for cloud-based applications where the operating organization also stands up underlying virtual infrastructures. In fact, Amazon recommends (and most other cloud service and platform providers concur) that companies adhere strictly to the Principle of Least Privilege (PLP) and also follow best practices for securing their serverless applications. They recommend their own identity and access management (IAM) platform to secure and manage access to their services and resources, but similar capabilities are available from all of the major cloud platform providers including Azure, Google, Oracle, IBM, Alibaba and others as well. Proper use of identity and access management technology is indeed key to securing serverless applications. This includes access controls through accounts and groups or job roles, and specific constraints on how users may interact with serverless applications. These might pertain to days of the week, times of the day, originating IP addresses, as well as require use of SSL or other secure protocols, and even require multi-factor authentication (2FA or better) before allowing access to proceed. In addition, most cloud platforms’ identity and access management tools support access auditing and reporting, so the organization’s security team and administrators can confirm that prevailing policies provide only authorized public and private accounts with appropriate access to applications and their resources. In fact, organizations should use this reporting to tweak and adjust their security policies to enable access only to services in use, following PLP. Multi-Factor Authentication (MFA) makes most sense for privileged accounts and access (administrators, developers, architects and security staff) so that privileged access is available only to those who provide a hardware MFA device, or who use an authentication app […]

Read More

See How SongShow Mobile Control Flexes Its Real-Time Power

SongShow Plus demonstrates how a well-written application can breeze through seemingly difficult tasks like real-time streaming. On the face of it SongShow Plus – which is now on version 8 – is portrayed as a remote control and aid for live presentations and stage performances, but behind this modest public face is a whole lot of power. How does SongShow Plus flex its Delphi muscles? Aimed primarily at Churches and similar organizations SongShow says: “many churches use standard business communication tools like PowerPoint to display content, but these tools are not designed for the church environment and have serious limitations. SongShow Plus is presentation software designed specifically for churches with tools for displaying scripture, song lyrics, custom built slideshows for sermon content and much more“. Video production is a major part of Church budgets as they modernize and invest in technology to engage and inform their congregations with live video and mixed media such as text overlays.  SongShow plus manages live video throughput and can easily handle multiple layers of media, all in real-time. More on SongShow Plus The company president, Doug Reece, has a comprehensive amount of information on the main SongShow Plus website and he also hosts a blog and news forum. SongShow Plus’ collection of tools not only allows you to display the right content, they allow you to do it quickly and on-the-go with a creditable collection of amazing mobile control features. Mobile control functions for SongShow Plus include Remote Control, Program Control, and Stage Monitor. The SongShow Plus mobile application is designed to work in companionship with the SongShow Plus 8.4 desktop application. With SongShow Plus 8.4 installed and the mobile device both on the same network the two work in harmony, seamlessly for the users, but with all the technicalities of how they interconnect hidden and taken care of for them. RAD Studio is the secret to success RAD Studio’s components, themes (SongShow Plus uses the FMX themes to look good), and the Delphi or C++ language can lift your applications from a design to an actual program in the iOS and Android app stores. Website SongShow Mobile Control Google Play SongShow Mobile Control Screenshot Gallery When are you going to take that great idea you had and turn it into reality?

Read More

Truly Make Your User’s Lives Easier With This Delphi Android App

Delphi developers are behind a surprising amount of industries. With their desktop and mobile applications quietly working away providing solid, reliable and useful tools to assist and enhance their user’s daily social and working lives our developer community are in on the big secret: RAD Studio Delphi gets your apps going from great idea to reality and into the hands of customers quickly. Also, with the full power of RAD Studio’s rapid application development, the minimum of effort produces maximum results. Once out there on your user’s devices your apps keep on solidly running allowing you, as Apple’s Tim Cook would put it, to “surprise and delight your users“. Via Express makes user’s lives easier Via Express is just such an example of a truly useful application, written well. It’s compact, light-weight and works on the iPhone and iPad where users user it to record the details of journeys and travel details for use in expense claims and financial reporting such as tax accounts. The mobile app links with a web-based service from the same developer and between the two a comprehensive picture of you or you staffs’ travel can be recorded and a history built up over time. What sort of information does the app help with? Data like starting location, vehicle information such as type – car, motorbike and so on – destination, reason for travel as well as timings and distance covered. Users don’t have to use the online service since the app can be used completely independently of it. Anyone who has faced the nightmare of recording their travel details for either reimbursement by an employer or to accurately claim allowances on their tax paperwork will know that Via Express really does have the potential to improve its user’s lives and simplify the bureaucratic paperwork burden. Developer Davor Pleskina has several apps in the Apple iTunes and Google Play Android store. Great work Davor! Apple App Store Via Express Screenshot Gallery Isn’t it time to turn your great idea into reality and become the next must-have app?

Read More

Delphi University makes a year

A year ago, we launched the Delphi University project here in Brazil. And yesterday, 13/04/2021, it was a day to celebrate the success of the project. The idea of ​​live and the call The day started and at around 10 am I remembered that I was completing exactly one year since the launch of Delphi University . I talked with the team in the group of content producers and sent “let’s do a live class?” I wanted the live to be light, a chat without responsibility, without a technical part … So when making the call to live I thought to myself: “I want something that makes people laugh…” and the rest is what you saw in the editing I did, if you have not seen the video of the call is here below: Video call for Delphi University’s 1-year Live Guests In addition to the content producers, we opened space to interact with some special guests… who for example went to live was Prof. Tiago Souza , training coordinator at the Paula Souza Center. You can find the full post on my website (in Portuguese): And this year we intend to deliver even more content at Delphi University. Discover: universidadedelphi.com.br. See you at the next opportunity.

Read More

High performance multi-feature grid

Intro The multi-device, true native app platform The FireMonkey® framework is the app development and runtime platform behind RAD Studio, Delphi and C++Builder. FireMonkey is designed for teams building multi-device, true native apps for Windows, OS X, Android and iOS, and getting them to app stores and enterprises fast. source: https://www.embarcadero.com/products/rad-studio/fm-application-platform FMX (FireMonkey) released in 2011 and shortly after we delivered a first set of components. Today, we want to show you the TTMSFNCGrid component, a high performance multi-feature grid Features Below is a list of the most important features the TTMSFNCGrid has to offer. The features are not limited to this list, but this will give you a quick insight on what we offer to be able to create an application that visualizes your data in a grid structure in FireMonkey. Column Persistence Fixed cell single and range selection Autosizing columns / rows on double-click Highly configurable and flexible grid Various cell types available and built-in as well as support for custom cell types Fixed columns left and/or right, fixed rows at top and/or bottom. Column & row freezing High performance virtual mode Several selection modes: single & multi cell, column, row, distinct cell, row, column Cells with support for HTML formatted text, hyperlinks Editing with range of built-in editor types and capability of using custom cell inplace editors Cell merging and splitting Grouping support with summary rows, and group calculations such as average, sum, min, max, custom calculation… Filtering with optional auto filtering via dropdown Different cell layouts for different cell states Read-only and/or fixed state per cell configurable Single column sorting, indexed column sorting, grouped column & indexed column sorting Pixel and cell scrolling modes Keyboard and Mouse handling customization: tab, enter, insert, delete key handling Column and row dragging and sizing Cell controls such as checkbox, radiobutton, button, bitmap, progressbar etc… Configurable touch scrolling optimized for iOS / Android Banding Clipboard support HTML Export PDF Export Excel Import / Export via the TTMSFNCGridExcelIO Find and replace functionality Separate ToolBar Popup Learn More! Want to learn more about what the TTMSFNCGrid can do? Here is a video that highlights some of the above features through a demo application. Download & Explore! The TTMSFNCGrid component is part of the TMS FNC UI Pack, which, on top of FMX, also offers the ability to write your code once and target other frameworks (VCL, LCL and WEB). You can download a full featured trial version of the TMS FNC UI Pack and start exploring the capabilities of the TTMSFNCGrid component. Stay tuned! The TTMSFNCGrid is the fifth and last component of a series of components that is covered to empower your FMX (FireMonkey) developments. We started the series with a general overview of the most important components that we have to offer, followed by the TTMSFNCRichEditor, TTMSFNCPlanner, TTMSFNCTreeView and the TTMSFNCKanbanBoard. Keep an eye on our blog post for more exciting news coming up for the FMX framework and FNC in the form of a whole new platform!

Read More

Developer Stories: George Kirkwood Gives Insights On SiteZilla

George Kirkwood has been working with the programming language ever since Delphi 1. His application (SiteZilla) showcase entry was an excellent addition to the Delphi 26th Showcase Challenge and we exclusively asked him about how he works with Delphi. Take a look at his SiteZilla website for further knowledge about his application. When did you start using RAD Studio/Delphi and have long have you been using it? I’ve been using Delphi since version 1. We previously created applications in Visual Basic, but as soon as Delphi came along we jumped ship and abandoned all VB code. What was it like building software before you had RAD Studio/Delphi? We had MS-DOS based character interfaces. Then VB came along and we could design more visual applications for Microsoft Windows. Connecting to databases with VB wasn’t exactly straightforward, and the choice of databases was limited. Delphi changed all of this. How did RAD Studio/Delphi help you create your showcase application? The app needed to work on multiple platforms, so as an existing Delphi developer it was a simple decision to make to go with Delphi and FireMonkey. Although there was still a lot to learn, we could re-use a lot of the existing code so this gave us an advantage in getting started. Our development time for this app from concept to delivery was achieved extremely quickly. What made RAD Studio/Delphi stand out from other options? The cross platform write once, run anywhere ability was a big plus for us. It also helped our customers in being able to provide the same app, with the same layouts and interfaces, on all devices. What made you happiest about working with RAD Studio/Delphi? Being able to utilise nearly 30 years of experience to create solutions quickly. The familiarity of the IDE, code etc., when developing for other platforms made life a lot easier. I didn’t have to learn Android Studio, Objective C or the myriad of ways in which you had to do certain tasks on each platform. What have you been able to achieve through using RAD Studio/Delphi to create your showcase application? We’ve utilised push messaging, GPS location and offline data storage. Some of this would have been difficult with the platform specific IDEs. The app was delivered from concept to production ready in less than 6 weeks. What are some future plans for your showcase application? We plan to add more features, utilize new technologies and device capabilities and ensure compatibility with every device our customers use. Thank you, George! Click the link below to view his showcase entry. Showcase

Read More

Do You Want To See How To Create A Showcase Mobile Game?

We love featuring our showcase applications – it’s great to see the versatility and skill Delphi developers put into them. There’s such a wide variety of offerings too from intelligent order-taking, machine-learning vision apps, powerful museum mobile experiences which enhance visits to exhibits with helpful information and three dimensional images. Wherever your imagination takes you RAD Studio Delphi can help make it a reality on Windows, macOS, Linux, iOS and Android. All work and no play? Not with Firemonkey! Games are also well represented by our community of wonderfully talented Delphi developers. This beautifully-designed game from French developer GBESort is a great example of what can be done. FMXPong is a version of the famous game “Pong”. The original Pong, from Atari, was very likely the first computer game ever released. FMXPong is a tribute to the original, but bringing things right up to date in 3D. FMXPong also contains some additional features enabled by the modern world of mobile devices. For example you can move the paddle by touching on the screen or by tilting the smartphone or tablet which the code then detects using the gyroscope of your device. What’s better than a great mobile game written with Delphi? How about a great game with full open source? All the code for FMXPong is fully open source and available at: https://github.com/gbegreg/FMXPong Website FMXPong Google Play FMXPong Screenshot Gallery Are you ready to write a mobile game?

Read More

This API Adds Machine Learning Computer Vision To Your App

Microsoft’s Azure has a broad collection of services you can access with an easy-to-use API. Azure is Microsoft’s cloud hosting and computing platform with a catalog of more than 200 different products. It also includes products which allow you to implement Machine Learning services. Those services all have an API which can you can access using client access libraries or a REST client. Delphi takes this ease of use one step further by providing a TAzureConnectionInfo to implement some of those services quickly and with a minimal amount of code. Also, we can access the services using Delphi’s built-in REST client. Is Azure Read Client Free? No, the Azure Read Client is not free, but the good news is when you first register you will get some free 12 months services and an free-tier allowance for services so you can try things out as you develop, test and launch your app. Some Azure services have very generous ‘always free’ levels. The service we going to use in our OCR application is  “Cognitive Search” which is one of those which is always free. It has a permanent limit of 10,000 documents, but that’s more than enough for our testing purposes. How do we get API credentials for the “Computer Vision” service resources? For our OCR application, we going to use the “Cognitive Services->Computer Vision” resource. First you must have an “Azure subscription”. Go to the link below and create an “Azure subscription” if you don’t have one. It’s free to start! https://azure.microsoft.com/en-us/free/cognitive-services/ Once you have the subscription, you can create the required service links. Go to this link to create a “Computer Vision” resource. https://portal.azure.com/#create/Microsoft.CognitiveServicesComputerVision Make sure you select the correct region because you can’t go back and change it later. Now go to the resource you created and choose “Keys and Endpoint” from the left-hand menu. Now, copy one of the keys and and the location. We need those in our application. How to connect to the Cognitive Services REST API? We need TRESTClient, TRESTRequest and a TRESTResponse components to connect to the cognitive services REST Api. Lets drag and drop TRESTClient in to the forum and do some basic property changes. Make sure the “Accept” property has “application/json” type. Set the content type to “application/json“. Then drop a TRESTRequest component into the forum and set client property to the client we created earlier. Set the method to “rmPOST“. Place a TRESTResponse component and set the response property in the request component to this response object. Add some edit boxes, buttons and a memo box to complete our interface. How do we use the API to post the image for processing? We cannot post the image to cognitive services and get the result in one call. The image processing takes time, although usually this is less than five seconds. So, first we need to submit our image to the cognitive service and get the “Operation-Location” and check the status until it’s “succeeded”. If the server is still processing the image, status will be “running” instead. For each and every call to cognitive service API, we need to provide our subscription key through the HTTP Header. It’s the key we copied earlier from the resource we created. To do that, add a new parameter to TRESTRequest component, set the ‘kind’ to […]

Read More

Firestore async dataset methods in TMS WEB Core v1.7

In this last blog article of 4 blog posts, we introduce a last major new feature in the Google Firestore dataset, i.e. new async features. Before providing details about these new features, let’s first look at the classic VCL TClientDataSet, how it can work how it works and what the implications are of inherently asynchronous implementations for use with a REST API based communication between a client dataset and the Google Firestore backend. Classic VCL TClientDataSet operations The editing and navigation interface for a TClientDataSet is best provided by using data-aware controls such as TDBGrid, TDBNavigator and more. Still, many times you need to process some records in code according to specific business logic. When it comes to populating and modifying a TClientDataSet in classic VCL code, you would use code similar to the following code snippets. Inserting a record in the dataset ClientDataSet1.Insert; ClientDataSet1.FieldByName(‘Description’).AsString := ‘Call up a meeting with Sales group.’; ClientDataSet1.FieldByName(‘Status’).AsString := ‘New’; ClientDataSet1.Post; Modifying a record in the dataset ClientDataSet1.Edit; ClientDataSet1.FieldByName(‘Status’).AsString := ‘Done’; ClientDataSet1.Post; Deleting a record in the dataset  Processing all the records in the dataset ClientDataSet1.First; while not ClientDataSet1.EOF do begin //do some processing based on one or more fields of the record ClientDataSet1.Next; end; Equivalents with Firestore? Question is, will the above code work in Firestore ClientDataSet too? Yes the above code will work as standalone. But the code that follows the above code will fail if it depends on the success of the database operation in the previous code. This is important to understand so let’s look at 2 examples of how the code that follows can fail in Firestore TClientDataSet. Failing code example 1 Consider the following variation of the last example: if not ClientDataSet1.Active then ClientDataSet1.Open; ClientDataSet1.First; while not ClientDataSet1.EOF do begin // do some processing based on one or more fields of the record .. ClientDataSet1.Next; end; This will fail on TClientDataSet1.First. Why? Because an open is an asynchronous operation that takes time to open the cloud database. There is no guarantee that the open will be complete by the time you reach the next statement. What will happen is unpredictable. In fact, this is true of all the ClientDataSets in TMS Web Core dealing with cloud databases. Failing code example 2 Consider another example where we want to first insert a record in a Firestore collection, then get the record’s id that Firestore generates and stuff it as a foreign key value in another dataset’s new record. // adding a new customer’s record Customers.Insert; Customers.FieldByName(‘FirstName’).AsString := ‘John’; … more data for the customer record as needed … Customers.Post; // getting the generated id from Firestore newid := Customers.FieldByName(‘id’).AsString; // adding the invoice for the customer Invoices.Insert; … more data for the invoice record as needed … // setting the foreign key value as the id generated earlier Invoices.FieldByName(‘customer_id’).AsString := newid; Invoices.Post; Do you see what will cause a problem here? Customers.Post is an async operation as it will add a new record in the Firestore collection. There is no guarantee that it will finish by the time you reacth the next statement that remembers the generated id in newid.  To rescue with async Fortunately, we have a solution for the above coding problems in the new version of TWebFirestoreClientDataSet. They consist of the following methods that allow you […]

Read More