Noutați

Identify Objects And Faces With Machine Learning AI And Javascript

Here we go with one more post about the power of Artificial Intelligence (AI) and Machine Learning (ML) using object and facial recognition! Today we are going to implement a really awesome application that can Identify objects and faces through your webcam. The application will teach the machine to save aspects of an object or face to and then tell you what or who it sees on camera. That’s incredible! We will be working based on this Google lab post using TensorFlow.js. and, of course, applying  Ext JS best practice as usual. How can I get Getting Started with Sencha CMD? If you still don’t have Sencha CMD, you can download it for free here. Once you have it installed you can make sure you have it properly installed and configured by running this command on terminal/shell: If it returns the 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. How can I create the Sencha application? The first thing you want to do is create your project structure. Sencha CMD can do this for you easily–all you need to do is run this command. If you have any questions, take a look at the bullet points below. They explain what everything in the command does and what you will need to change to personalize your application. sencha -sdk /Users/fabio/sencha-sdks/ext-7.4.0/ generate app modern TeachableMachine ./teachable-machine-extjs /Users/fabio/sencha-sdks/ext-7.4.0/ is where your Ext JS folder is. TeachableMachine is the name of our application and the namespace for our classes. ./teachable-machine-extjs is the path for our project structure and the necessary files. modern is the toolkit for our application. Make sure when you run this command there is no error on the output. If there is no error, and everything runs correctly, you have successfully created your project structure. To be sure, however, let’s run our application with the initial structure. To do this, first navigate to your project folder: $ cd teachable-machine-extjs/ Then, run the command to open the server on a specific port: The output of this command will return the URL where your app is available. In this case, it is running on  http://localhost:1841/. When you open it on your browser you will see a screen like this: How can I clean up the Sencha project? Once you have your basic project running, you can clean it up by removing the files and components that you don’t need. Use the command shown below to delete your unwanted files. While deleting, keep another terminal open and have the Sencha app running because it will update the application automatically: $ rm app/model/* app/store/* app/view/main/List.* With that done, let’s clean up our classes in app/view/main. Make sure your three classes look 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(‘TeachableMachine.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(‘TeachableMachine.view.main.MainController’, { extend: […]

Read More

Pandemic Legacy: Remote Work and Digital Transformation

Published June 3, 2021 WRITTEN BY MICHAEL SOLOMON Michael G. Solomon, PhD, CISSP, PMP, CISM, PenTest+, is a security, privacy, blockchain, and data science author, consultant, educator and speaker who specializes in leading organizations toward achieving and maintaining compliant and secure IT environments. The COVID-19 pandemic drove many companies to rapidly expand their support for remote work. This change was not simply to appease a changing workforce; it was simply to survive. When most of the workforce was suddenly told to stay home, many organizations had to either adapt or cease to exist. The increased reliance on transforming previously manual or hybrid procedures to purely digital ones required updated (or completely new) applications, supporting software and infrastructure. Digital transformation was no longer an aspirational goal — it became a survival necessity.  Let’s look at some fundamental changes the pandemic forced on companies and consumers, and how those changes affect all aspects of doing business today, including software development organizations developing secure application security in a decentralized world. Digital transformation plans were accelerated Prior to 2020, face-to-face interactions were not only the norm, but also the preferred way to communicate and carry out business. While a growing number of younger workers and consumers who preferred digital interaction were encouraging digital communication to gain popularity, total adoption was a long way off.  Digital transformation (DT) is the common term used to represent the process of replacing manual business processes or services with digital processes. The push for DT was underway in 2020, but only as it aligned with long-term strategy. A few existing companies and many startups relied on digital processes, but most companies approached DT conservatively. After all, the requirement to produce revenue today trumped the desire to innovate for the future. Once the pandemic hit, companies of all types suddenly had to carry on unhindered without face-to-face interactions. Some companies were built on the concept of offices full of workers. Others depended on the ability to serve a steady flow of physical customers. Regardless of the business model, the disruption of face-to-face interaction required solutions where technology could provide the connection. One of the first shifts was to simulate the business meeting, customer interactions or even the classroom. Zoom went from a video conferencing tool to a generic term for an online meeting. The term can even be used as a verb, as in “I’ll Zoom you.” COVID-19 shifted DT from a long-term strategic goal to a survival requirement. Although all companies could not simply “go digital,” many could. Restaurants, airlines, hotels and a long list of other service-oriented companies had to undergo radical transformations. Other types of companies, such as insurance companies, software development organizations and banks, could continue operations, but had to find a different way. Reliance on face-to-face interactions had to defer to digital transactions. Customer service was required to rise to the occasion and provide an acceptable level of service using remote workers and digital connections. Some companies, like Amazon, were up to the challenge. After all, they were already relying on a decentralized model for much of their business process. They encountered challenges at their warehouses that relied on many human workers, but the rest of their organization had already embraced digitization and automation. Other organizations were not as fortunate and had to accelerate their digital […]

