Noutați

12 Go-To Resources About The Best Javascript Framework

What Are Some Hidden Gems in Chrome Developer Tools? As a software developer building applications with web technology, I naturally spend lots of time in my browser. For many years web developers struggled to build cross-browser applications because many browsers (notably older versions of Internet Explorer) failed to offer even minimal debugging tools — but thankfully today every browser ships with helpful developer tools and support modern standards. These can be especially useful when working with the best javascript framework. I use Google Chrome as my primary browser simply because its set of developer tools offers more features than the competition. I often joke that Chrome Developer Tools has so many features that they ran out of space to show them, so I wanted to share a few hidden gems I’ve found. Read the full article about the Google Chrome developer tools hidden gems. How does Ext JS Outperform Grid Competitors on Key Performance Metrics? The overall volume of generated data has grown exponentially over the past couple of decades. As a result, modern JavaScript data grid components that manage the display and analysis of these massive data volumes have evolved. Today, there are many data grid offerings in the market that tout enhanced capabilities to display and manage analysis. But how many of them can withstand the true test of performance as it relates to “Big Data”? To answer this question, we got into the trenches and ran performance tests comparing Ext JS data grid to other popular market offerings and outlined our results in this post. There have been several JS Grid performance claims (each valid in their own way), but many lack the demonstration of real use case scenarios — specifically pertaining to large datasets. This performance evaluation was based on how an end-user would actually use the grid in the field and we put the most popular data grids to test. Read the full article about the Ext JS Javascript grid library performance. What Is The How and Why of the MVVM Pattern in Ext JS? A well written application structure and code can tell a story. While code writing is a way to efficiently communicate with the target device, writing it in an appropriately chosen design pattern is crucial, as it enables developers to effectively collaborate and communicate with the technical framework suited for the project. One such tried and tested pattern that has met these needs is the industry standard MVC (Model, View, Controller) pattern. MVC pattern serves the purpose of abstracting the main concerns of a user facing application: its data (Model), its presentation (View) and any  logic that connects the two (Controller) away from each other to be addressed in isolation — while still being interdependent in a loosely coupled manner. This way, any changes made in one can be made without undue complications being brought to the other(s) and compromising the application as a whole. Read the full article about the how and why of the MVVM pattern. How Do I Handle Asynchronous JavaScript: Promises? JavaScript is single threaded, causing code to execute from top to bottom, so two bits of code cannot run at the same time. For example, you might download a JSON file from an (external) server and you’d have to wait until you retrieve that file. Instead of blocking the thread, there are ways you can […]

Read More

6 Books About IDE Tools for Windows 10 You Should Read

Reading is an essential skill for Windows application development. Development is a nebulous and constantly expanding subject and I’ve noticed that the most successful coders, project managers and designers are often readers with a voracious appetite for consuming books on everything they possibly can to keep feeding a hunger for knowledge. Unlike a waistline, expanding your mind is rarely seen as a negative attribute and over-indulging produces nothing but good results! Learning a new programming language can be a hard task, but if you get hold of a good book, spend time, and have the commitment, then learning becomes easier and delightful. Practice and self-tuition is important but books and videos help use the benefits of other’s experiences to enrich our own without the pain of getting it wrong and spending years acquiring the knowledge. Technology is in constant growth and could be considered a fast-paced competitive market. Every day new frameworks and tools are created, and it is easy to get lost in the sea of new information. Because of this speed, many rely on quick tutorials which lead from point A to point B without figuring out the way yourself. That is why it is essential to read coding books that explain every single detail that helps to build a true foundation. Windows operating system has been dominating the desktop software world and with the new version of Windows 11 with an elegant user interface, we are seeing new Windows 10 and 11 supported applications in the Microsoft Store. If you would like to find out which books and resources would help you to start your Windows desktop app development career, keep on reading! You will find the best 6 books about IDE tools for Windows 10 and even you can you these tools to create native and cross-platform applications. 1. Object Pascal Handbook for Delphi.4 (The New Edition) The Object Pascal Handbook for Delphi 10.4 is the complete guide to the programming language of Delphi. Why Delphi? Because with Delphi you can create cross-platform native applications easily and the programming language syntax is also suitable for everyone, it is like writing a poem in English. If you would like to know more about why you need to choose Delphi, check out these articles now! If you would like to know more about why you need to choose Delphi, check out these articles now! This book is written by Marco Cantu, who is well known Delphi guru and author of dozens of Delphi books, and he is one of the Product Managers for RAD Studio at Embarcadero Technologies where Delphi is evolving. With this book, you can get all the foundations of the language and give you a full idea about the Delphi programming language which you will utilize to create native Windows applications. Link: https://www.marcocantu.com/objectpascalhandbook/ 2. Coding in Delphi Coding in Delphi is a programming book by Nick Hodges that covers a variety of powerful Delphi programming features and techniques including: Generics Interfaces Exception handling Anonymous methods Collections RTTI Enumerations Attributes Dependency Injection Unit Testing By learning these features of the programming language, you can write efficient code and make things faster and more reliable. Moreover, these technologies help you grow as an engineer. Link: https://leanpub.com/codingindelphi 3. Expert Delphi: Robust and fast cross-platform application development This book […]

