From the blog

Extend TMS WEB Core with JS Libraries with Andrew: Tabulator Part 5: Editing Data in Tabulator

In our continuing Tabulator adventures, last time out we barely scraped the surface when it comes to interactions.  We had a little side adventure into tooltips, potentially applicable to many TMS WEB Core projects.  And we got quite a bit further down the path of making our example project, Actorious, more useful. Grid-type controls are a natural fit for effectively organizing and displaying all kinds of data.  But in some cases, we’ll actually want to give the user the ability to make changes to the data, either by editing it directly or by using other elements on the page.  In this article, we’re going to primarily be looking at this special subcategory of interactions and how to get the most out of Tabulator when building editing interfaces into your TMS WEB Core projects. Motivation. As we discussed at the outset of this Tabulator miniseries, the basic concept behind it and similar JavaScript grids is that they ultimately have a bit of a self-centered view of the world. Meaning that they are, in effect, the entire package of data and UI elements.  As developers, we’re basically connecting them up at a pretty high level, providing them with data and letting them do as much of the work as possible from that point on.  When it comes to editing data, this doesn’t really change. Tabulator, in particular, has many options related to editing data, which we’ll get into shortly.  The potential problem, though, is in keeping track of what it is doing in case you need to take those changes and apply them elsewhere, like in the actual data source that you’re using. From a Delphi standpoint, it might help to think of a JavaScript grid as a disconnected TClientDataSet.  You’re basically giving it a block of data.  And when it’s done, you’re getting a block of data (the changes) back.  What format that communication takes is entirely up to you, and we’ve got a few options, as usual. The mechanisms that you ultimately end up using will hopefully result in a very cohesive and highly integrated and performant product.  So let’s have a look at some of those options. Column Definitions. Again. As with so many things in Tabulator, the easiest way to get started is by adding some options to the Tabulator column definitions.  By default, columns are not editable at all, but can easily be set to be editable.  The only question is what kind of editor do you want?  Let’s start with a simple new example project, TabulatorEditor, and then work our way first through a few of the built-in editors.  Quick and easy.  The usual Project.html additions can be used to load the Tabulator library.  If you’re using the JSDelivr CDN, it also offers the ability to combine many libraries into a single request.  We’re going to end up using the latest version of Bootstrap, Luxon and FlatPickr, so why not combine them all.  Here’s what it looks like.             In our WebFormCreate procedure, we can then create a basic Tabulator setup similar to what we’ve done previously. In this case, there are just a bunch of different field data types, so we can play around with how the editors might work. The Tabulator Documentation has plenty of examples, so we’re not […]

Read More

Chart data import in Delphi

TMS FNC Chart v2.0 is a major milestone and we are already collecting feedback and thinking about new features for the next version. We listed some of the top requested features in this blog post, but if you have other exciting ideas, please let us know in the comments. The blog post also gives an overview of what v2.0 brings alongside some very interesting chart related topics! Data Import This specific blog post however, focuses on a very important aspect of application development: data import. TMS FNC Chart is designed with one thing in mind: flexibility. The main goal in the FNC architecture has always been flexibility, and in TMS FNC Chart, this is no different. TMS FNC Chart is capable of importing JSON, CSV & custom data arrays. While designing these specific features, we aimed for loading data with a single line of code, but with the ability to customize the details. After running through installation process, you’ll find a demo which focuses on data import and demonstrates how to bring out the maximum potential of the chart. As a small code snippet, you’ll see how easy it is to add & append data. procedure TForm1.LoadInitialData; var loadOptions: TTMSFNCChartLoadOptions; begin loadOptions := TTMSFNCChartLoadOptions.Create; try loadOptions.YRange := arEnabledZeroBased; TMSFNCBarChart1.LoadFromDataArray(loadOptions, 0, [123, 98, 54, 154, 128, 87, 103], nil, [‘Apple’, ‘Watermelon’, ‘Pineapple’, ‘Pear’, ‘Banana’, ‘Lemon’,’Grapefruit’, ‘Peach’]).LegendText := ‘Sold’; finally loadOptions.Free; end; end; The above code snippet loads the initial data. procedure TForm1.AppendData; var s: TTMSFNCChartSerie; begin s := TMSFNCBarChart1.AddSeriesFromDataArray([0.88, 1.32, 2.43, 0.76, 0.44, 1.03, 1.10]); s.YValues.Positions := [ypLeft]; s.LegendText := ‘Price’; end; Afterwards, we can append data and add new series without having to clear the ones that already exist. Code snippets are great to get started, but what’s even better is a video, explaining the capabilities in detail. Feedback In the coming weeks, we’ll bring out more videos, so stay tuned! Anything you wish to see covered in a video or blog post? Please let us know.