Read More

Impressive Basketball Chalk Visualization: Powered By Delphi

Embarcadero’s users understand the scalability and stability of C++ and Delphi programming, and depend on the decades of innovation those languages bring to development. Ninety of the Fortune 100 and an active community of more than three million users worldwide have relied on Embarcadero’s award-winning products over the past 30 years. Icons by Icons8.com. © 2020 EMBARCADERO INC. ALL RIGHTS RESERVED

Read More

JSON backstage pass for TMS WebCore developers

2. First things first In the previous section we used the terms JSON and JavaScript object. But what is it exactly and what are the differences? In JavaScript, a variable can contain a simple value as well as an object or an array. // JavaScript let i = 5; let s = ‘some text’; let o = { a = ‘text’, b = i } In this example the variable o contains a JavaScript object with the two attributes a and b where a contains a text and b contains a number. In TMS WEB Core there is a type JSVALUE for the value of a variable from the JavaScript world. Whenever we want to access the value of a JavaScript variable, we can use the JSVALUE type for it. // WEBCore function sampleJavascriptVariable : JSVALUE; assembler; asm let i = 5; return i; end; procedure AccessJsvalue; var javascriptvalue: JSVALUE; i: integer; begin javascriptvalue := sampleJavascriptVariable; // value will now contain the JavaScript VALUE (hence JSVALUE) 5 i := integer(javascriptvalue); // we needed to typecast javascriptvalue to integer because the compiler // doesn’t know the type of the value actually stored in that variable end; So whenever we want to access JavaScript values directly from TMS WEB Core, we need a typecast to tell the compiler which type the value in the variable with the type JSVALUE contains. This is already cumbersome with simple types and also error-prone and it gets even more complex when we want to access JavaScript objects. Let’s summarize: A JavaScript object is an object in the JavaScript world that is stored in an internal representation in a JavaScript variable. To store such a JavaScript object in an Object Pascal variable in TMS WEB Core, the object pascal type JSVALUE is available. And what has all this to do with JSON ? JSON (JavaScript Object Notation) is a string that represents a JavaScript object. A JavaScript object can be converted to JSON and a JSON string can be converted to a JavaScript object. More information about the syntax definition of JSON can be found here: https://www.json.org/json-en.html. Whenever we talk about JSON, we mean a string from an Object Pascal point of view. Whenever we talk about a JavaScript object we mean a JSVALUE from an Object Pascal point of view. // WEBCore var json: String; javascriptobject: JSValue; begin json := ‘{ “x” : 5, “y” : 7 }’; javascriptobject := TJSJSON.parse(json); end; In this example the JSON variable contains a JSON representation (data type String) of an object with the members x and y, both containing numbers. This string is parsed into a JavaScript object using the static method TJSJSON.parse() and stored in the variable javascriptobject. Note: All sample sources use only the units that are already automatically included in the uses list of a standard TMS WEB Core web project. So you can try and reproduce everything directly in TMS WEB Core when you include the source texts in the unit1.pas of a newly created project. To keep the example source code short, only necessary code is shown, in real world code you would need to add some exception handling here and there… All well and good, now we have a JavaScript object in an Object Pascal JSVALUE variable in TMS WEB Core. But how […]

