Noutați

Extend TMS WEB Core with JS Libraries with Andrew: Leaflet

There are so many useful JS libraries yet to explore that it can be a challenge to pick what to cover next.  But this time out, we’re going to have a look at a JS library suggested by blog reader Eddy Poullet, way back in April when this blog series first started.  The request?  Leaflet, which bills itself as ‘a JavaScript library for interactive maps.’  And who doesn’t like interactive maps? Easily one of the more useful applications to be found on any mobile device. And while there are a number of other ways to get interactive maps into your TMS WEB Core applications, this is a good example where it is nice to have a few choices available.  Motivation. Google Maps and Apple Maps tend to get most of the attention, as one of these is likely to be the default when it comes to using maps on any mobile device.  And these tend to be very well integrated into their respective devices, naturally, as they’re also responsible for their respective operating systems as well.  No surprise there.  Desktop apps, and websites specifically, tend to be more commonly configured to use Google Maps or perhaps MapQuest or less commonly other providers, and far less frequently Apple Maps.  Perhaps that will change over time as developers integrate Apple Maps into their websites.  Perhaps we’ll cover that another time. But that’s historically been one of the troubles of interactive maps – jumping through hoops to get at the data.  Whether it is an API key or a developer account or some kind of license or an unhelpful rate limit.   Leaflet offers a bit of a different approach in that there’s nothing to do to get started in terms of API keys or developer account registration.  Just load up a JS library and be immediately productive. Getting Started. As has become custom, we’ll start with a new TMS WEB Core project, using the Bootstrap template, to begin with.  And then add in the necessary links to the Leaflet JavaScript and CSS files. In the project, add a TWebHTMLDiv to the form and set its Name and ElementID to ‘divMap’ just so we can reference it.  To immediately see it in action, it just needs to be initialized.  This can be done directly from within WebFormCreate like this, taken directly from the excellent documentation in their Quick Start Guide. procedure TForm1.WebFormCreate(Sender: TObject); begin asm var map = L.map(‘divMap’).setView([51.505, -0.09], 13); var tiles = L.tileLayer(‘https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png’, { maxZoom: 19, attribution: ‘© OpenStreetMap’ }).addTo(map); end; end; Doesn’t get much simpler than that.  Using the new TWebCSSClass component in combination with Bootstrap, we can add in some rounded corners here and there and immediately get a pretty reasonable interactive map that supports zooming in/out and panning around.  Leaflet up and running The interface that is rendered uses pure HTML/CSS so it is possible to change the look of things like the zoom in/out controls or other elements. The content (the map itself) consists of a collection of image tiles.  Can’t do much with those directly in HTML/CSS.  But there are a lot of things that can be done with what is being generated inside the tiles.  And speaking of tiles, while everything so far is pretty quick and easy, there are some considerations that come with the set of tiles.  In […]

Read More

5 Best Tools To Create HTML5 Grid Tables