Read More

What Are Cross Platform Programming Languages?

Building cross-platform software is a challenging process. You need to consider many critical aspects for the successful development of the product. Choosing the best cross platform programming languages for development is at the top of that list. This article aims to aid your language selection by discussing cross platform programming languages, their evolution, features, and pros, and cons. A cross platform programming language is a programming language that enables developers to develop apps for various platforms using a single codebase. These apps can run seamlessly on multiple platforms without significant changes. Java, React Native, Flutter, Ionic, Sencha, and Xamarin are some popular cross platform programming languages and frameworks. How did the evolution of cross-platform programming languages happen? Cross-platform programming languages are not something novel. Cross-platform development has been around for more than two decades now. However, each language has evolved distinctly, adapting to various architectures and offering more features. First, C was considered a truly cross platform programming language in the early 70s. It was well-suited for system programming. Furthermore, C was capable of reusing the same source code across entirely different architectures for developing kernels and device drivers. However, it required some minor modifications to the code. After C, some other cross platform programming languages such as C++ and Delphi emerged to enlarge the field of cross-platform development further. C++ as a cross platform programming language C++ is also one of the initial cross-platform languages, even though it couldn’t shift into the world of the web and mobile. C++ is best suited for developing software like operating systems, database engines, game engines, compilers, and servers. At the same time, C++ is a great choice as a cross-platform language. You need to have sound knowledge and familiarity with the ecosystem to develop apps faster using it. Read this article to learn about the best IDE for the C++ newbie. The C++ builder by Embarcadero is packed with a set of robust libraries to boost productivity and deliver amazing user experience. Delphi is one of the most versatile cross platform programming languages Delphi is a strongly typed, event-driven, cross platform programming language with an extensive supportive tools and frameworks ecosystem. It also features a wide range of web and database libraries for the rapid development of apps that work on various platforms such as web, mobile, and internet-enabled devices. Delphi enables you to build a native app. A native app is an application designed to work on a specific device and its OS, utilizing that device’s device-specific software and hardware. These native apps can tap into specific resources, enabling them to easily access several services on a device like an accelerometer, microphone, and push notifications. The latest Delphi 11.1 release of Embarcadero helps you build native apps 5x Faster with a single codebase. Try Delphi 11.1 For Free Why do we need cross platform programming languages? Developing cross-platform software requires coding in a way that removes all the dependencies from a particular platform. To accomplish that, you have to use a programming language that supports you. That is where cross-platform programming languages come into play. The majority of popular programming languages support developing cross-platform software. However, some programming languages work better by supporting many platforms or offering solid abstraction layers to manage the differences between platforms transparently. Embarcadero offers a wide range of products such as RAD Studio, Delphi, and C++ Builder for developing […]

Read More

The Parallel Debugger plugin is now available for RAD Studio 11!