Read More

Building the Future – Delphi’s 27th Anniversary – #Delphi27th

The 14th of February is just around the corner, and while for many that means chocolates and flowers, we know the true meaning: Delphi’s birthday! The theme of Delphi’s 27th anniversary is Building the Future! It is always great to tell the story of how you discovered Delphi, but let’s look to the future. How do you see Delphi making the world a better place? What Delphi related technologies continue to change the way you program? We are hosting a webinar with Kyle Wheeler, Marco Cantu, David Millington, and Ian Barker, where we share the ways Delphi continues to shape the future of software development. The free webinar is Feb 14, 2022 10:00 AM CST. I’ll be sure to review the comments on this post before the webinar, so if you have a story, demo, library, tip, etc. that you would like featured, please leave it as a comment here. Then join the webinar and our live Q&A. We will see you online!

Read More

FNC Physics Components in TMS Analytics & Physics 3.3

TMS Analytics & Physics library is a set of classes that provide functionality for building powerful math and engineering applications with Delphi IDE. In the new version 3.3 of the library, we introduced special FNC physics components to take advantage of Delphi’s rapid application development. In this article, we’ll consider the base concepts of the FNC physics components and provide information on how to work with units of measurement.  Let’s consider the following FNC physics components: TFNCUnitProvider – creates a physics environment for the application; contains information about registered physics entities and provides units of measurement to other physics components. TFNCUnitConverter – provides properties and functionality to convert physical values measured in two different units. To begin an FNC physics application we first need to put a TFNCUnitProvider component on the form. The component has the following published properties: Quantities (TQuantityCollection) – a collection of registered physical quantities. Prefixes (TPrefixCollection) – a collection of registered prefixes that can be used to create units with multiplier factors (like kilo-, milli-, and so on). Units (TUnitCollection) – a collection of registered units of measurement that can be used to create complicated derived units. When you put a TFNCUnitProvider on the form in design-time, it automatically finds all registered quantities, prefixes, and units. The collections of these items are not editable, they only provide information about available physical entities. When an item is selected in a collection, its properties are shown in the Object Inspector. In the picture below, you can see a collection of physical quantities:   Any quantity has the following properties: Name (string) – the name of the quantity. Symbol (string) – a common symbol for the quantity designation. Dimension (string) – physical dimension of the quantity. As an example, we showed the ‘Area’ quantity. Its physical dimension is ‘L^2’ – squared length. More information about physical dimensions can be found in the documentation for the library. Analogously, you can view information about all registered unit prefixes, as shown in the picture below.   A prefix provides the following properties: Name (string) – the name of the prefix. Symbol (string) – symbol, identifying the prefix in composite units. Value (real) – the multiplier factor of the prefix. And finally, you can view all available units of measurements.   Any unit provides the following properties: Name (string) – the name of the unit. Symbol (string) – the symbol of the unit that is used to identify this unit for conversion algorithm and other manipulations. Dimension (string) – physical dimension of the unit. The unit provider component supplies the physical entities to other components, for example, to the TFNCUnitConverter. This component is intended to convert physical values measured in two different units and has the following properties: Provider (TFNCUnitProvider) – a unit provider. Unit1 (TUnitProperty) – the first unit of measurement for conversion. Unit2 (TUnitProperty) – the second unit of measurement for conversion. Value1 (real) – the first value, measured in the first unit of measurement. Value2 (real) – the second value, measured in the second unit of measurement. Valid (boolean) – read-only value defining if all input items are valid for conversion. Error (string) – read-only text of an error that occurred during conversion. IntervalConversion (boolean) – defines if making the interval conversion or not. First of all, you need to […]