If you have worked on developing web applications, you might have come across the need to display data in a table format. HTML5 grid tables come in handy when presenting large amounts of data in a clean and accessible manner. They organize data in rows and columns and allow end-users to perform various actions on that data, such as sorting, filtering, in-cell editing, and data exporting. In this post, let’s go through five popular tools for creating a fascinating HTML5 grid table. You can review and compare their features and pricing options to pick the best for your needs.   Why Sencha Ext JS Is The Best Solution For An HTML5 Grid Table?   Do you want a robust grid that can manage millions of records and process data extremely fast? Then, Sencha Ext JS should be the tool you are looking for. The Sencha Grid component enables developers to visualize any amount of data effectively using HTML5 grid tables. Sencha grid offers a wide range of features, from basic features like editing, grouping, filtering, and data locking to more advanced features like drag and drop, drill down, live data streaming, and customized themes and layouts. Developers can retrieve and display data in local or remote sources via AJAX, Restful, and JSON methods. Sencha offers demos of their main grid features to users. Moreover, they provide a  30-day free trial for users to try out Sencha grids. Main Features of Sencha The ability to handle a massive amount of data. Sophisticated features that make data management much easier ( ex: filtering, grouping, pagination and infinite scrolling, and live data streaming). High customizability. The ability to export data in CSV, HTML, XLS, and PDF formats. Compatibility with various browsers and web, mobile, and desktop platforms. Sencha mainly comes with two pricing options called perpetual license and annual subscription. Both options have three editions called community, enterprise, and professional. You can clear any doubts about these packages by referring to their FAQ page or submitting an inquiry.   Why Is w2ui Suitable To Create An HTML5 Grid Table? w2ui is a modern JavaScript UI library dependent on the main jQuery library. It basically utilizes HTML5 and CSS3 for front-end development. Apart from grid tables, this library contains all the other popular UI widgets such as layouts, tabs, sidebars, pop-ups, and forms. Therefore, W2ui is an integrated solution for all your front-end development needs. This library clearly separates the app data and the logic with a declarative syntax that is easy to reuse. This library is lightweight and faster than many other grid libraries on the market. The complete library has a minified size of only 69KB leading to significantly faster loading and execution times. w2ui is compatible with all modern browsers. Furthermore, this library is free to download and use. Main Features of w2ui Comes with a rich feature set, including resizable columns, frozen columns, infinite scroll, reordering, infinite scrolling, etc. Lightweight library with a small footprint. The ability to create your own color schemes.   How Successful Is jQuery Grid For Creating HTML Tables? jQuery grid is a supportive plugin for the major jQuery library. Thus, it is compatible with many browsers. This plugin allows displaying tabular data on web pages. It supports all the primary grid features such as data […]

Read More

How To Build iOS Apps Without A Mac

To effectively answer how to build iOS apps without a Mac, we first need to know why some form of a Mac is always going to be necessary for a very small part of this process even though we discuss here how you can use a Windows computer to design and program macOS and iOS apps without needing to constantly swap to a Mac. Also, we will read how RAD studio is an excellent app builder software for Mac and iOS apps. RAD Studio is a Windows application, and you can use it to design and code your apps 100% on Windows. The only time you need a Mac is to perform the final compilation. Why do I still need a Mac for creating macOS and iOS apps? Apple have created a situation where only Xcode can be used for building and code-signing iOS apps. Xcode is only available for macOS. Thus, we need a Mac to build iOS apps. Unfortunately, having an up-to-date Mac available for everyone or the whole team is not easy, cost-effective, or maintainable. So, we need a more straightforward solution. Luckily, now there are methods available to either run Xcode without a Mac or use a Mac without owning it. To compare things with Windows, we will briefly study the app-building process on Windows. Why Is Windows the most popular development environment? Windows is the most popular environment for writing Windows software, and there are many reasons for this popularity. For example, Windows has a greater ecosystem, cheaper hardware, a bigger market, countless tools, ease of use, excellent documentation, and a stronger community, to name a few. Moreover, Windows is also a popular choice for developing cross-platform apps. Many tools like Delphi and C++ Builder are available for fast cross-platform development needs. Why develop for mobile devices? While Windows usage is widespread in desktop environments, the story is different in the mobile world. The position of Windows is unsubstantial in the mobile arena, but the web traffic dominance of mobile users [1] (currently 56%) is also increasing compared to desktop. This trend increases developers’ need to build more for the mobile world or cross-platform apps ever. Fortunately, it is easy to develop for mobile with tools like Delphi RAD Studio. Delphi and C++ are among the most popular cross-platform programming languages. For example, suppose you are searching for the best low-code app builder. In that case, you can see how to build iOS apps without a mac for developing a fully functional enterprise-grade restaurant ordering app from a template in Delphi. Two giants, Android and iOS, dominate the mobile market. It is straightforward to develop native mobile apps for iOS and Android. Take a look at how to build iOS apps without a mac to create such Apps quickly and easily. Because Android is more popular, it is easy to understand the importance of an android app builder software. But new developers should also consider iOS development with the best native iOS app builder for the following reasons. Why develop for iOS? Why should one care for iOS development if Android has a 71% market share? [6] Well, there are many solid reasons: No app can reach maximum users until it is available for both iPhone and Android. While the Android market segment size is […]