The Parallel Debugger plugin, originally from Parnassus, is now available in GetIt for RAD Studio 11.x (ie 11.0 and 11.1.) This follows up making Bookmarks and Navigator available a few weeks ago. The Parallel Debugger is an addon that lets you see what’s going on in all threads in your app at once. A traditional debugger in the IDE shows only one thread, one call stack, and so forth. The plugin shows you all call stacks for all threads next to each other (ie visually parallel matching that they are running in parallel), adds markup in the editor showing where each thread is executing, color-codes threads, lets you run, step or trace into on a per-thread basis, and more. Read the original announcement blog post to see the full set of features! Screenshot showing some of the Parallel Debugger features: parallel call stacks, coloured threads, extra editor markup, per-thread run/pause/step/trace, etc To install, go to the Tools menu in the IDE, GetIt Package Manager, and select the IDE Plugins section in the category selector on the left. You’ll see it listed: select it and click Install. The Parallel Debugger selected in GetIt. Note there are many other IDE addons in the same category too! The Debugger plugin does stress the various debuggers, because each of them is doing so much more (roughly linearly increased by the number of threads in your app.) It works best on Windows, and we don’t recommend using it for remote debugging, such as for macOS. It adds a new top-level menu called Thread, and in that is a submenu ‘Feature Level’. Keep that on ‘CPU Only’ when you don’t want the Parallel Debugger heavily involved. Then turn it back on when you need to do some debugging in parallel! We hope you find this useful, and helps you debug and understand your app’s parallel actions.

Read More

How To Create A React Responsive Grid

