From the blog

Why We Love UI Components (And You Should, Too!)

As the web gets more technologically advanced, websites and applications have gotten more robust too. Modern-day web applications are powerful in their processing capabilities and don’t even require blazing fast internet speeds. However, there are many instances of a web product failing to achieve its deserved audience. An overwhelming number of these instances owe their failure to a poor interface. Users no longer experience the web just on their laptops or desktops. Nowadays, internet surfing has become more common on handheld devices like tablets and smartphones. Therefore, websites need to deliver a satisfactory user experience on all different kinds of devices. To achieve this, their UI needs to have a user-centric design approach. UI and UX aspects of applications have gained focus in recent times. Enterprises have begun investing in dedicated positions to build a good UI. However, tools like Sencha ExtAngular give you a library of pre-implemented UI components that you can easily integrate into your front-end. Such tools save vast amounts of time and effort while making a clean and efficient UI possible. This article explains how UI components work and why their inclusion can give your website the needed visual flair to attract a broader user base. Why Should You Take A Component-based Approach To Building Your UI? In today’s times, applications are no longer a monolithic piece of technology. Several pieces are working under the hood and handling their specific responsibilities to deliver a seamless experience. Modularity has become a rising requirement from developers and has led to the advent of technologies like microservices. With a modular approach, each component can be developed, maintained, and upgraded individually. By including UI components into your front-end, you get to enjoy a modular visual layout. Pieces can be exchanged with more robust replacements without hurting the whole arrangement. What Benefits Come With Including UI Components Into Your Website? While it may seem like a straightforward task, creating a satisfying UI can involve some of the most crucial decision-making related to the whole product. The UI and UX are often deciding factors of the product’s success, and its design carries the weight of this responsibility. Therefore, the creators of the UI are doing an essential task and need to use the best resources. You can cut much of the hassle and directly implement visually appealing features by opting for quality pre-developed UI components. Many UI components offer you the facility of customizing their color themes and textures, so you have complete control over the result. Involving the right UI components can be just the choice that takes your application’s visuals to a new level. What Should You Look For When Choosing UI Components? Pre-developed UI components are hardly a new concept. A wide range of options is available for almost all popular front-end technologies. However, you cannot just select any random UI component to go on your website if you decide to use them. You will need to ensure certain aspects to confidently involve them in your front-end and achieve your desired goals. Some of the most crucial characteristics that you should look out for when selecting your UI components are given below: Seamless Integration With Front-End While many websites may have a similar visual look, almost all aim to implement a unique front-end to stand out and have their […]

Read More

How To Make Faster And More Glamorous Modern Apps With C++