Read More

Keep up with the latest developments!

Everything evolves so incredibly fast in the software world! So our team is also trying really hard to keep up with the latest developments. And to give our customers access to all our latest developments we have created our no-nonsense subscription TMS ALL-ACCESS! Because we want our customers to be able to use all our products with no restrictions or limitations. And when we say ALL we really mean ALL our products we offer now and also all new products we’ll release in the year of the subscription. Moreover, our all-access users are the first to receive the previews and betas of our non-released products! Here is a small overview of the new products we added in 2021: January 2021: TMS VCL UI Pack v10.4: Powerful, extensive & flexible component suite for native Excel report & file generation & manipulation for VCL & FireMonkey TMS FNC Cloud Pack v1.3: Seamless access to cloud services from Windows, cross-platform and the web TMS WEB Core v1.6: Framework for creating modern web applications February 2021: March 2021:  April 2021:  May 2021:  Get full access with:  Easy plan: All current and new products for 1 price! Easy renewal: Yearly renewal only for 495 EUR! Easy install: all products accessible via TMS Subscription Manager tool Easy support: Full online support center access to all areas Easy up-to-date: Early access to product betas Easy learning: Access to TMS WEB Academy Act now: So what are you waiting for? Find out more about our products included in TMS ALL-ACCESS. NOTE: Contact sales for special upgrading pricing for existing customers of other products.

Read More

Is .NET Really Dead? What Is The Best Alternative?

.NET is one of the most popular frameworks for building powerful desktop and web applications. But it hasn’t received any new update since 2019. Is the framework REALLY dead? Should you look for alternative solutions for developing applications in 2021? In this post, you will find all the details. What is .NET framework? .NET is a full-stack platform for building and running server-side applications on Windows. It is compatible with different languages, including C#, F#, and Visual Basic. You can use it to create desktop, web, mobile, and IoT applications. Is .NET framework really dead? Back in 2019, Microsoft announced that the .NET 4.8 would be the last release of .NET framework. Also, the company declared that the successor of .NET Core 3.0 would be known as .NET 5.0. In other words, .NET Core would replace the .NET framework. Eventually, .NET 5.0 was rolled out in November 2020. With .NET 5.0, Microsoft aims to transform the .NET and .NET Core into a new cross-platform framework. However, there are some drawbacks. The developers have been using ASP.NET Web Forms for years to build dynamic web UIs. It is no longer supported on .NET 5.0. Instead, you will have to use Blazor. Even Windows Communication Foundation (WCF), the traditional communication framework for Windows, is deprecated. So, you will be forced to use alternative solutions, like gRPC or CoreWCF. Overall, Microsoft is unifying .NET and .NET Core frameworks by making drastic changes. So, you can no longer use the key features like the way you do with the original full-stack platform. In this sense, the .NET framework is dead. Microsoft’s controversial move on .NET framework had infuriated a large number of developers around the world. They feel that there is a significant gap between release and stability in the products of the software development giant. One of the Y Combinator users, known as @TheRealDunkirk, vividly described the issue: My problem with these kinds of Microsoft technology evangelism articles/videos is that it always seems like Microsoft has juuuust gotten their new hotness to work, and is telling the world that it’s awesome, and ready for production. Then you go to implement it, and as soon as you leave the perfect world of their demo, it all falls apart, and THEN you find out the docs were written for the beta version, and no longer apply, so you’re left guessing at the right invocation signature for the method you need. What is the best alternative to .NET framework? There are different alternatives to .NET framework, including Node.js, Django and Laravel. However, the best one is Delphi. Unlike .NET framework, it is providing new releases and support for more than 26 years continuously. Why Delphi is the best alternative to .NET framework? Safe Future: Delphi has been evolving since 1995. It is being updated constantly. There is no possibility of seeing it abandoned anytime soon. .NET Compatibility: Delphi supports a compiler and a base class for .NET framework. So, you can build native .NET applications with the same class library and IDE. High Performance: Delphi is super-fast. Similar to .NET framework, it is well suited for graphics and math-intensive application development. GUI Designing Made Easy:  Delphi supports a powerful GUI designer, which makes the process of creating amazing interfaces pretty straightforward Well Documented: Delphi supports comprehensive […]

