Noutați

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

How to Call Google Natural Language APIs from Sencha Ext JS Framework

Ext.define(‘GoogleNLPDemoApp.view.main.MainView’, {   xtype: ‘mainview’,   controller: ‘mainviewcontroller’,   extend: ‘Ext.Panel’,   layout: ‘vbox’,   items: [{             xtype: ‘fieldset’,             items: [                 {                    xtype: ‘textfield’,                                      label: ‘Text Content’,                                      placeholder: ‘Enter text for analysis’,                                      name: ‘textContent’,                                      // validate not empty                                      required: true,                                      reference: ‘ct’                 },                 {                     xtype: ‘button’,                                           text: ‘analyze’,                                           handler: ‘onAnalyzeClick’                 }             ]         },  {       xtype: ‘reportgrid’,       title: ‘Sentiment Analysis Report’,       bind: {                 store: ‘{nlpStore}’             }   }],   viewModel: {       stores: {           nlpStore: {               type: ‘store’,               storeId: ‘dStore’,               autoLoad: true,               fields:[{                   name: ‘content’,                   mapping: ‘text.content’               },               {                   name: ‘magnitude’,                   mapping: ‘sentiment.magnitude’               },               {                   name: ‘score’,                   mapping: ‘sentiment.score’               }               ],               proxy: {                   type: ‘memory’,                   data: null,                   reader: {                       rootProperty: ‘sentences’                   }               }           }       }   },   defaults: {       flex: 1,       margin: 16   } });

Read More

How To Build Powerful Data Visualizations Using JavaScript with D3 in Sencha Ext JS

The D3 package in Sencha Ext JS is a very popular and efficient way to visualize data. There are 2 main components to the tool — the first is D3, the powerful JavaScript library that helps you easily visualize data on the web using HTML tables or SVG. Next is Ext JS, the Sencha JavaScript framework for building interactive cross-platform applications. By using D3 with Ext JS, you can build powerful data visualizations that help organizations and individuals uncover valuable insights by seeing their data more effectively. If effective, intuitive, and easy-to-implement data visualization is what you are after, read on to learn more about how you can put Ext JS and D3 to work for you.  What is D3? First off, you ask, what is D3?  D3 stands for Data-Driven Documents. It is an open-source JavaScript library for producing dynamic, readable, and interactive data visualizations in web browsers. It uses all the modern web standards, including SVG, HTML, and CSS.  What makes it effective is that you can use D3 to bind any arbitrary data to your Document Object Model (DOM) and apply data transformations from there.  D3 is incredibly flexible. For example, you can use D3 to generate an HTML table from any array of numbers. You can also use D3 to create an interactive SVG bar chart using the same data. In short, D3 lets you present your information in a visually appealing way.  More importantly, it gives you full control over the data selection process.  Three Reasons to use D3 for data visualization There are many reasons why Sencha’s D3 is the perfect tool to visualize your data. but for now, let’s stick to these 3: It’s easy to build any kind of visualization that you want.  The D3 library lets you present your complex numbers in a way that is easy for everyone to read. You can easily generate reports, it simplifies making comparisons and allows you to present your data that makes it easier to recognize patterns. It’s simple to reuse code and add specific functions. D3 is a JavaScript library with functional styles built in.  As a result, creating attractive, powerful data visualization is a breeze. It creates memorable visualizations. Data Visualizations created with D3 stand out. Whether you are working to convince investors or present findings, nothing works better than properly transformed data to uncover valuable insights. How to Build Powerful Data Visualizations with D3 and Ext JS The Sencha D3 package is completely integrated with Ext JS. The result is powerful, easily implemented data visualizations. The D3 package supports multiple component types, including Hierarchical Components, Heatmap Components, and Custom Components. Here we will look at the details of integrating the hierarchical “Sunburst” and “Zoomable Sunburst” components in Ext JS. Sunburst  The D3 sunburst component is a dynamic and compelling way to render your hierarchical data. Like a sunburst, it visualizes tree nodes as concentric wedge sectors, with the root circle in the center. It opens outward for every level of depth in the hierarchy.  To produce the visualization shown above, you have to create the Model by using the following code: Ext.define(‘KitchenSink.model.Tree’, {    extend: ‘Ext.data.TreeModel’,     fields: [        ‘name’,        ‘path’,        ‘size’,        {            […]

Read More

Developer Stories: Oripov Murod Converses Regarding His DovtaLab2020 Application

Oripov Murod has been programming with Delphi since 2006. His application (DovtaLab2020) was submitted as an entry for the Delphi 26th Showcase Challenge and we interviewed him to know more about his application and experiences with Delphi. You can download his application over at DovtaLab2020. When did you start using RAD Studio/Delphi and have long have you been using it? I started studying from 2003 (Delphi6)  as beginner. I use Delphi seriosly from 2012 (Delphi2010). What was it like building software before you had RAD Studio/Delphi? I used FoxPro, Basic,C, Access. How did RAD Studio/Delphi help you create your showcase application? Delphi is more simple and Delphi has a lot of tools for creating any application. What made RAD Studio/Delphi stand out from other options? It seems to me that I understand delphi better than others. What made you happiest about working with RAD Studio/Delphi? I love delphi very much What have you been able to achieve through using RAD Studio/Delphi to create your showcase application? I liked this system and now i have more abilities to create a lot of apps in future. What are some future plans for your showcase application? I want to teach children to delphi to learn more myself.   Thank you, Oripov! You can find the link of his showcase entry below. Showcase

Read More

Websockets Harness Real-Time Power In Your Delphi Apps

Are you using websockets in your applications yet? Do you need to know what websockets can do for your apps? Read on to get up to speed on everything you need to know about using websockets with Delphi along with a run-down on some of the available component sets which take all the hard work out of making the magic happen. What are websockets? There are two sides to a websocket implementation – the client side and the server side. At the most basic level a websocket server is an application which listens for TCP traffic. The websockets clients are one or more applications or even web pages which connect to the websocket server via a “handshake” request and, if successful, a continuous connection is established between the server and the client. Are websockets just a special type of HTML? The short answer to that question is no, websockets use the TCP communication protocol – not the much more heavyweight HTTP. The websockets server is not a web server, although it can be implemented on one. The websockets TCP traffic, the data sent back and forth between the client and server, is not the familiar “200 OK” and “HTTP/2.0 a bunch of HTML” type text data. The websockets protocol is very lightweight and as a result, very fast. Websockets are also designed to be used in situations where there are prolonged and ‘constantly-on’ connections to the server by multiple clients. Compare that to HTML where the interaction is typically client makes a page request, the web server sends back its response and that’s end of interaction until the next web resource request. Websockets are more like a ‘push’ technology where the server can send updates without being asked. This push ability is more similar to the notifications on your mobile phone. Are websockets secure? The websocket protocol provides for both non-secure and secure connections. The secure protocol uses TLS/SSL. Why would I want to use websockets in my app? Websockets are really useful for applications which need to update small amounts of data frequently and on a schedule which is not predictable. You can use websockets to provide a highly efficient way of communicating that data without the overhead of things like REST which relies on HTML and therefore has all the added baggage of HTML request/response codes, headers and MIME types. Your applications cut out all that extra noise using websockets while providing a near real-time response without needing to implement things like the server or client polling for any requests or updates. This makes your app super-responsive and lightweight. What sort of applications can I write? The most common example you see given for websockets is in real-time “chat” programs which emulate popular apps like Slack, Discourse and Messenger. There are a whole host of other uses too: “Feed” type usage – like a Twitter tweet feed or an “as it happens” time and status update print-out from something like a temperature monitoring hardware control. Two-way updates between two client applications. For example, two users are both updating a shared resource like a set of notes or different parts of a patient record. Using websockets you could implement an update mechanism where both users could see the other’s changes in near-real time rather than having to hit a […]

Read More

Plunge Into A Museum Adventure With This Delphi Integration

This really wonderful Delphi app makes truly creative use of the integration of museum visitors with exhibits. Written by Oz Software of Spain, vCoolture makes a trip to the museum into an adventure where visitors using the app not only hear the descriptions offered by traditional audio guides but a plethora of additional information such as a biography of the painter or sculptor of an art exhibit, links to relevant web pages such as a contemporary artist’s own website or other publicly available information like a Wikipedia article. How does vCoolture achieve this integration magic? Oz Software makes use of Delphi’s ability to integrate with iBeacons – discrete little Bluetooth Low Energy devices – which are carefully placed at strategic points around the museum or art exhibition. When a visitor using the mobile device app comes within range of an iBeacon the app looks up the iBeacon’s hardware ID and retrieves the facts, photos and links associated with it. As well as visual information at the same time the device begins playing any audio linked to the exhibit’s iBeacon. To the visitor it all seems to work by some kind of invisible magic, but that magic is pretty easy to achieve with RAD Studio Delphi and a little imagination. What other types of integration does the app enable? Along with the images and audio the app also provides a map of each room as the user enters it. This map/iBeacon integration means the user not only sees a smaller, more concise map but can have relevant exhibits highlighted on the map in greater detail than could be done on a simple full-build floor plan. vCoolture is an example of software for mobile devices that substantially improves the user experience in visiting museums or any kind of exposition, offering many more services than those offered by traditional audio guides. vCoolture also uses the ready-to-go components in Delphi to provide in-app billing using Google Ad integration as well as the ability for the museums to display virtual reality ‘billboard’ advertising which seem to be projected on the floor of the halls or even the exhibits themselves! Gift merchandising information can also be integrated into the information associated with the iBeacons so things like relevant books, mementoes and T-shirts sold in the museum gift store can be displayed next to an exhibit. But there’s more than just hardware integration! As if all of this wasn’t enough, vCoolture has one more trick: to make a great visit even more interesting, vCoolture includes a ‘Enigma’ game built in. Visitors have to find the answers to questions posed by the app which allows them to ‘find’ 10 objects hidden ‘behind’ of some works of art. There is an interactive or group play element to because the game allows you to compete with friends or colleagues. What does the Oz Software say about vCoolture? “The vast majority of applications using iBeacons are specific to a particular museum and only serve for that particular use, so often the visitor is very reluctant to install a heavy application for a single use. vCoolture is a single App for any museum or exposition, there is no limitation, since all the information is loaded on demand from a local or remote web service. But also, every museum/exposition can personalize vCoolture for […]

Read More

Customer Case Study: Viasoft Korp

Wagner Landgraf, TMS Business Product Manager, has recently published a post in his landgraf.dev blog, with a transcription of a nice interview he has made with Alexandre Henzen, Technical Director at Viasoft Korp, a big software company in Brazil that provides ERP software for industry and belongs to Viasoft group, which also has software for other segments like agribusiness, retail stores, among others. The interview was in Portuguese but the the English transcription of the main parts of it is provided by the blog. It’s really great to see how TMS Software and Delphi made an important role in the company history. The company now has more than 70 employees, being part of the group that has more than 500 employees. According to Alexandre himself: All the architecture of our software written in Delphi is built around TMS Business. He uses TMS Scripter, TMS Workflow Studio, TMS Aurelius, TMS RemoteDB and TMS XData, among other products belonging to the TMS Business line of products. Some of their customers are as big as having 500 simultaneous users, with thousands of operations every day. TMS Business products are handling it hands down. He also mentioned his experience after upgrading to Delphi 10.4.2 Sydney. In his own words: Sydney 10.4.2 is the most stable release that I’ve seen since XE2. Compilation time was 58 minutes, it dropped to less than a half of it just by upgrading to it. It’s a very interesting interview when they also talk about other topics, including the role Alexandre had in TMS Aurelius development. Visit landgraf.dev interview post to see the full text and let us know in your comments what did you think about it!

Read More

TMS Aurelius academic license

In February 2020 we announced the TMS Academic Program. Today we are happy to extend the TMS Academic Program with a new product : TMS Aurelius v5.1. This license can be used with Delphi 10.4.x Sydney. With the Delphi Academic edition students already have an extremely powerful tool in their hands and we want to enrich this with offering our most popular products also free to students with the TMS Academic Program. Getting started : Register for a free TMS Aurelius Academic license with a school or university email address Receive your credentials to login on our website via your student email address Login and download your free TMS Aurelius Academic installer Install the product in the Delphi 10.4.x edition. Enjoy being part of the TMS family with full access to our website, TMS support center, product updates for 1 year and develop great Delphi VCL applications Interesting video’s: TMS Aurelius video’s Available books: IntroducingDelphi ORM: Object Relational Mapping Using TMS Aurelius. Get started with TMS software today and secure your place for the future in the Delphi world! TMS Aurelius is our new addition to the family and we plan to extend this academic program. We are curious to know how the TMS Academic Program helped you so far in achieving exciting software development challenges and we are eager to learn what next TMS products you would wish to see in the academic program.

Read More

How To Build Powerful Data Visualizations Using D3 In JavaScript

D3 is a powerful JavaScript library for creating amazing data visualizations. It helps you to visualize the data on the web easily using HTML tables or SVG. On the other hand, Ext JS is a JavaScript framework for building interactive cross-platform applications. By using D3 with the Ext JS apps, you can build powerful data visualizations, helping organizations and individuals uncover valuable insights effectively. In this article, you will find all the details.   What is D3? D3 stands for Data-Driven Documents. It is an open-source JavaScript library for producing dynamic, readable, and interactive data visualizations in web browsers. It utilizes modern web standards, including SVG, HTML, and CSS.  D3 can bind any arbitrary data to Document Object Model (DOM) and apply data transformation. For example, it can generate an HTML table from an array of numbers. It can use the same data to produce an interactive SVG bar chart. D3 enables you to present information in a visually appealing way. Also, it gives you full control over the data selection process.  Why should you use D3 for data visualization? You should use D3 because it helps you to build any kind of visualization that you want easily. It’s a tool that enables you to present the numbers in a readable form. Also, it helps you to generate reports easily, make comparisons effectively, and understand the pattern deeply.  D3 is a JavaScript library, which utilizes a functional style. So, you can reuse codes and add specific functions easily. As a result, you can create powerful data visualizations conveniently. D3 helps you to create memorable presentations with amazing data visualization. If you are working at a startup, you can convince investors effectively by using properly transformed data that uncover valuable insights.      How to Build Powerful Data Visualizations with D3 and Ext JS D3 can be easily integrated with Ext JS apps to produce amazing data visualizations. It supports different component types, including Hierarchical Components, Heatmap Components, and Custom Components. In this post, you will find the details of integrating the “Sunburst” and “Zoomable Sunburst” components, which fall under “Hierarchical Components,”  in the Ext JS apps. Sunburst  The D3 sunburst component provides a dynamically compelling rendering of hierarchical data. It visualizes tree nodes as concentric wedge sectors, with the root circle in the center. It opens outward for every level of depth in the hierarchy.  To produce the visualization shown above, you have to create the Model by using the following codes: Ext.define(‘KitchenSink.model.Tree’, {    extend: ‘Ext.data.TreeModel’,     fields: [        ‘name’,        ‘path’,        ‘size’,        {            name: ‘leaf’,            calculate: function(data) {                return data.root ? false : !data.children;            }        },        {            name: ‘text’,            calculate: function(data) {                return data.name;            }        }    ],     proxy: {        type: ‘ajax’,        url: ‘data/tree/tree.json’    },     idProperty: ‘path’ }); Next, you have to create the Controller. Ext.define(‘KitchenSink.view.d3.SunburstController’, {    extend: ‘Ext.app.ViewController’,    alias: ‘controller.sunburst’,     […]

Read More

Canary in a Coal Mine: Detecting Cyberattacks Early

Published April 15, 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. Many catastrophic events are obvious, with their effects immediately visible — but not all. Fire, flood, tornadoes and earthquakes are all examples of events that can cause a substantial impact to business operation and do not require any effort to detect. Everyone can see what causes the damage. Cyberattacks can be very different. While some cyberattacks, such as Denial of Service (DoS) attacks, cause interruptions that are immediate and visible, many other attacks are not so obvious. For example, an attack that extracts sensitive customer information likely will not raise alarms and can occur without anyone realizing what happened. Since the first step in responding to a security incident is to identify that an incident has occurred, identification becomes important to survival.  A recent IBM breach report states that companies that are victims of a cyberattack take an average of 207 days to identify the breach. And it takes, on average, an additional 73 days to contain it. Think about that: On average, victims of cyberattacks only realize they have been attacked after half the year has passed. Since many cybercriminals plunder their victims repeatedly after the initial breach, losses can accumulate the longer an attacker goes undetected. A key indicator of how much damage a cyberattack may cause is how soon that attack is detected and stopped. Early breach identification is the single most important action to reduce the blast radius and increase the likelihood of surviving the attack. Let’s look at some ways companies can place controls that provide an early alert of cyberattack activity. Like the canaries coal miners used to carry with them, an early warning of danger can help avert disaster. Manage cybersecurity risk Encountering business interruptions is not a new phenomenon. There are many ways an organization can run over operational “speed bumps” that reduce or completely block its ability to carry out its core business functions. These speed bumps are often referred to as risk. Risk is the probability that something will occur that has either a positive or negative effect. Most risk is perceived as something that may cause loss, but risk can have a positive result, such as finishing a project early. We will only cover negative risk in this article. A proven way to minimize the negative effects of realized risk is to develop plans to handle the risks that can cause the most damage. Of course, that is easier said than done. Ignoring risk is dangerous. But managing it well can be the difference between surviving and succumbing to a realized risk such as a cyberattack. The quality of your plans is directly related to your probability of success. Business Impact Analysis The first plan you will need to combat cyberattacks is a Business Impact Analysis (BIA). A BIA summarizes your business processes and identifies the functions that must be operational for your organization to stay in business. These core functions are called Critical Business Functions (CBFs). Once you have identified your CBFs, you know what you must protect. If any CBF gets interrupted, your business process […]

Read More