Hello C++ Developers, LearnCPlusPlus.org is packed full of great articles for professionals and beginners on new modern C++ topics to speed up your applications and to make them look visually stunning with an updated, modern look in a few simple steps. In these articles, we explain how you can simply use all cores of your CPU by using Parallel Programming Library in C++ Builder. We explain the dark and light sides of the Brute Force Method. We teach how you can use the sscanf function in C and C++. How you can apply Glow Effects and Shadow Effects to have a gorgeous modern application with UI visuals which really add a touch of glamour so they don’t just work better they look better too. Examples and some tips in the posts may help Delphi developers too. If you are new to RAD Studio, we think these posts may help you as much as a rapid introduction to programming in C++, all the way to the most robust, modern, and latest techniques for those more experienced with the language. For those who are perhaps wanting to expand their knowledge with the most up-to-date features, routines, and methodologies this is a great little boost (pun intended) to your C++ knowledge. The new RAD Studio 11, C++ Builder 11, Delphi 11 are released with great new features and we are developing and testing new examples for you with the latest RADS 11 that means.LearnCPlusPlus.org examples are working well with the latest C++ Builder. You can see more of our C++ posts on this blog by clicking the following dynamic search link: https://blogs.embarcadero.com/?s=C%2B%2B Here are our selections, How can we use C++ Builder in the most modern and efficient ways? These posts are designed to be easy to understand the modern and professional ways that we use in C++. Here are the topics, This Is How To Use Parallel Programming in C++ Builder? Why You Should Know About Brute Force Methods in C++? What Is The sscanf Function In C++ And How Can I Use It? How To Make Controls Have A Glow Effect In C++? How To Add Shadow Effects To Your C++ Apps? What kind of C++ questions are we answering? These are the questions that we answer in this collection: How can I use all cores and threads of my CPU? What is Parallel Programming? How can I speed up my applications? Is there an example of using TParallel in C++ Builder? How does C++ Builder help with parallel programming in C++? What is Brute Force Method? How we can use the Proof By Exhaustion Method? What are Proof by Case and Proof by Analysis? How we can code Brute Force Method in C++? How we can prevent our servers from Brute Force Attacks? What is the sscanf function? How can I use sscanf in C++? Where can I find format specifiers for the sccanf function? What is the syntax of sscanf? What is a simple example of the sscanf function in C++? Is there a full example of sscanf function in C++?  Is there an easy way to add glow effects to components? How can I add glow to alpha images on my applications? What is a Glow Effect in C++? How can I use TGlowEffect in C++ Builder? What are the visual tips to add glows in the development of C++ applications? Is there an easy way to add custom shadows to components? How can I add shadow to alpha images on my applications? What is the Shadow Effect in C++? How can I […]

Read More

New Platform Identifiers in RAD Studio, Delphi and C++Builder 11 Alexandria

System.Classes.pas     { Platform identifiers }   pidWin32          = $00000001;   pidWin64          = $00000002;   pidOSX32          = $00000004;   pidiOSSimulator32 = $00000008;   pidiOSSimulator   = pidiOSSimulator32 deprecated ‘Use pidiOSSimulator32’;   pidAndroidArm32   = $00000010;   pidAndroid32Arm   = pidAndroidArm32 deprecated ‘Use pidAndroidArm32’;   pidAndroid        = pidAndroidArm32 deprecated ‘Use pidAndroidArm32’;   pidLinux32        = $00000020;   pidiOSDevice32    = $00000040;   pidiOSDevice      = pidiOSDevice32 deprecated ‘Use pidiOSDevice32’;   pidLinux64        = $00000080;     pidWinNX32        = $00000100;   pidWinIoT32       = $00000200; // Embedded IoT (Internet of Things) Windows w/ Intel Galileo   pidiOSDevice64    = $00000400;   pidWinARM32       = $00000800;   pidWin32ARM       = pidWinARM32 deprecated ‘Use pidWinARM32’;   pidOSX64          = $00001000;   pidLinuxArm32     = $00002000;   pidLinuxArm64     = $00004000;   pidAndroidArm64   = $00008000;   pidAndroid64Arm   = pidAndroidArm64 deprecated ‘Use pidAndroidArm64’;     pidiOSSimulator64 = $00010000;     pidOSXArm64       = $00020000;   pidWinArm64       = $00040000;   pidiOSSimulatorArm64 = $00080000;     pidAllPlatforms = pidWin32 or pidWin64 or                     pidOSX32 or pidOSX64 or pidOSXArm64 or                     pidiOSDevice32 or pidiOSDevice64 or                     pidiOSSimulator32 or pidiOSSimulator64 or                     pidAndroidArm32 or pidAndroidArm64 or                     pidLinux64;     { Platform family identifiers }   pfidWindows     = pidWin32 or pidWin64;   pfidOSX         = pidOSX32 or pidOSX64 or pidOSXArm64;   pfidiOS         = pidiOSDevice32 or pidiOSDevice64 or                     pidiOSSimulator32 or pidiOSSimulator64;   pfidAndroid     = pidAndroidArm32 or pidAndroidArm64;   pfidLinux       = pidLinux64;

Read More

A Delphi Miletus app on a sub 15€ Raspberry Pi Zero 2