Read More

Developer Stories: Bruce McKibben And The Excellent Macaos

Bruce McKibben has begun programming in 1997. His software (Macaos Enterprise) was one of the showcase entries for the Delphi 26th Showcase Challenge and we interviewed him to get more of his insights on working with Delphi. Go to the Macaos Enterprise website and learn more about the software. When did you start using RAD Studio/Delphi and have long have you been using it? The original MACAOS application, the predecessor to Macaos Enterprise, was begun with Delphi 3 in 1997. I have been involved in the project since 2002, Delphi 6. The system uses a middle-tier built in Kylix/RemObjects, for which a RAD Server replacement is under development. What was it like building software before you had RAD Studio Delphi? Personally, I have developed or maintained software using more than a dozen different languages (over a span of 40+ years). With the exception of Delphi and Visual Basic, they were all mostly suitable for console or batch type processing. Delphi brings nearly unlimited processing functionality and flexible, modern UI design together in an intuitive development environment. Prior to using Delphi, I didn’t have the tools to think in terms of building apps with the user experience in focus. How did RAD Studio Delphi help you create your showcase application? Macaos Enterprise is the fourth generation of this functionality. The second generation version basically hit the wall, and we nearly concluded that Delphi was not up to doing the job. (The third generation was built as a Delphi UI wrapper around an MSVC++ motor, which we later abandoned.) That led to a total rebuild of our internal data structures and our graphics engine — making use of newer technologies that had come into the toolset by then. Looking forward, it appears that Delphi provides more than we are likely to need for the forseeable future. The long-awaited release of the Delphi Linux compiler has allowed us to finally start developing a replacement for our stable, but aging, middle-tier which was developed with Kylix 3. What made RAD Studio Delphi stand out from other options? There are several things. Pascal is a much more readable – and thereby self-commenting – language than C-based languages. The Delphi forms designer paradigm is a very efficient UI-design methodology. The availability of 3rd-party components is a huge plus. The somewhat recent addition of mobile platforms opens up new possibilities which we have yet to fully explore. What made you happiest about working with RAD Studio Delphi? I think perhaps it is the event driven program model which makes it easy to expand the application incrementally. I like that I can try out things without needing to build everything before I can run it. What have you been able to achieve through using RAD Studio Delphi to create your showcase application? Our goal has been to make it easy to get an electronics development project from development to production. There are powerful electronics design (CAD) tools out there, and manufacturers have powerful editors and CAM tools at their end. But there is a gap between these two which we aim to fill with intuitive, task-oriented functionality. Our system is widely used in Scandinavia (the home markets of our manufacturing partners), but we believe that other markets can also benefit from these tools. What are some future plans for […]

Read More

Competitive BQGolf Viewer: Golf Management On Your Phone

Embarcadero’s users understand the scalability and stability of C++ and Delphi programming, and depend on the decades of innovation those languages bring to development. Ninety of the Fortune 100 and an active community of more than three million users worldwide have relied on Embarcadero’s award-winning products over the past 30 years. Icons by Icons8.com. © 2020 EMBARCADERO INC. ALL RIGHTS RESERVED

Read More

MQTT: How Do I Write An App To Communicate With IOT Devices?