Read More

Delphi Timewarp – 1995 And Delphi’s Mythical Origins

1995 is a very important year in the history of Delphi. On February 14 of that year the first version of Delphi was released for 16-bit Windows 3.1 as a Rapid Application Development (RAD) tool.  Delphi came as a departure from its predecessor, Borland’s Turbo Pascal for Windows. Turbo Pascal combined an editor, debugger, compiler, linker, and libraries, and evolved into Object Pascal after support for objects was added. Delphi / Object Pascal created a foundation for app development that still inspires and supports application developers today.         Henceforth Thou Shalt Be Known as “Delphi” Where did the Delphi name come from? The accepted story is that the Delphi name was originally suggested by then Borland developer Danny Thorpe as a reference to the Greek fortune-telling temple of the same name. One of the goals behind Delphi was to provide database connectivity to developers, and because Oracle was one of the more popular database products of the time, the reasoning was that “if you want to talk to the Oracle, you have to go to Delphi”.               It just happened, however, that Borland was preparing to release the product as Borland AppBuilder, but when Novell AppBuilder was released shortly before Borland’s own release date, the company moved forward with the amazing iconic name of Delphi. The rest, as they say, is history. The first version of Delphi came with a Visual Component Library (VCL), visual two-way tools, a Runtime Library (RTL), data-aware components live at design time, a Property Method Event (PME) model, structured exception handling, and Database support via BDE and SQL Links.             Where Was The World in 1995? What kind of year was 1995? Do you remember where you were in your life that year? I for one was halfway through architecture school. Here are some of the highlights: After landing in Saskatchewan, Canada, Steve Fosset became the first person to fly solo in a hot air balloon across the Pacific. The Schengen Agreement went into effect for the first time, and more than 170 countries agreed to extend the Nuclear Non-Proliferation Treaty. Meanwhile, a lot was happening in space, too. Russian cosmonaut Valeri Polyakov completed a record 366 days in space, while Bernard A. Harris Jr. became the first African American and Michael Foale became the first Briton to walk in space. In December, NASA’s unmanned probe Galileo captured the world’s imagination with pictures as it entered the atmosphere of Jupiter.               Entertainment Hollywood was busy as always, and the year saw the release of Kevin Costner’s Waterworld, David Fincher’s crime thriller Seven, with Brad Pitt and Morgan Freeman, and Toy Story, the first-ever full-length computer animated film.  Other high-profile movie releases included Batman Forever, and the James Bond thriller Goldeneye. Forrest Gump won the Oscar for best film. Alanis Morissette released Jagged Little Pill, Shaggy released Boombastic, and rapper Coolio released Gangsta’s Paradise. Browsers, Games and The Internet Microsoft released Windows 95, Visual Studio 4.0, and Internet Explorer 1 and 2. Interestingly, the first version of the Opera browser was also released in the same year, as was Netscape Navigator 2.0.               HTML was also at version 2.0, and […]

Read More

Developer Environment Tools For Delphi And Electron – Benchmark Study