Delphi IDE  Compile  XCOPY  Run on 15€ SBC Yes, that is exactly what we can do with Miletus technology in TMS WEB Core!  Create a new Miletus application from the Delphi IDE, Use a RAD component based approach with Object Pascal code to develop an app Compile for the Raspberry Pi build configuration XCOPY the single executable generated to the Raspberry Pi  Run the executable on the Raspberry Pi While we did all initial developments of Miletus on a +/- 35€ Raspberry Pi 4, we finally could put our hands on the brand new sub 15€ and much smaller Raspberry Pi Zero 2 and validate that the Miletus apps were still running on it. The good news is that it does! See in this video how we run the app with FNC gauge & chart controls and interfacing to a Bosch sensor (BME280) for air pressure, temperature and humidity: You can download the full source code of this Miletus app here. Want to learn more? Check out this blog with a video that shows step by step how you create the Miletus app for Raspberry Pi from the Delphi IDE. Get started! Miletus technology is part of TMS WEB Core and is included. Download the fully functional trial version of TMS WEB Core for Delphi or TMS WEB Core for Visual Studio Code and get started. And yes, you read that well, you can also use the free Visual Studio Code IDE used by millions with TMS WEB Core to create not only web apps but also cross platform Miletus apps.

Read More

TMS WEB Core : a reader’s digest blog post

It’s well over 2 years ago that we took the wraps of TMS WEB Core and meanwhile a lot has been written and said about TMS WEB Core. We had numerous blog posts, webinars and of course the book written by our colleague Holger Flick. So much content is spread in several places and users keep asking questions that were covered somewhere but aren’t easy to find. That is what inspired us to bring a reader’s digest blog post of worthwhile information for developers wanting to get started with TMS WEB Core. And for sure, with the upcoming XMas holiday season, it is an excellent time to sit down and explore the wonderful world of TMS WEB Core. What server do I need for TMS WEB Core web applications? A TMS WEB Core web application consists of JavaScript code that was transpiled from Object Pascal and HTML, CSS, image resources and maybe some other JavaScript libraries. As such, any web server that can server HTML pages will do. Evidently, this is IIS, Apache, embed in WordPress… we even have customers who deployed a TMS WEB Core web client application on an Arduino web server hat. TMS WEB Core comes with a debug web server, that is a small HTTP server that will immediately show your application running in the browser after compiling. This small web server (built using our own TMS Sparkle product) is just intended for debugging purposes and is in no way meant to use to deploy a TMS WEB Core app.  Can I compile any Delphi code with TMS WEB Core? No! While TMS WEB Core offers via the pas2js transpiler and its RTL a wide coverage of the Delphi language as well as the RTL, it is not 100% at the same level for various reasons. For example, pointers cannot be used. In a browser, the concept pointer doesn’t exist, hence, it is impossible to work with pointers in TMS WEB Core code. Another example that isn’t supported yet, is inline variables. This is a newer Delphi language feature not yet widely used nor requested. But be assured that most is supported, including generics, anonymous methods, RTTI, … How do I access databases? Typically, you will want to have a central hosted database where the data used by the users of your web application will be managed. A mechanism is needed to ensure your database is not wide open to just anyone with a browser. The common pattern to handle this, is by creating a REST API server that offers access to your database. There are many ways to create such REST API server. The good news is that TMS WEB Core is open to use any such REST API server. For somewhat more out of the box convenience, we have TMS XData that includes not only the REST API server part but also web client helper classes.  Can I access device hardware in the web application? It is amazing how the browser technology has evolved and offers access to a myriad of hardware on your machine or devices. This includes the camera, microphone, GPS, USB port, motion sensor, compass, Bluetooth connectivity, audio output … And yes, TMS WEB Core includes components for easy access to these devices. Can I use existing JavaScript libraries? Given the wealth […]

Read More

A Beginner’s Guide to The Best Javascript Framework