When we combine MQTT with Delphi we can easily write apps which will communicate with IOT devices. Follow along with us now as Bruno Mileto tells us how to do it. IoT – the unseen world Internet of Things, or IoT, is a concept that defines the connection between physical objects with the user and the internet. It makes use of intelligent sensors, in addition to software, used in the collect and transmit data to the network, allowing the control of different devices. IoT devices communicate using IoT protocols that are a set of rules that determines how data is sent. IoT protocols ensure that information from one device or sensor is read and understood by another device, a gateway and a service. MQTT stands for Message Queuing Telemetry Transport and it is a simple and easy implement, IoT protocol. It is a message protocol with support for asynchronous communication between the parts. It makes a light application, ideal for remote communication between devices where the amount of data communicated is highly limited, and, in networks whose bandwidth for communication is restricted and of high latency. The MQTT protocol defines two types of entities: a message broker and numerous clients. The broker is a server that receives all messages from clients and then routes those messages to the relevant target clients. A client is anything that can interact with the broker and receive messages. A customer can be an IoT sensor in the field or an application in a data center. The client connects to the broker. He can subscribe to any message “topic” at the broker. The client publishes the messages to a topic, sending the message and topic to the broker. The broker then forwards the message to all customers who subscribe to that topic. A Delphi MQTT Client Application To create a Delphi MQTT client application, we are going to need a Delphi MQTT component. We can use the Delphi WebSocket components from eSeGeCe. The download and installation process, is detailed here. First drop the two main components to a form, the TsgcWebSocketClient, and the TsgcWSPClient_MQTT. In the TsgcWebSocketClient component, go to properties, and in Authentication/Session/Enabled, change it to True. In Options/Parameters add ‘/ws’, in the host, add www.esegece.com, and in Port, change it to 15675. There are a lot of servers that act like a broker, so you can use them to test, like: broker.hivemq.com test.mosca.io iot.eclipse.org mqtt.simpleml.com But here, we will stick with the broker found at www.esegece.com Setting up the MQTT connection In the TsgcWSPClient_MQTT component, go to properties, and in Authentication/Enabled, change it to True. In Client, choose the TsgcWebSocketClient component and in HeartBeat/Interval, change it to 5. To complete the Delphi MQTT Client Application, you will need at least: Three buttons: two to subscribe and unsubscribe to a topic, and one to publish a message. Two TEdit, to inform the topic to subscribe and the message to publish. A way to inform the quality of service. We do this in a TComboBox component Quality of service levels The Quality of Service (QoS) level is an agreement between the sender of a message and the receiver of a message that defines the guarantee of delivery for a specific message. There are 3 QoS levels in MQTT: At most once (0) (mtqsAtMostOnce) At least […]

Read More

Showcase: Interactive Roman Numbers Kids Mobile App

I’m old enough to remember the days when movies used to have have copyright messages where the years were listed out in a series of letters. I like to think it added to the magic of the big screen movie experience to see things like MCMLXXVI underneath that roaring lion or a huge gong being banged to signal the start of a trip into the cinematic wonderland. A few years later our school was still teaching us to read the Roman Numerals as they were known. A fading art now along with Morse Code and darning holes in socks. Roman Numbers Mobile App “Roman Numbers” is a mobile app produced by Spanish developer Demontriz programacion which tries to keep the lost art of reading numerals alive. It introduces this two thousand year-old numbering system to the computer-savvy younger generation of the 21st Century. Written using RAD Studio Delphi using the cross-platform FireMonkey FMX platform to make excellent use of the user’s mobile devices it’s a great way to make learning fun. A mobile app to convert Roman numerals to decimal and back again The app converts Arabic numbers to Roman numbers and is especially aimed at children. They can type any number between 1 and 999999 and the app will show the equivalent roman number. You can also type in any Roman number between 1 and 999 and check its decimal value. So, do you know what DCCCLXXXVIII is in the based 10 decimal system? Website Roman Numbers Google Play Roman Numbers Screenshot Gallery Do you have a great idea for an educational app? Why not use the power of RAD Studio Delphi to bring it to life?

Read More