Developer environment tools improve the speed and quality of coding with features like auto-completion, debugging, and emulation. They influence factors like development time, and the need (or lack thereof) to make future updates and bug fixes. RAD Studio, for example, comes with code insight, an advanced debugger, code formatting, refactoring assistance, and keystroke macros. When businesses choose a software framework they begin a long-term relationship for the duration of their application’s lifecycle. Given the strategic consequences of this decision, businesses must carefully consider how frameworks enhance developer productivity, business functionality,application flexibility, product performance, the long-term viability of that framework, and the inherent security in each framework’s design and technology. The ideal framework demonstrates strength in each category by minimizing product time-to-market, reducing maintenance costs, supporting product variety, and facilitating a superior customer experience. The “Discovering The Best Cross-Platform Framework Through Benchmarking” whitepaper evaluates two frameworks supporting multi-platform desktop application development: Delphi and Electron. This is the third in a series of blog posts looking more closely at each of the 26 individual metrics used in the study, and how Delphi and Electron each fared on these metrics. The first can be found here. Download the complete whitepaper here Benchmark Category: Developer Productivity Developer productivity is the measure of effort and code required for developers to complete typical development tasks. Productivity directly impacts product time-to-market and long-term labor costs so tools that increase developer productivity have substantial impacts on business timelines and bottom lines. Productivity can be realized in two distinct ways – reduced coding requirements due to native libraries, and IDE tools like code-completion and visual design.IDEs with greater library breadth generally result in fewer lines of code per application and produce a clean, lean codebase that minimizes opportunities for bugs or maintenance problems later in the product life cycle. Benchmark Metric 3/26: Developer Environment Tools Developer Environment Tools: Does the framework IDE standard installation include auto-completion, debugging, and emulation tools? Are multiple IDEs available for the framework? Frameworks with multiple development tools and a choice of IDE better support individual development preferences, techniques, and requirements. Benchmarking Results Delphi Score: 4 (out of 5) Delphi’s IDE, RAD Studio, offers a plethora of developer tools including Code Insight (suggestions, completion, etc.), advanced debugger, code formatting, refactoring assistance, keystroke macros, and integration with common software version control systems. RAD Studio provides an Android emulator feature and can tie into an iOS simulator on a macOS machine. RAD Studio is the only IDE available for Delphi and the only method of compiling Delphi projects, however, both the code and UI definitions can be edited using standard text editors. Electron Score: 4 (out of 5) Electron applications can be written in code editors such as Visual Studio, Atom, and WebStorm as well as full IDEs. All offer robust features and tools to enhance developer productivity. Electron must be compiled, run, and packaged using the command line – integration with Visual Studio Code hasn’t been completed. Third party solutions may be available. Download the complete whitepaper here

Read More

PDF generation with complex graphics in Delphi