Regardless of whether you are a beginner developer or an expert, we all need help sometimes. Help can come in many ways, such as a quick answer to a query or a piece of working code that exactly does what you require. Many developers tend to look out for help when they need it and spend extra time looking for the help. However, experienced developers keep helpful resources, and tools close from the start. While development frameworks are only one example of a helpful resource that can elevate your coding experience, they are pretty popular. By utilizing frameworks in your projects, you can save essential resources like time and effort that you can spend on better coding. Additionally, most frameworks come with documentation to help you in case of any confusion. Depending on how you have structured the application, frameworks can even add to code efficiency and readability. Frameworks like Sencha ExtJS have developed a name within the developer community for its ease-of-use and quality implementations. It can serve as the perfect framework for exploring if you are new to using them for web applications. We believe ExtJS is one of the best Javascript frameworks available. This article helps you go through Sencha ExtJS, what main features it offers, and why you should gain vital experience coding with frameworks. Do You Always Need Frameworks To Build Applications? In the past, software development was a tedious and intensive process. It often required implementing standard fundamental functionalities from scratch every time developers build a product. Therefore much of their effort went into creating the basics, and the actual work started only after. Once the community realized just how counter-productive this approach was, efforts started pouring into creating packaged implementations that could be simply imported and used. Once early developers invented the first frameworks, developers and enterprises witnessed a massive increase in productivity throughout. Now teams could create applications with a much better development velocity and fewer risks. After all, frameworks allowed them to build unique new features into products since they took care of the basic ones. Nowadays, using frameworks has become a staple, especially for enterprise-level applications. You can utilize front-end development frameworks to create beautiful user interfaces, and back-end frameworks enable you to develop powerful functionalities. While you may not always need frameworks, they make things much more manageable. What Is Missing From Most JS Frameworks Currently Available? If you are up for it, there are hundreds of options available that claim to be the best JavaScript framework for you. While many of them indeed deliver on most of their promises, they often end up lacking on one front or the other. Sometimes it involves poor documentation or learning resources for users to get comfortable developing using the framework. Other times, the web applications get further complicated due to the approach which the framework takes. Some of the main concerns many users raise with frameworks include: Poor Underlying Layout: Many frameworks have a poorly designed back-end, making it harder to understand and utilize. Inadequate Learning Resources: Frameworks often don’t create the necessary learning resources for reference. Unpredictable Performance & Delivery: Frameworks often optimize when needed but may not necessarily do so every time. Not Optimized For Mobile: Developers need to be assured that their applications will be easily usable on […]

Read More

9 Signs You Should Invest in Automation

In today’s economy, efficiency, speed, and productivity is key to prolonged success. However, many businesses still waste precious time and resources running manual processes that can be automated. Knowing when it’s time to automate specific manual processes can be pivotal to the growth and success of your business.  To help in your decision-making, here are nine signs you should invest in automation. 1. Do you have error-prone repetitive processes? Often, business processes involve a series of sequential tasks based on predefined rules or conditions, many of which are of a repetitive nature. More often than not, manually repeating any process can lead to errors, as humans may miss a step or forget to click a button. In contrast, automation can significantly mitigate such errors.  For instance, if you’re automating a UI testing process, the whole test would strictly run based on predefined instructions. However, if the same test is run manually, humans may forget to test a specific use case, leading to inaccurate results.  2. Are you finding a lack of repeat business? Do you find it difficult to retain your customers or get repeat business from your previous buyers or subscribers? In that case, it might be an indication that your customer satisfaction strategy is lacking. For example, a slow response time can be off-putting for many customers.  All customer satisfaction efforts should be focused on making your customers happy, not on manually running admin tasks that can easily be automated.  3. Are you falling short on achieving your desired throughput? Inherently, humans aren’t as productive as machines; from physical or mental fatigue to other factors that may reduce human productiveness, you may find yourself way off your target. Manually run business tasks can only be completed when someone is working. However, with automation, you can efficiently complete business tasks faster and more accurately, with little or no supervision.  4. Are you experiencing the effects of a labor shortage? According to the United States Unemployment Report by trading economics, unemployment is currently the lowest it has ever been since 1969. Additionally, talents in specific skill markets are going extinct, and organizations struggle to find or attract a quality workforce. While automation can’t completely eliminate your dependency on manual labor, it can significantly reduce it.   5. Do you need faster process completion? Business processes can easily be delayed due to poor communication, amongst other factors. For example, waiting on the go-ahead for certain tasks or manually collaborating to complete in-house projects opens up the opportunity for process delay. If you find yourself needing to speed up processes, then you should look towards automating those processes. Getting the go-ahead on tasks, collaboration, etc., can all be managed from a centralized automation system.   6. Do you need to track KPIs? In this data-centric world, it is important to track performance metrics, so you know what’s working and what isn’t. Running manual business processes would also mean manually collecting performance data, which could be very difficult. However, most automation tools automatically record data you can access and use at will. This way, you can boost efficiency and productivity by focusing your time on analyzing data rather than collecting them.  7. Do you have a need for instant information access? Cloud-based automation systems allow anyone at any time to complete the tasks they need […]

