We’re happy to announce the release of new versions of TMS Aurelius (5.9), TMS XData (5.6) and TMS Sparkle (3.20) There are very interesting new features in those releases, and also some upcoming changes in the TMS Business product line, which will now be named “TMS BIZ”. In case you are curious, you can check the new released features in the what’s new section of the product documentation: TMS XData 5.6 what’s new. TMS Aurelius 5.9 what’s new. TMS Sparkle 3.20 what’s new. We are then inviting you for the webinar TMS BIZ Update: What’s new in XData, Aurelius and Sparkle, to happen on July, 21st, 3:00 PM UTC Time. You will learn in details about the new features (in action) and the new TMS BIZ editions. REGISTER for the TMS BIZ Update: What’s new in XData, Aurelius and Sparkle webinar now!
Software is an essential part of everyday life. More and more organizations are being forced to push software to consumers faster for a better customer experience. But increasing software delivery speed cannot come at the expense of security. This adds more pressure on internal development, security, change management, operations, and site reliability teams. Shifting left to find security vulnerabilities earlier within the DevOps process is a critical aspect of ensuring security scales with the pace of development. But U.S. federal government operations go a step further with the implementation of the National Institute of Standards and Technology (NIST) Risk Management Framework (RMF). The RMF, implemented with standards such as NIST 800-53, NIST 800-171, and NIST 800-37 all require careful consideration of security vulnerabilities identified as properly managed risks. This is further recommended with NIST 800-160 and NIST 800-161. However, practically speaking, not even the most diligent IT team can ensure full compliance with every requirement. This is when risk management becomes more critical as it has to be continuously monitored and evaluated through the software development lifecycle (SDLC). Generally, the prescribed methodology is to prepare a plan and document the tasks necessary to resolve risks, along with the resources required to do so. Due to interdependencies with other software components, milestones may also be needed to track the work. This is embodied in the Plan of Actions and Milestones (POA&M) process. GitLab and the POA&M process There are two aspects of identifying and managing vulnerabilities. First, there has to be a quick and relatively easy way to identify new vulnerabilities and zero-day exploits as they become public. Second, it should be possible to check for existing vulnerabilities periodically – ideally in an automated or ad-hoc way as new information becomes available and internal or external auditor reviews are conducted. NIST provides a sample POA&M template to help organizations track the actions needed. But in our experience, the mental load to manage another separate document can be an added burden on all the teams, not to mention confusing as new versions of the information become available. GitLab provides numerous resources to assist with this process. Using GitLab to identify vulnerabilities GitLab has multiple types of security and compliance scanners that evaluate source code in various ways. These scanners are capable of finding security weaknesses introduced in new code, vulnerable dependencies, container images, and non-compliant licenses from third-party code. These scans can run against every commit on every feature branch – before any code is merged or deployed into production. As potential security issues are found, GitLab provides an aggregated view of the findings both in the developer workflow and in dedicated vulnerability management tools. GitLab’s Vulnerability Reports allow security teams the ability to triage and manage vulnerabilities for individual projects or across groups of projects. From here, security teams can evaluate vulnerabilities, track remediation progress, or dismiss any false positives. This provides a direct way to find, catalog, and manage vulnerabilities. As this process moves further along, and vulnerabilities are characterized as a risk, GitLab provides a one-click process to convert and link the vulnerability with a work management item known as an Issue in GitLab. This can become a central location where, as per the POA&M process, it can be assigned to the Directly Responsible Individual (DRI), with due dates and milestones. The Issue can also […]
By bringing models into 3D, architects and urban planners are better equipped to solve challenges around shifting landscapes, climate change, transportation, and more. While a digital twin by definition is any virtual copy of a physical asset, process or system, an urban digital twin is a virtual representation of an entire urban environment’s physical assets. Urban digital twins play a critical role in the larger global movement toward smart cities. A “smart city” is a community that uses electronic means to collect valuable data surrounding the use and performance of its utilities, mobility patterns, and infrastructure by using tools like Internet of Things (IoT) sensors to record activities and changes in the urban environment. Urban digital twins often serve as the systems within which this data is represented and visualized. They are created by aggregating large sets of map and model data, visualized in real-time. Because of this, urban digital twins offer an ability to look at the future state of an urban environment in a more accurate context than a collection of traditional building models would allow. They are also helping designers reimagine and further democratize the planning process. According to ABI Research, more than 500 cities around the globe will have deployed digital twins by 2025. Currently, many cities are actively making the effort to digitally replicate their urban landscapes and explore the roles digital twins will play in their communities. One of those cities is Trondheim. The fourth largest city in Norway, Trondheim is located on the shore of Trondheim Fjord. Founded by Viking King Olav Tryggvason in 997, the city has a rich Nordic history. Like many cities around the world, Trondheim’s geographic features necessitate densifying the existing urban landscape to allow for growth. This presents a notable design challenge, especially when coupled with the effort to preserve the city’s longstanding beauty and charm. In 2020, local architects went to work on modeling a vision for the future of their city in the Trondheim 2050 competition. The competition was a part of the city’s larger effort to create comprehensive strategic plans for its growth across the next several decades, by inviting different perspectives and increasing public engagement with the planning process. To model what Trondheim might look like in 2050, Martin Vitsø, Geodata Specialist for the City of Trondheim, turned to Unity.
So, what do you need for Apple app development on Windows? What if you could use a single IDE instead of combining different IDE software or tools from different vendors that will take more space and resources from your workstation, potentially all working in different ways which will add massively to your learning curve? What you need is a cross-platform development like Delphi which can create applications for Windows, macOS, Android, iOS and Linux, all from the same single codebase and in the same IDE. Delphi offers a native development environment that works efficiently on the Windows OS and can deploy apps to Android, iOS, macOS, Linux, and of course, Windows. Including Delphi what you need is a macOS device—either you get a real one or rent it in the cloud. And if you are using a Windows device, you will have to go with the latter. Alternatively, you can use one of the VM solutions like Parallels to run Windows and Delphi on a macOS device. What is Delphi, really? Delphi is one of the fastest ways to write, compile, package and deploy cross-platform native applications on Windows, macOS, iOS, Android, and Linux. In our case, we are working with Windows, so Delphi harnesses the power of its cross-platform FireMonkey framework to allow you to write Apple software on Windows hardware. The commonplace argument on similar IDEs being inefficient or not as ‘smart’ as other Windows tools for developers may cross your mind. However, note that comparing Delphi with others is like calling a ‘c’ function in a java programming—Delphi is 5 times faster in building native apps with one codebase for Windows, Android, Linux and Apple Operating systems (iOS, macOS). And its latest version, Delphi 11.1 has newer, better features. What are the features of Delphi and what are the “7 steps to cross platform development success”? 1. Design an alluring desktop and mobile app user interface Use Delphi’s award-winning VCL framework for Windows and the FireMonkey (FMX) visual framework for cross-platform responsive UIs. Enjoy the new high-DPI compatible IDE on 4k+ screens. Use VCL Styles at design time! Prototype stylish UIs even faster by seeing immediately at design time how your styled forms and controls will look when running. FireMonkey design-time guidelines: Prototype faster with visual lines and enhanced margin and padding support. Multi-monitor and multi-window improvements: design and edit code for the same form at the same time in multiple windows. Rapidly design your master responsive UI layout once, then easily customize it. platform-and-device-specific views without duplicating design effort. Use the visual design menu to easily drag and drop visual and non-visual components from the palette. Connect user interface elements to data sources using the LiveBindings Designer. 2. Code smarter and faster Utilize the powerful, versatile, and easy-to-learn Object Pascal language and customize the IDE to meet your coding style. Use Code Insight™ for code completion via a modern Language Server Protocol based on your code while libraries help you code quickly and accurately. Get hints and tips from inline documentation as you code. Keep development agile with the VCL designer, Agile refactoring, and Live Templates. Integrate with version control systems including Git, Subversion, and Mercurial. 3. Debugging is made easier and faster using the right IDE software Add conditional breakpoints to quickly pause program execution at […]
So far, we’ve covered some hugely important and popular JavaScript libraries, like jQuery, Bootstrap and FontAwesome. We’ve also explored other very important but somewhat lesser-known JavaScript libraries, like Luxon and CodeMirror. And also some considerably smaller and less widely used JavaScript libraries like Interact.js, BigText.js and Showdown.js. Today we’re going to introduce what has quickly become my favorite JavaScript library, Tabulator, which accurately describes itself as “Easy to use, simple to code, fully featured, interactive JavaScript tables.” Over the next handful of posts we’ll go into far more detail about how to make the most of it in your TMS WEB Core projects. Why Tabulator? Tabulator is neither wildly popular (yet!) nor particularly obscure. And it has perhaps the misfortune of falling into a hugely popular category of JavaScript libraries – defined with terms like grids or tables. If you were to do a Google search for a new JavaScript grid control, you might run through 10 or 20 before Tabulator even comes up on the list. On the other hand, if you search for a JavaScript ‘data grid’ on GitHub, it might come up second or third. But as with any popular JavaScript library category, there are plenty of criteria you can use to filter out which ones might be the best candidates for your projects. When I’m looking for something, these are the kinds of things I typically consider. Price per user or per developer, licensing terms, and so on? Any development activity in the past year? Does the developer respond to questions? Are there dependencies? Like jQuery or other JavaScript environments like React or Angular. How good/complete is the documentation? Is there plenty of example code available? Style vs. substance and needs vs. wants. Does it just look pretty or is it actually useful? When the dust settles, you might well reach the same conclusion I have, and give Tabulator a try. But even if you find another control that is more suited to your needs, or perhaps you’re already quite happily using another control, there’s still a lot of interesting ground to cover (and some fun examples) when it comes to using any of these kinds of controls in a TMS WEB Core project. Motivation. The need for a grid-like control in a modern web application is usually self-evident. Displaying data for the user to see in tabular form, along with maybe some options to filter or sort that data in ways that are easy and convenient, is either something you need in your project, or something you don’t. A better question for our purposes might be what the motivation is for a Delphi developer to use a new and potentially unfamiliar JS library. Particularly when it comes to providing functionality that we might already have decades of experience with, using popular, reliable, capable, and easy-to-use Delphi VCL components of various flavors. Naturally, this need arises when moving to a different environment – the web – where our preferred set of controls may not be as readily available. At the same time, this shift to the web also brings with it opportunities to change how these kinds of applications are developed, for better and for worse. TDataSet vs. The Web. When we covered all those JSON examples (see Part 1 and Part 2), one of […]
Trying to implement facial recognition in your applications can be a daunting task. With the use of TMS Web Core and the vast amount of available JavaScript libraries, this can be made much easier. There is no need for complex functions or algorithms. Just include the library in your HTML and you can access all the functionality. To showcase this, we’ve made a demo with the following library: face-api. This library contains a lot of different functionality that you can use. You can detect faces and match them with previously created models. But you can also use it to detect the age, sex and expressions of the person. You can even draw landmarks on the detected face. You can find the demo here (requires a webcam installed). WebGL vs WebAssembly The library that we used, gives us the option to use WebGL or WebAssembly. whilst WebGL is really fast it does have a initial warm-up time. the first detection of a face will take 5000-6000ms and every subsequent detection will be around 100ms. Performance is also heavily dependent on the installed GPU, as having a dedicated GPU really boosts the performance. Meanwhile, WebAssembly uses the CPU. We recently did some experimentation with this technology. You can read all about it in this blogpost. WebAssembly doesn’t have the initial warm-up time, but every detection takes about 700-900ms. As we only do one detection when logging in, we’ve opted to use WebAssembly . In the following chart we only used one model to start face recognition (the demo uses 7 models to get all necessary data). this chart also doesn’t take the warm-up time in account. But it should give you a fair comparison between different systems and set-ups. picture taken from Tensorflow.js which is used in the back-end of the face-api library. Integrating the Face-Api using external classes People who use TMS WEB Core will already know that you can use asm blocks to write JavaScript in Pascal methods. But you can also use the external keyword to wrap classes and functions from libraries. These external classes and methods can then be used directly in your Pascal code, negating the need to use asm blocks. This makes it also very easy to integrate these libraries in different applications as you’ll only need to include the pas file in your project. Here you can find an example of a procedure: procedure LoadAgeGenderNetModel(AURL: string); async; external name ‘faceapi.nets.ageGenderNet.load’; And this is a example of such a class: TFaceMatcher = class external name ‘faceapi.FaceMatcher’ (TJSObject) public constructor new; overload; constructor new(AInput: TJSObject); overload; labeledDescriptors: TJSArray; function FindBestMatch(Descriptor: TJSObject): TFaceMatch; external name ‘findBestMatch’; function ToJSON: JSValue; external name ‘toJSON’; class function FromJSON(AJSON: TJSObject): TFaceMatcher; external name ‘fromJSON’; end To use this method you also need to add the following code right under the interface {$mode objfpc} {$modeswitch externalclass} Demo For our demo we have used facial recognition to use as authentication. When we can’t match the face, the application will ask to register yourself. This data will be saved in an indexedDb. The model to test against will be updated and stored in local storage. When a face is recognized, we will fetch the data of that person and display it in another form. except for opening forms and writing/reading from the databases, the actual detecting […]
We’re excited that after many months of hard development work, TMS WEB Core v2.0 is available for you! All active registered TMS WEB Core v2.0 users get this new release free. TMS WEB Core brings improvements to the web client development experience from your Delphi IDE in many areas! pas2js compiler update & RTL update The latest version of the pas2js compiler, responsible for transpiling the Object Pascal code to JavaScript running in the browser, and updated RTL is integrated now, bringing even better Delphi compatibility New components Various new components have been added: – TWebDropDownControl, TWebEditDropDownControl: flexible control that can be used to show any other control in its dropdown part– TWebCheckListBox: VCL-like check listbox– TWebDBListControl: DB-aware Bootstrap styled list control with optional DB field template– TWebSearchEdit: edit control with embedded search and clear button– TWebEditBtn: edit control with attached button– TCountryComboBox, TWebCountryListBox,TWebCountryDropDown: various controls to show list of countries in the world to pick from, including list of countries with official country flagsTWebXLSX: Microsoft Excel XLSX file import & export component Component enhancementsThere is too much to list here in detail. Many new features have been added to existing components, the most important shown here: – Add controls checkbox/button/progressbar in TWebStringGrid, TWebTableControl cells– Add nodes with checkbox or radiobutton in TWebTreeView– Perform filtering on items in the TWebListControl– New ListSource/ListField property in TWebDBComboBox to load items from a dataset– Row selection in TWebTableControl+ many more… Framework improvementsThe underlying framework has been enhanced and extended: – TCanvas VCL compatible brush style support added,– Material icons style support– Touch & wheel events in TWebElementActionList– Multi-language support in TWebMessageDlg()+ many more… IDE integration improvements Improved interaction with web projects from the Delphi IDE:– Improved live-preview from context menu on form units in the IDE project manager– Delete entire folder from project via IDE project manager New browser APIs exposedNew web browser APIs easily accessible from your Object Pascal code:– Speech recognition component: TWebSpeechRecognition– Classes for multi-screen API use In the coming days and weeks, we’ll unveil via video more details about the new features in TMS WEB Core v2.0. Today, you can already learn about the new dropdown controls, the new country list controls and the TWebCheckListBox in the video from our chief evangelist Dr. Holger Flick: Another interesting source of information is the replay of the recently held webinar with CTO Bruno Fierens walking through all new features of TMS WEB Core v2.0: Meanwhile, our team is also hard at work to bring all new components, new features of TMS WEB Core for Delphi to TMS WEB Core for Visual Studio Code v2.0. You can expect this update also very soon! If you are interested in web client development using Delphi, also have a look at the recent series of blogs from Andrew Simard that covers how to use external JavaScript libraries easily from TMS WEB Core. In the past weeks, Andrew covered how to integrate the impressive Tabulator JavaScript control in a TMS WEB Core project. The series starts here. TMS WEB Core v2.0 couldn’t have been created without all your valuable feedback in the past months and years! We are extremely thankful for all your help steering the development. And we continue to count on you driving further future developments of TMS WEB Core! We invite experienced TMS WEB Core developers having […]
Skia4Delphi is indeed a revolutionary tool that offers tons of possibilities. This third-party library can be used effectively in Delphi to transform the GUI of your VCL apps into something more visually appealing. It comes with many useful components that can be applied beautifully for any Windows application development. Aside from desktop applications, Skia4Delphi can also be used to turbocharge your FireMonkey FMX cross platform apps that allow you to provide a comprehensive 2D API to all other platforms including Android and more. What else can Skia4Delphi do for mobile applications? Based on the recently concluded Skia4Delphi Webinar, we have learned the things that Ski4Delphi can do and all its potential to supercharge your apps’ user interfaces. This free-to-access library provides major components/controls like TSkLottieAnimation, TSkPaintBox, and TSkSvg that all work like a charm. The previous webinar showed us some cool demos showcasing Skia4Delphi’s huge potential. These include the use of Skia Shaders that can level up your interface with its beautiful 3D animations, an interactive Breakout-inspired game, a Star-trek-inspired data dashboard demo, and a great number of mobile demos. In this short video that was taken from the recently concluded Skia4Delphi webinar, Jim McKeeth will show us some demos of using Skia4Delphi in some mobile applications. These include a beautifully rendered Splash Screen animation, a feature that allows you to sign a document using the TskPaintbox control, and a feature that allows users to generate PDF documents and a QR Code. To learn more about these Skia demos and to see what exactly this amazing library is capable of, feel free to watch the video below.
In this technological era, we are generating massive volumes of data. It is estimated that the data that is generated daily is of the order of a mind-blowing quintillion bytes per day! Hence, it’s no wonder that software apps, which can handle millions of data records are of paramount importance. In this context, a JavaScript grid that allows users to manipulate and work with tabular data is key. It is this reason that many data scientists and developers often ponder how to create a grid in JavaScript quickly and easily. Sencha Ext JS allows you to create data-intensive HTML 5 apps using JavaScript. You can effortlessly create cross-platform web and mobile apps for all modern devices. This is an easy-to-follow JavaScript grid tutorial that enables you to create a JavaScript grid effortlessly. Continue reading to discover how you can create a data grid using JavaScript and HTML. All you have to do is create an empty .html file and follow the four steps given below. Why Should I Opt For Sencha Ext JS JavaScript Grid? Sencha Ext JS provides the fastest JavaScript grid. It empowers you with an incredibly fast speed and enables you to process millions of records within milliseconds. Experiments with performance benchmarks have shown that Ext JS grid beats all its competitors in terms of initial load time, filtering speed, and scrolling speed. Additionally, by using Sencha’s grid, you can completely revamp your HTML5 grid. The Sencha Ext JS JavaScript grid is 100% configurable. You can easily design a grid to fulfill all your clients’ requirements. You can add various data visualizations such as line charts, pie charts, bar charts, and more to the grid. This goes a long way to help your clients to understand their data. Moreover, you can also add other UI components to the grid. How To Create A Grid In JavaScript: What Are The Steps? You can easily create a grid in JavaScript using a single HTML file. Create an empty grid.html file and follow the steps given below. Once you complete these 4 steps, you’ll see a grid that looks as follows: In the above JavaScript grid, there are only three columns for the country, population, and population growth. However, you can extend the grid and add more columns and rows to the data table. Step 1: What Do I Need To Import For Creating A Grid In JavaScript? To create a JavaScript grid in a single HTML file, import the Ext JS library and stylesheets. You can add the following code anywhere in the header of the HTML file: Step 2: How Do I Define The Model For Creating A Grid In JavaScript? To build a grid using Ext JS, you need to create a model. In the code below, the name of the model is com.extjsGrid.Sencha and it extends Ext.data.Model. This code defines a model for three columns namely country, population and population growth. All three columns are specified using the field key. Ext.define(“com.extjsGrid.Sencha”, { extend: “Ext.data.Model”, fields: [“Country”, “Population”, “PopGrowth”] }); Step 3: How Do I Define The Data Store For JavaScript Grid? The data store holds all the data values for the grid. In the code below, senchaStore is a variable that stores all the data of the grid. To fill up the grid, specify one row of […]
You have been working on a new cross-platform app using a cross platform app builder, and you’re just about done with it. You’ve tested it on your own devices, tweaked the interface until it’s perfect, and you’re ready to share it with the world! But now you have to explain it to your boss. Here’s how to do it without blowing their minds or making them skeptical about your skills as a developer. What is a cross platform app builder? A cross platform app builder is a software development tool that enables developers to build iOS and Android apps using the same codebase. This can save time and hassle by allowing developers to create apps that work on both platforms without rewriting code or relying on third-party tools. A cross platform app builder is also great for larger projects where multiple team members must work on the same codebase without creating various files for every platform. A good starting point is Delphi Community Edition if you’re looking to build a cross-platform app. It’s free to try and use and has plenty of features to get you started. Defining a cross platform app builder When you’re trying to convince your boss to invest in a cross platform app builder, it can be tough to explain just how valuable the tool can be. Here’s a guide on how to do just that. Define the Problem Before you can even start explaining how a cross platform app builder can help, you must first understand the problem. In most cases, companies are looking for ways to reduce costs and increase efficiency. By using a cross platform app builder, you can give your team the ability to create mobile and desktop applications for different platforms with ease. This makes it easier to manage and scale your business operations. Emphasize the Benefits Once you’ve defined the problems, it’s time to start highlighting the benefits of using a cross platform app builder. First and foremost, this tool can save your company money in the long run. By using one codebase for more than 3 or 4 platforms, the company can avoid all the costly development costs that come with customizing each application separately. Additionally, a cross platform app builder can make it easier for your team to collaborate and share information across different platforms. This ultimately leads to increased efficiency and better communication within your business operations. The different types of cross platform app builder Cross platform app builder allows developers to create mobile and web applications deployed on different platforms, including iOS, Android, Windows, macOS and Linux. There is various app builder out there, so it can be difficult for developers to choose the right one. In this blog post, we’ll discuss the three most common types of cross platform app builders and give you tips on how to explain them to your boss. The first type of cross platform app builder is called a hybrid builder. Hybrids combine features from iOS and Android app builders, making it easy for developers to create mobile apps that look and feel like their existing web applications. Hybrids also allow you to use code from either platform, giving you more flexibility when building your app. The second type of cross platform app builder is creating native but also multi-platform applications that can […]
Invormațiile pe cale Dvs le introduceți în prezentul formular nu se păstrează online, dar se vor transmite direct la destinație. Mai multe informații găsiți în Politica Noastră de Confidentialitate
We use cookies to ensure that we give you the best experience on our website. If you continue to use this site we will assume that you are happy with it.