Intro TMS FNC Core is the core foundation of FNC. It offers a solid structure for the other FNC component sets such as TMS FNC UI Pack and TMS FNC Maps. In the past, we have demonstrated the capabilities of TMS FNC Core in various ways. Below are a couple of links to blog posts about functionality available in TMS FNC Core. A browser, JSON persistence, printing, SVG support and many more. Today I want to focus on another “hidden gem”: PDF generation and in particular focusing on drawing complex graphics. Basic drawing  Before going to complex drawing statements, we need to take a look at the basics. Generating a PDF starts by specifying a file name, adding the first page, and then the PDF context is ready to be accessed via the Graphics property. In the sample below, we draw a simple rectangle by setting the properties of the fill & stroke and by calling p.Graphics.DrawRectangle. uses   FMX.TMSFNCPDFLib, FMX.TMSFNCGraphicsTypes; procedure TPDFGenerationForm.GeneratePDF; var   p: TTMSFNCPDFLib; begin   p := TTMSFNCPDFLib.Create;   try     p.BeginDocument(‘MyPDF.pdf’);     p.NewPage;     p.Graphics.Fill.Color := gcYellowgreen;     p.Graphics.Stroke.Color := gcGreen;     p.Graphics.Stroke.Width := 4;     p.Graphics.DrawRectangle(RectF(100, 100, 300, 300));     p.EndDocument(True);   finally     p.Free;   end; end; This generates the following PDF The basic ITMSFNCCustomPDFGraphicsLib interface (p.Graphics property) exposes a lot of basic drawing calls to draw shapes constructed out of simple primitives or more complex paths. On top of that, it’s possible to export images as well. Using these calls gives you the flexibility to enhance your PDF with vector sharp graphics. The way this needs to be done is by calling each draw statement in a specific order. See this sample below to draw a bezier curve. uses   FMX.TMSFNCPDFLib, FMX.TMSFNCGraphicsTypes, FMX.TMSFNCPDFCoreLibBase; procedure TPDFGenerationForm.GeneratePDF; var   p: TTMSFNCPDFLib; begin   p := TTMSFNCPDFLib.Create;   try     p.BeginDocument(‘MyPDF.pdf’);     p.NewPage; p.Graphics.Stroke.Color := gcDarkseagreen; p.Graphics.Stroke.Width := 3; p.Graphics.Stroke.Kind := gskSolid; p.Graphics.DrawPathBegin; p.Graphics.DrawPathMoveToPoint(PointF(350, 40)); p.Graphics.DrawPathAddCurveToPoint(PointF(310, 130), PointF(445, 50), PointF(398, 115)); p.Graphics.DrawPathEnd(dmPathStroke); p.Graphics.Stroke.Width := 0.5; p.Graphics.Stroke.Color := gcBlack; p.Graphics.Fill.Color := gcNull; p.Graphics.Fill.Kind := gfkSolid; p.Graphics.DrawLine(PointF(350, 40), PointF(310, 130)); p.Graphics.DrawLine(PointF(445, 50), PointF(398, 115)); p.Graphics.DrawRectangle(RectF(442.5, 47.5, 447.5, 52.5)); p.Graphics.DrawRectangle(RectF(395.5, 50 + 62.5, 400.5, 50 + 67.5)); p.Graphics.DrawRectangle(RectF(347.5, 50 – 12.5, 352.5, 50 – 7.5)); p.Graphics.DrawRectangle(RectF(307.5, 127.5, 312.5, 132.5));     p.EndDocument(True);   finally     p.Free;   end; end; The result of the above code is a bezier curve with lines and handles mimicking interaction. Mapping FNC Core graphics onto PDF graphics After the initial release, we had some requests on exporting FNC components to PDF. The PDF graphics layer was too limited to export components to PDF, therefore we have created the TTMSFNCGraphicsPDFEngine class, which decends from TTMSFNCGraphics, the core class for all FNC cross-platform drawing. On top of the default PDF graphics, the TTMSFNCGraphicsPDFEngine gives you complex paths, matrix transforms as well as various flexible image drawing options. Together with SVG support we can then load the SVG as a resource and draw the information as vector graphics inside the PDF. Internally, the SVG is parsed, elements are transformed to FNC graphics paths and with that information the PDF graphics engine draws renders the SVG onto the PDF canvas, via the earlier mentioned drawing calls. All in a couple of lines. uses   FMX.TMSFNCPDFLib, FMX.TMSFNCGraphicsTypes,   FMX.TMSFNCGraphicsPDFEngine, FMX.TMSFNCTypes; procedure TPDFGenerationForm.GeneratePDF; var   p: TTMSFNCPDFLib;   g: TTMSFNCGraphicsPDFEngine;   bmp: TTMSFNCBitmap; begin […]

Read More

GraphQL for Delphi, our new full GraphQL-spec compliant library launch webinar

Next tuesday, Feb 8 at 5h00 UTC 18h00 CET, we have a new webinar you will not want to miss! Our experts & Embarcadero MVPs Wagner Landgraf and Roman Yankovsky will introduce a brand new product GraphQL for Delphi to you. This webinar gives you the opportunity to learn what GraphQL is, what you can use it for and then show how to use it from Delphi using the full GraphQL-spec complaint library “GraphQL for Delphi” including some live examples. You will learn how you can apply GrapQL to create highly flexible API servers with a minimum effort where the client can choose on how to optimize its communication with the server.  During the webinar, the GraphQL for Delphi product will be officially launched and will become available in both a free edition for non-commercial use and a normal licensed version. Attendees will also be entitled to an introductory discount coupon for purchasing the normal licensed version.   Register now! Register here to ensure your seat for the webinar on February 8 from 5PM to 6PM UTC (18h00 – 19h00 CET)

Read More

Runtime memory profiling and more for Delphi with the new TMS MemInsight