Read More

What You Need To Know About Tkinter And DelphiFMX Python GUI – Which One Is Better?

Embarcadero Technologies recently launched a new video series on their YouTube Channel entitled “Embarcadero Open-Source Project Stream” which aims to highlight some of the open-source projects that are sponsored by Embarcadero.  Each week will focus on a certain project and will be attended by a group of panelists from Embarcadero. For this video, we will get a side-by-side comparison between two Python GUI toolkits; Tkinter and DelphiFMX. Both of which do not just work well effectively as a Windows UI toolkit but also work with other platforms such as Android, macOS, and even Linux. What are the differences between the Tkinter and DelphiFMX for Python GUI? Delphi and Python are two powerful programming languages and they both have their own strengths and weaknesses. Whether you are a long-time Delphi user or a Pythonista, it doesn’t necessarily mean that you have to stick to one language as you can freely combine them both to build a more powerful coding environment. Tkinter, for instance, is Python’s de-facto standard GUI that currently supports 7 different theme styles, 18 widgets, 3 layout options, and an online visual designer. DelphiFMX, on the other hand, is powered by the Python4Delphi library. It gives developers the ability to take the powerful and mature GUI frameworks of Delphi’s FireMonkey framework and use them in a Python coding environment. Both have High DPI and style support, and they also support asynchronous/ multithreaded applications. Tkinter, however, notably works on more platforms but DelphiFMX has simplified Android deployment. In addition to that, the Delphi designer also provides much greater flexibility and control than the designers available for Tkinter. The discussion will also highlight some of the additional projects that come along with the Python4Delphi framework including the PythonFMXBuilder (that bundles a Python Script into an Android application), Delphi4Python (D4P) Exporter (an IDE plugin for Delphi to export for Python), and DelphiVCL4Python (the lightweight native windows framework for Python). The video also showcases various demos showing how DelphiFMx works on Python. To learn more about the DelphiFMX GUI toolkit, feel free to watch the video below.

Read More

Announcing FlexCel 7.15 with experimental Lazarus support

And today we are delivering it. Experimental support (official support is coming once FPC gets anonymous methods in trunk), but usable and working fine. While the polls were 70% in favor of supporting Lazarus, we understand it is still a small number of people needing it. But we also know that those who need it, really need it. And also, if we third-parties don’t support Lazarus, less people is going to use it, giving less incentive to make third party components, and the cycle continues. So we are going for it, and we will try to keep it working as long as supporting it isn’t an unreasonable effort. At the moment, we think it is completely feasible to keep Lazarus support along with the Delphi support. To get started, get FlexCel for Lazarus from our website, and read the Lazarus guide.

Read More

Top 5 compliance features to leverage in GitLab