Read More

RAD Studio 11 November Patch

Вслед за выпуском новейшей версии продукта всегда следует ряд исправлений, которые производитель считает необходимым быстро внести в продукт. Иногда это происходит из-за поздно найденной критической ошибки, но обычно – производитель окончательно приводит продукт в соответствие со своими и общепринятыми стандартами качества. В октябре этого года Embarcadero выпустила Patch 1.0 для версии RAD Studio 11 Alexandria, вслед за которым был выпущен November patch. Неудобство таких последовательных патчей может заключаться в том, что для получения обновленной версии пользователям приходится  “накатывать” их друг за другом, в порядке их выхода (не дай бог, перепутать порядок!) Ноябрьский патч лишен этого недостатка: он уже содержит в себе  все изменения и исправления из предыдущего и может быть применен на системах, в которые уже были внесены изменения патча 1.0  Патч предназначен для избавления от одной выявленной регрессии патча 1.0 и содержит обновления для PAServer (инструмент удаленного размещения и отладки приложений)  на платформах macOS и iOS. Установка этого патча рекомендуется всем пользователям RAD Studio 11. Патч доступен для активных пользователей подписки на обновления в менеджере пакетов GetIt и  на сайте загрузки my.embarcadero.com.  Процесс установки описывается в файле Readme.txt патча и ниже в этом посте. В Readme.txt также содержится список проблем, решаемых этим патчем. Установка на основе GetIt При запуске IDE (или при следующем обновлении страницы приветствия) вы увидите значок “Patch Available”, который находится в другом месте на странице приветствия RAD 11. Выбрав значок или открыв менеджер пакетов GetIt и перейдя в раздел “Патчи и исправления”, вы увидите следующий пункт (см картинку): Если вы скачаете патч через GetIt, он установится автоматически, создав резервную копию заменяемых файлов. Патч поставляется в виде пакета отложенной установки, что означает, что он устанавливается после выключения IDE (вам будет предложено перезагрузиться, но вы можете подождать до этого момента). Помните, что вам нужно будет подтвердить запрос UAC Windows сразу после начала процесса установки. Пока вы это не сделаете, процесс установки будет ждать!  Запрос UAC отображается в отдельном окне и может быть перекрыт другими окнами. Обратите внимание, что размер загружаемого патча превышает 900 МБ, поэтому этап загрузки из окна консоли (открываемого при выключении IDE) займет некоторое время. Если установка RAD Studio была неполной,  некоторые файлы не будут найдены (например, в случае отсутствия файлов локализации среды или при неполной установке платформ). Это ожидаемо, предусмотрено и нормально. После завершения процесса установки патча среда RAD Studio IDE автоматически перезапускается. Обратите внимание, что версию PAServer для macOS, обновленную этим патчем, необходимо установить на ваше устройство macOS вручную, как написано в Readme.txt. Ручная установка Вы также можете найти патч на портале my.embarcadero.com. В этом случае необходимо загрузить ZIP-файл патча и установить его вручную, следуя шагам, аналогичным шагам автоматической установки. Перед установкой патча необходимо вручную закрыть RAD Studio IDE (если IDE запущена, вы увидите ошибку). В этом случае вы найдете основной файл загрузки RAD Studio 11 November Patch с пакетным файлом, который вы можете запустить или вручную распаковать ZIP-файл в соответствующие подпапки папки установки RAD Studio. Вам также придется скопировать PAServer, установить на Mac и повторно импортировать SDK. Более подробное описание патча вы найдете в файле Readme.txt   Вот список некоторых проблем качества, решаемых ноябрьским патчем RAD Studio 11 Проблемы, связанные с PAServer RSP-36094 Невозможно скомпилировать на macos, нет такого файлаRSP-36068 Проблема с paserver на arm osx montereyRSP-36064 Исключение-Klasse 6 при попытке запустить приложение Firemonkey на macOS Monterey Проблемы, связанные с VCL RSP-36207 Ширина GroupBox на унаследованной форме изменяется на значение по умолчаниюRSP-36077 Исходный код […]