We are very excited to announce a new product TMS MemInsight in the TMS family that results out of the collaboration with long-time Delphi expert Stefan Meisner and the TMS team. Stefan has a deep knowledge of Delphi technical internals to monitor memory allocation, getting call-stack information, exception handling, challenges with multi-threaded development and much more. Together with our focus on bringing easy to use component-based and as low-code as possible solutions and tools, we strongly believe that not only for TMS MemInsight but also future product ideas, we can continue to bring more value to you and come to the 1 + 1 = 11  winning formula. TMS MemInsight v1.0 Whereas most memory allocation tracking tools are static, that is producing a report on application close or upon application crash, the difference with TMS MemInsight is that it is a dynamic memory allocation profiling tool that is used at run-time. This means that also while your application is running without issues, you can monitor where there are possibly performance issues due to consuming huge amounts of memory.  With TMS MemInsight, you can continuously inspect memory allocation during run-time and get information on classes for which memory is allocated and get the class info, call stack, thread, property inspection, memory dump etc… of everything. With a statistics view, it is easy to see where the majority of allocated application memory is going to.  When you run the tool in debug mode with a map file, it is able to directly bring you to the position in the source code in the Delphi IDE of where memory was allocated. TMS MemInsight also allows to provide additional information, most importantly the call stack, when exceptions occur. This allows you to understand better where exceptions come from and remedy these. Getting started To get started with TMS MemInsight is as easy as dropping the TTMSMemInsightProfiler component on the form. With this component on the main form of the application, it is default configured to immediately show the profiler tool when you start your application. Or you can also choose to start the profiler only from code when you need it. You can control at component level or in code, what monitoring tools are active and live. There is not much more to do to get a new deep view on the internals of your application! Discover it also for yourself in this video: What’s next We have plenty of ideas of possible future directions of not only the TMS MemInsight tool but also new complimentary tools. But of course, as always, it is your wishes and requests for specific functionality that steer our development priorities. We look forward to hear from you what enhancements can be done in TMS MemInsight to make your development even easier and what other development tools you further wish. Contact us by email or leave a comment here. 

Read More

10 Compelling Reasons Why You Need Javascript Grid Library

In modern web applications, rendering a large amount of data in tabular format is often an essential requirement. Javascript Grids help web developers efficiently load the data set in rows and columns without significantly affecting the page load speed.  Nowadays, several JavaScript grid libraries are available on the market, enabling developers to integrate many useful and complex operations on tabular data. For example, web developers can use the Sencha Ext Js grid library to provide consumers with useful grid operations like scrolling, sorting, grouping, and filtering. If you are a web developer who hasn’t decided on using a Javascript grid library in your projects, this article will show you why you need to use a Javascript grid library. One of the important reasons you should integrate a grid into your application is to provide a more user-friendly and positive experience to the end-user. When it comes to grid operations like sorting and filtering, responsiveness is important. Because if the user has to wait a long time to get the results, frustration can occur, which negatively affects your companies’ image. Javascript grid libraries consist of everything you need to build highly user-friendly and responsive grids. Grid libraries have been designed to provide better performance in every operation it supports to get the required data as efficiently as possible. When there are many data loaded on one page, the users need to scroll through the page to view the entire data set. Grid libraries can make this scrolling speed efficient where users will hardly experience a delay in loading the data. One example is the Ext JS Grid Library has a scrolling speed that takes seconds. Also, most grid operations like filtering sorting can make efficient according to the amount of data you have to manipulate.  Building a grid on your own can be challenging, especially if your project has a tight schedule to complete. If you want to avoid writing code as much as possible and speed up your development, you must use a Javascript grid library.   A grid library provides different reusable components for building a high-performing grid within a short period. You will have a large feature set from basic to advanced to handle millions of data sets within seconds. External JS Grid library, for example, enables users to use Ext JS Kitchen sink for re-usable components with Grid components. Some components users just have to drag and drop without writing code. This low-code development makes developers’ lives easier and helps them be more productive.    When you integrate a grid into your application, it is important to give attention to its look and feel. Because users tend to engage in UI components that are eye-catching and consistent throughout the application, developing a grid and making your themes from scratch can consume a significant amount of time. JavaScript grid libraries help you easily apply different themes to your grid to enhance its appearance. Most libraries have a collection of predefined themes which you can directly apply.  Also, sometimes you may require to build themes specific to your business requirements. Most grid libraries enable users to build custom themes and use them throughout the application to make the grid appearance consistent. For example, you can use Sencha Themer with Ext JS Grid library to build customized themes for your […]

Read More