GitLab’s compliance management capabilities are designed to integrate compliance into development and deployment processes from the start. As a tenured compliance professional and member of our Security Compliance team here at GitLab, I can tell you from experience it is always easiest to design your processes to be secure and compliant from the start than it is to re-engineer existing processes to be compliant. Why should you care about your GitLab instance being secure and compliant? In additon to reducing the risk of a breach and lowering costs, there are regulatory and compliance requirements to consider. Regulatory and compliance audits are unavoidable and can be time-consuming and stressful. However, GitLab has many easy-to-use, built-in features that may help fulfill your organization’s compliance requirements and make your environment more secure. Here at GitLab, these are features we use everyday. The best part is, most of the features I’ll outline below are included as free features. Note: I’ll add an asterisk (*) next to any feature which is not available on our free tier. Here’s the tl;dr list: 1. Enable MFA Enabling MFA is simple and reduces the risk of attacks by making it more difficult to gain access to accounts. MFA can be enforced for all users in your GitLab instance in the admin center. Alternatively, MFA can be configured for accounts individually. You can learn how to enable MFA in our GitLab documentation. Compliance standards and GitLab controls for MFA MFA relates to the following compliance standards: AICPA TSC CC6.1 ISO 27001 2013 A9.2.3, A9.2.4, A.9.3.1, A9.4.3 NIST 800-53 IA-5, IA-5(1), IA-2(1), IA-2(2) Illustrative GitLab controls for MFA: IAC-02: GitLab Inc. has implemented mechanisms to uniquely identify and authenticate organizational users and processes acting on behalf of organizational users. IAC-06: GitLab Inc. has implemented automated mechanisms to enforce MFA for: remote network access; and/or non-console access to critical systems or systems that store, transmit and/or process sensitive data. 2. Review privileged access for critical projects Undoubtedly, one of the biggest risks to your environment is logical access. To reduce the risk, we recommend administrators ensure access is restricted based on the principle of least privilege. Access should be monitored continuously as access changes can occur multiple times, daily, in most organizations. In order to appropriately review access in your GitLab instance, it is important to first understand the access security structure within GitLab. Breaking down the access security structure Within GitLab, there are six different roles that can be assigned to users – “Guest”, “Reporter”, “Developer”, “Maintainer”, “Owner” and “Administrator”. Privileged access within GitLab is considered to be the “Administrator”, “Owners”, and “Maintainers” roles. GitLab Administrators receive all permissions Owners and Maintainers are considered administrative because these roles have permissions to do highly sensitive actions including but not limited to: managing merge settings; enabling or disabling branch protection; managing access to a project; managing access tokens; exporting a project; and deleting issues, merge requests, and projects. As privileged access is the highest risk to your environment, these roles should be tightly controlled. Some best practices in regards to ensuring access is restricted based on the principle of least privilege include: When privileged access is requested, ensure appropriate approvals are received prior to access being provisioned. Best practice is to obtain approvals from the data owner and the manager of the […]

Read More

Open core is worse than plugins… and that’s why it’s better

Open core is obviously a horrible approach to creating a product with an ecosystem of extensions and integrations: There are no proper protocols and interfaces. Instead, anyone can just add their integration to the code base and even adjust said code base to their needs if it doesn’t fit. So why have we been using the “Worse” approach at GitLab for many years now, with great success? Because Worse is Better (a term conceived by Richard P. Gabriel). Of course, it turns out that “Worse” is actually even better than Worse is Better suggested. Gabriel’s original argument was that (slightly) intrinsically worse but simpler and easier to implement software has better survival characteristics than better-designed, more complex software, and thus will consistently win in the marketplace. At GitLab, we have found that this is basically true, which is why we, for example, favor “boring technology,” even if it might not be the best possible solution for a given scenario. But this doesn’t tell the whole story: It turns out that such software is not just more successful, it also ends up being qualitatively better in the end. Worse is even better It is important to note that Gabriel’s original argument was not that bad software wins out. In fact, both his “worse” and his “better” have the same qualities: Simplicity, of interface and implementation Correctness Consistency Completeness However, his “worse” and his “better” have slightly different weights for the value placed on these characteristics, with the (worse) New Jersey school favoring simplicity of implementation over simplicity of interface, whereas the (better) “MIT” school favors simplicity of interface, even at the cost of a more complex implementation. If a simple interface can be achieved with a simple implementation, both schools agree, the difference comes when there are tradeoffs to be made. What makes worse even better, and what Gabriel didn’t take into account even in later versions, is the tremendous value of feedback loops. Being early doesn’t just let the New Jersey approach win in the marketplace, it also allows it to collect feedback much, much earlier and much more quickly than the MIT approach. Paul MacCready won the first Kremer prize not by initially setting out to build the best human-powered aircraft, but by building the one that was easiest to repair in order to gather feedback more quickly. While other teams took a year or more to recover from a crash, his plane sometimes flew again the same day. And so it was exactly this willingness to lose sight of the prize that resulted in him winning it. In much the same way, it is these quick feedback loops that a “worse” approach enables, started much earlier, that eventually lead to a better product. The problem with plugins At least since the success of Photoshop, a proper plugin interface has been recognized as The Right Way to make software both more compelling for users and less easy to leave behind by creating a third-party ecosystem that provides useful functionality without the vendor having to provide all of that functionality themselves. It was so successful that systems like OpenDoc took the idea further to be just a set of plugins, with no real hosting application. None of these systems succeeded in the marketplace. One of the reasons is that good plugin interfaces are not just hard, but downright fiendishly difficult […]