Read More

A Beginner’s Guide to Artificial Intelligence

There’s no denying the tumult, horrors and massive loss of life during World War II. But, as is often the case, from this environment of desperation and hardship sprang many technological advances. Alan Turing, helped lead an unprecedented cadre of mathematicians and logicians to success in building a special purpose computer which could break the secret communication codes of their military enemies. Turing emerged from this period inspired to consider the future possibilities of more generalized computing devices and where that could lead society and how those machines would evolve. Turing wrote a paper in 1950 titled “Computing Machinery and Intelligence,” which he opened with the statement: “I propose to consider the question; can machines think?”. It was a ground-breaking paper not least because it contained a test which Turing originally called “The Imitation Game” but which later became more popularly known as “The Turing Test”. The Turing Test laid out, for the first time, a foundation for how we might consider a machine – a computer – to be “intelligent”. The main premise of the test is that if we cannot tell if we are speaking to a machine or a human – or if we guess and guess wrongly – then, put simply, that machine is probably best considered ‘intelligent’. It’s a simple definition but that simplicity belies the genius of it. How have things changed since Alan Turing’s time? Computing technology- and along with it artificial intelligence – has grown exponentially since Turing’s time. Yet we are still only standing on the first rung of a very long ladder. Picture this; a machine that can organize your portable home library alphabetically, just as you’d like. Or a machine that could prepare a customized daily schedule for everyone at the office. Makes your life/job easier, doesn’t it? These are the products of artificial intelligence.  But why is it termed “artificial intelligence”? Well, these machines are designed using complex algorithms and mathematical functions that aim to incorporate human-like intelligence, to make decisions and solve problems as we do. However, AI may not be as obvious as in the above examples. In fact, AIs have various applications in almost every area of life. You can find AI in smartphones, cars, wrangling our social media feeds, playing (and beating us) in games, automating banking decisions and anti-fraud or money-laundering activities, widespread private and government surveillance, even performing roles in our vehicles to enhance safety and usability. The real question, however, is what does an AI do at its core? What makes a product or machine artificially intelligent? Three basic components make up this answer. We’ll describe them using this illustration.  Let’s assume we build our robot in a lab and transport it to a park. Regardless of the difference in lighting and landscape between our lab and the park, the robot must perform as expected. This ability to adapt quickly to a new situation is called “generalized learning.” The robot then gets to a crossroad; one, muddy and the other paved. Here, it must determine which path to take based on the circumstances. This portrays the robot’s “decision-making” ability. After a few meters on the paved road, the robot approaches a body of water it cannot swim through. Using a plank added to the robot as input, it can cross to […]

Read More