A grid is a powerful method to display a large volume of information to the users within a website. It allows users to perform various tasks like sorting, filtering, etc. In this article, we will tell you how to build enterprise-ready React data grids. The React grid layout is the React library that enables the creation of powerful grids if you use React in your front-end. However, robust and fully-responsive grids are critical requirements for many applications that process large amounts of information. You can have a better React responsive grid if you choose a modern enterprise-grade grid solution like Sencha GRUI, which has 100+ amazing data grid features. This article will describe how to create a React responsive grid and why you should use Sencha for better results. How Can You Create A Grid In React? First, let’s see how you can use React grid layout using a React data grid example. First, we will create a React app from scratch. To create the react app, you can use the ‘create-react-app’ command and create a sample application template.  Run npx create–react–app my-grid-app Run cd my–grid–app Next, you need to install the ‘react-grid-layout’  package, which contains the modern react grid components and functions you can use to create responsive grids. Following is the command to install the React grid.  npm install react–grid–layout Then we can start creating our React grid component. First, you must import the GridLayout Component from the ‘react-grid-layout’  package.  import GridLayout from “react-grid-layout”; How To Extend The React Component Class To Create The Grid? After importing it, extend the React component class and create a component class to start using the GridLayout. You can use the ‘data grid’ property set the width, height, x and y-axis, and minimum and maximum width of each child grid in the grid layout. class MyGrid extends React.Component {   render() {     return (                          1                            2                            3                     );   } } This will create a basic grid layout you can use to extend to add more functionalities to the UI. If you are unable to work with React grid view, this article might help you. Other libraries provide the same capability with more powerful features and efficiency that React give to the grid layout. Sencha GRUI is one such intuitive grid that you can use to build more modern and responsive web applications. How Can You Create A Grid In Sencha GRUI? GRUI by Sencha, which has been created using Ext JS grid, consists of more than 100 grid features and enables users to create enterprise-grade grid solutions for React UI. This grid provides all the features of the React grid layout, but it is easier to use and performs better. Let’s see how you can create a React grid using a Sencha react grid example that uses the “sencha-grid” package.   First, create a react application using the create-react-app command as in the previous example.  Run npx create–react–app my-grid-app Run cd my–grid–app Next, you must install the sencha sencha-grid component package using the following command. Run npm add @sencha/sencha–grid Then, after importing the React component from the beginning, you need to import the SenchaGrid and Column Components, the main components you can use to create the grid layout.  import React from “react”; import { SenchaGrid, Column […]

Read More

What Is Low Code And Why Do We Need Low Code App Development

In this technology era, the growth of digital services and evolving consumer needs have made companies seek faster ways for digital transformation. Low Code is an excellent solution adopted by companies worldwide to boost their digitalization. Yet, what is low code and what is a low code programming language? In this article, let’s find out what it is exactly. We’ll also discuss why we need Low Code, Pros and cons of Low Code, and some best Low Code platforms you can find in the market. What is low code? Low Code is a modern approach to software development that emphasizes little to no coding. It allows faster delivery of software with less manual coding. Furthermore, you don’t need extensive knowledge of programming languages to build apps with the Low Code approach. A low code application platform is a bunch of tools that facilitate low code development. It enables building applications visually with the help of modeling and a GUI. One key feature of low code platforms is their drag-and-drop layout builder. According to Gartner, more than 65% of software development projects will use low code approach by 2024. The pressure to produce digital solutions to cope with Covid 19 pandemic has further increased the adoption of this approach. Why do we need low code app development? The low code approach simplifies the development of sophisticated business apps. It allows you to easily build complete software rich with modern interfaces, integrations, and logic without writing thousands of complex code lines. The following are some major benefits you can gain through this low code application platform approach. Increased productivity – Since low code development speeds up application delivery, a project once took a few months now only takes a few days. Thus, low code has removed the time barrier from software development, paving the way for real innovation. Reduced Costs – The ability to deliver more apps in less time undoubtedly reduces the costs. However, it’s not the only driver of this cost savings. Low code also eliminates the need for more developers, cutting down hiring costs. Besides, Low Code platforms make everyone in an organization more productive without being limited to IT people. Improved business agility – In this rapidly evolving technology landscape, businesses must effectively adapt and respond to changing market conditions and potential opportunities. Building apps using traditional development approaches to cope with these needs can be tedious. Low code development tools aid the rapid development of systems that are capable of meeting numerous requirements. Enhanced customer experience – The impacts of low code development travel beyond the IT companies who are using it. The consequences of speedy development lead to better customer satisfaction. For instance, Low Code allows development companies to adapt to evolving market conditions and customer needs quickly. Best Low Code Platforms Businesses with the need to scale should search for effective ways to maximize their productivity. Investing in one of the best low code platforms might be a great solution to this endeavor. They are basically app builder software that includes intuitive and visual tools for users to build apps rapidly with less effort. PowerApps, Retool, Quixey, Creatio, GeneXus, Zoho Creator, Appian, and Mendix are some popular Low Code app development platforms. What Are The Pros Of Low Code Development? Mitigation of shadow IT – […]

Read More

Use Streaming Audit Events to connect your technology stack with GitLab and Pipedream

Gitlab recently released Streaming Audit Events to provide you real-time visibility into what happens inside your GitLab groups and projects. Whenever something happens, an event will be sent to the HTTPS destination of your choice. This is a great way to understand immediately when something has changed and if there is an action that needs to be taken. These events are often used to drive automation to update GitLab in response to certain actions, such as creating a new issue to onboard a team member when an account is added to a group, or to restore the correct value of a merge request approval setting if it is changed. We know that many users want to combine the streaming audit events with other data sets and tools they already work with. Taking automatic action in response to audit events happening can help ensure your GitLab groups and projects are always in the correct, compliant state. Pipedream simplifies the streaming audit event process Driving automation off of these events or combining the events with other data sets means the destination which will receive the events needs to be running and have logic in place for how to handle the events as they come in. This normally would require setting up and maintaining a server with high availability to receive events as they happen, run any automation scripts, and then process the events if they needed to be sent to another tool or combined with another data set. This is tricky to do right and an extra step that takes time. Enter our partner, Pipedream.  Pipedream lets you connect APIs, remarkably fast. This includes the new streaming audit events from GitLab. When you select the GitLab New Audit Events trigger in a Pipedream workflow, Pipedream will automatically register an HTTPS endpoint for audit events in your GitLab group: From there, Pipedream allows you to transform the data, forward it to any other tools using Pipedream’s prebuilt actions, or write any custom automation with code (i.e., Node.js, Python, Go, or Bash). Getting started with Pipedream and GitLab The video below shows an example of how to use GitLab streaming audit events and Pipedream together to automatically alert your security team if a sensitive project setting is changed. This is powerful because it ensures that your security teams can immediately take action when a change occurs and understand why it happened. This is just one example of what you can do with Pipedream and GitLab together. Pipedream allows you to use any GitLab API in response to an audit event: You can change the setting to its original value, add comments to issues, kick off pipelines, and more. You can also trigger any action in any of the 700+ other apps that it has built-in integrations with. Open source integration means everyone can contribute Pipedream and GitLab are both strong believers in open source. The integration is publicly available at the Pipedream repository, and contributions are welcome! We are excited to see what sort of workflows you create with Pipedream and GitLab together. Final thoughts In this post, we talked about the power of GitLab’s Streaming Audit Events to give you immediate visibility into your groups and projects and how Pipedream makes it easy to build and automate workflows based on those audit events. […]

Read More

How To Supercharge Your User Interface With Skia4Delphi

Skia is a very popular open-source 2D graphics library that provides common APIs that work across a variety of hardware and software platforms. It is interesting to note that is sponsored and managed by Google but it is available for use by anyone. In fact, it serves as the graphics engine for many web browsers today including Google Chrome, Chrome OS, Android, Mozilla Firefox, and Flutter to name a few.  The product has been around since 2005 and it has become part of most windows application development. The same thing goes with VCL and FireMonkey cross platform apps. Thanks to the Barbosa brothers from Brazil, the brilliant minds behind the Skia4Delphi library (with the encouragement of Embarcadero’s Ian Barker and Jim McKeeth). They were also hailed as 2021 Delphi Award winners for their impressive work. What you should know about Skia4Delphi Skia4Delphi is a cross-platform 2D graphics API for Delphi platforms based on Google’s Skia Graphics Library. It is a free-to-access library that provides major components/controls like TSkLottieAnimation, TSkPaintBox, and TSkSvg. In this webinar, we will take a deep dive to explore this useful library and discover how this can supercharge the user interface of your apps. The webinar will also discuss why it is more beneficial to use Vector graphics (SVG) than JPEG and PNG image formats. SVG and Lottie Animations make it easy for the designer to create smooth and high-resolution user interface templates. The webinar will also provide us with some cool demos including some visually stunning Shaders and how this language (SkSL) can effectively level up your interface with its beautiful 3D animations. One of the cool things about the Skia Shader Language is it works across all platforms, and it doesn’t require OpenGL or any special drivers to be installed on the platform. Some of the demos in this webinar will also show what exactly Skia4Delphi is capable of.  These samples include an interactive Brick game, a Star Trek data dashboard replica, and many other mobile demos showcasing Skia4Delphi’s full potential. We will also be introduced to Telegram Sticker Browser, a project that helps users browse Lottie animations and Telegram stickers more efficiently. To know more about the amazing Skia4Delphi library and how this can turbocharge your VCL and FMX apps, feel free to watch the Skia4Delphi webinar below. It is also interesting to note that Embarcadero Technologies is currently organizing a SKIA For Delphi Contest encouraging everyone to make their own GUI application using the Skia4Delphi features.

Read More

Everything You Need To Know About An IDE For Coding

Programmers write code on different operating systems like Windows, Linux, and Mac OS. Each OS has a dedicated IDE, but there’s a good selection of IDE tools out there when you’re searching for an IDE for coding. These include tools for writing, building and testing the code. Using an IDE gathers together a number of development tools under a single framework, application, or service that allows users to pinpoint coding errors to simplify application development. Let’s take a moment to examine what an IDE is and what it can do for developers. What is an IDE? The acronym IDE stands for Integrated Development Environment and facilitates the development of many applications. For example, a Windows IDE offers one central interface consisting of all the tools necessary for developers to create and deploy applications which are designed for the Windows operating system. These tools encompass the following four features: Code editorThe primary purpose behind designing code editors is to write and edit source code. These editors are also like text editors, but designers utilize code editors to simplify and enhance the process of writing and editing code. This is especially beneficial for developers as the coding phase becomes easier. CompilerWindows compiler helps transform the original code, written in human-readable form, into an executable machine-readable format. DebuggerDebuggers examine code and find errors in the way functions are executed. These help developers test and understand the flow of application programs. Code examination eliminates errors, so your program performs how you want it to. AutomationThese tools allow users to develop procedures within a program, making it easier to automate tasks and save time. Key features of the IDE for coding Some IDEs also come with the following three features: Class browserClass browser is used to reference the properties of an object-oriented class hierarchy. Object browserObject browser is used to examine object instances in a running application command. Class hierarchy diagramThe diagrams help programmers to visualize the structure of OOP code. How to make the right choice for IDE for coding? The choice you make is highly dependent on your needs as a developer. There’s nothing like an IDE which is perfect in every way for every person. The needs you may have when developing a specific application may change depending upon what you hope to achieve. However, below are a few pointers that you should consider before choosing an IDE that best meets your needs: The costEven though most of the IDEs are free, many of the addons may not be. Most of the paid IDEs come with premium features and support. When opting for an IDE like Delphi, it’s crucial to remember to choose according to the Windows app development requirements. Ease of useIDEs consisting of a considerable number of libraries and packages often can become complex and harder to use. This, however, is highly dependent on the implementation of these libraries. Server connectionAnother crucial aspect of choosing IDEs is to check if you can deploy your code to the server from your IDE. Why do developers use IDEs? IDEs help make programming less cumbersome by allowing users to program new applications quickly. This is because multiple utilities don’t need to be manually configured and integrated during the initial setup process. Also, by becoming familiar with a single integrated environment, developers do not […]

Read More

Battling toolchain technical debt

Developers love their tools. Operations teams love their tools. And security teams love their tools. As Dev, Sec, and Ops consolidate onto a single DevOps platform, toolchain technical debt becomes exponentially more costly and complex. “Tools should be in the background enabling excellent development, operations, and security practices. However, DevOps teams are often led by their tools rather than the other way around and that can hinder all aspects of the software development lifecycle (SDLC),” says Cindy Blake, CISSP, director of product and solutions marketing at GitLab. An April 2022 Gartner® report titled “Beware the DevOps Toolchain Debt Collector” notes that “many organizations find themselves with outdated, poorly governed, and unmanageable toolchains as they scale DevOps initiatives.” One of the key findings, according to Gartner, is that “most organizations create homegrown toolchains, often leveraging the tools beyond their functional design. This not only leads to a fragmented toolchain, but also creates complications when tooling needs to be scaled, replaced, or updated.” Toolchain technical debt introduces complexity as companies shift critical tasks such as reliability, governance, and compliance left in the SDLC. Discover how GitLab 15 can help your team deliver secure software, while maintaining compliance and automating manual processes. Save the date for our GitLab 15 launch event on June 23rd! No time for technical debt Few DevOps teams give toolchain upkeep the time and attention it requires. According to GitLab’s 2021 DevSecOps survey, nearly two-thirds of survey respondents, 61%, said they spend 20% or less of their time on toolchain integration and maintenance each month. “Developers face challenges and time constraints while maintaining these complex, stand-alone tool siloes, building fragility and technical debt that the [infrastructure and operations] leader has to deal with,” Gartner states. The research firm adds, “These outdated toolchains further increase overhead costs, magnify technical risks, add operational toil, and limit business agility.” Blake agrees: “Complex toolchains inhibit the ability to govern the software development and deployment process. Policies must be managed across tools and visibility into code changes and changes to its surrounding infrastructure become difficult to see and track. Time is wasted on managing the toolchain instead of value-added work.” Getting purpose-driven The remedy to toolchain sprawl and subsequent debt is to change strategy. Instead of putting energy into figuring out how to maintain one-off tools, DevOps teams should focus on how to enable processes and policies that support simplicity, control, and visibility across the SDLC. “These are the characteristics needed to meet reliability, governance, and compliance demands. A united platform like GitLab helps you do that,” Blake says. Gartner states: “Successful infrastructure and operations leaders reduce technical debt and sustainably scale DevOps toolchain initiatives across the organization by using a prioritized, iterative strategy that minimizes friction in making changes to toolchains and more quickly delivers customer value.” Adopting a purpose-built platform instead of a complex and ad-hoc toolchain also eases an organization’s ability to automate the SDLC. “Automation abstracts complexity away from the developer and provides guard rails so DevOps teams gain greater efficiency, accuracy, and consistency,” Blake says. In addition, automation reduces the audit footprint in terms of what needs oversight and inspection. Platforms also support automation throughout operations, including building and testing infrastructure as code, so that “you can eliminate the variables when you’re trying to debug an application,” she says. […]

Read More