Read More

Digital Twin Twitter takeovers: June recap

In June, we gave four developers the keys to our Digital Twins Twitter account so they could share their favorite tips and tricks they have learned while working in Unity. In case you missed it, here is a recap of what each of these talented individuals covered.

Read More

How to create player-centric game economies

Having a firm grasp on the resources, currencies, sources, and sinks in your game is a great start to building a healthy economy, but understanding what behaviors exist within your player base will allow you to tailor your reward and progression design choices.  In this guide, we’ll dive into how you can design your economy around different types of players through the following topics: Payer vs. non-payers Different levels of engagement Player motivations Planning your player journey Using A/B testing to improve your in-game economy Learn about our suggestions for each player type and the variables you should test in Designing a balanced in-game economy. By developing a strong understanding of sources and sinks, currency and resource management, as well as the various types of players of your game, you’ll be fully equipped to create a healthy in-game economy that can drive player engagement.  Start learning today in the first of our introduction to economy series: What is an in-game economy, or skip to Building an in-game economy and Designing a balanced in-game economy. If you want to get started building your own game economy, Economy from Unity Gaming Services has everything you need to design and manage it. If you feel you’re ready for A/B testing, Remote Config lets you run different tests that target specific player segments without code changes or app updates.

Read More

Why Are UI Components Important For Web Based Development

Organizations are looking for web applications that provide users with many unique functionalities. For anything they provide, the User Interface is the most important part of a web application. UI helps capture the users’ attention and keeps the user engaged with the application. UI components play a major role in making web application development faster and easier. This article discusses why UI components are important for web based development.   How can you develop UIs faster and easier in your web based development? Building a UI that meets all your design, functional, and performance requirements takes considerable time and effort. However, you need to consider the project timeline and the available resources to deliver the project on time. UI components help developers to build UIs faster because they are reusable across the application. Once you build a new component, you can use it wherever you want. Also, if you want to extend the functionalities, you can build on the existing components. All these things minimize code duplication and reduce the coding time and effort eventually saving money for you. Therefore, UI components are the best solutions if you want to build web applications faster. Does consistency of UI designs matter in your web based development? Consistency is of utmost importance for a UI because it provides a professional look and feels and promotes usability. If the UI is not consistent across all the applications or web pages, then it might confuse the user. A consistent user experience helps customers understand your application’s functionalities and makes navigation across the UI much easier. You can use the same UI component for all the related UI parts without doing significant code changes. Thus, UI components help to bring that consistency to the UI. You can easily establish a standard set of components for some important parts like the company logo, headers, footers, etc. Thus UIs of all the applications across the organization can be standardized.  Do you want to do UI customizations for your web based development? Not every UI components stay the same across the applications. You may require to do some modifications to the existing components. Customizations are important if you want to change the behaviors of application components but do not want to impact and mess up the code of existing components. With the UI components, it is easy to do customizations. For example, you can add different styling for the same component without changing its internal functionalities and minimal code. Also, if you want to extend the UI parts to provide more functionalities, you can do so with UI components. This flexibility is important when building larger applications because you can easily do it with lesser time and effort.  Are efficiency and scalability the top-most priorities for your UI? When implementing the UI, one of the most important things to consider is the efficiency of your application. For UIs, there are specific efficiency-related metrics usually UI developers need to be aware of, but generally, the component load time is an important factor to consider. Are your web components loading according to your defined Service Level Agreements (SLAs)? If the UI takes a significant time to load, it may impact the user experience.  But, most UI components provided by component libraries are designed to achieve better performance. Also, scalability is another […]

Read More