Noutați

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

Customizing SVG appearance

Intro Recently we covered a blog post related to high DPI in combination with SVG in RAD Studio Alexandria. Adding SVG to your application makes you not have to worry for what the future brings in terms of look and feel. The scalable vector graphics will always be crisp independent of the screen resolution or size of the image. Today we are going a step further yet again and want to introduce a couple of QOL changes.  SVG support is available when installing one of the following 2 products. After starting the IDE, SVG is already available. This is not only registered for our products, but also available in default VCL controls. We start by adding VCL.TMSFNCTypes or AdvTypes unit (depending on the installed product). The unit will register the SVG type at runtime. At designtime, the package already registers SVG support. In the latest version of both products, we have added a way to change the tint color, setting the overal fill, stroke and opacity as well as the ability to turn an SVG to a grayscale version. TintColor Adding an SVG image to one of your controls, directly via TPicture or via a TVirtualImageList in combination with TTMSFNCSVGImageCollection enables access to the properties. After loading an SVG via the Data property of the TTMSFNCSVGImageCollection you are able to set one of the new properties. Changing the TintColor will affect the overal appearance, the SVG engine will try to blend the TintColor with the image, creating a different appearance. Original SVG TintColor = gcDarkOrange GrayScale Enabling the property GrayScale, will transform the SVG and convert all colors to grayscale versions. Customizing Opacity, Fill and Stroke The CustomOpacity, CustomFillColor and CustomStrokeColor properties are focused on changing the whole appearance of the SVG. Currently, the CustomFillColor and CustomStrokeColor are designed to be applied on monochrome colors such as complete white or black SVG icons.  CustomOpacity = 0.4 In Code  Each property can be accessed when converting the TGraphic sub-property of a TPicture to TTMSFNCSVGBitmap (or TAdvSVGBitmap). The code to do this is shown below, and based on adding a TPicture on a TImage. (Image1.Picture.Graphic as TTMSFNCSVGBitmap).SVG.GrayScale := True;             Original SVG                                GrayScale    The same applies to all the other properties. Below is a sample changing the opacity in combination with a custom fill color. (Image1.Picture.Graphic as TTMSFNCSVGBitmap).SVG.CustomFillColor := gcRed; (Image1.Picture.Graphic as TTMSFNCSVGBitmap).SVG.CustomOpacity := 0.8;             Original SVG                          Custom Fill/Opacity    Want to know more? More information on SVG, the supported SVG features as well as the enhancements we made to our SVG engine are available in the following blog posts.

Read More

Artificial Intelligence: Expectations vs. Reality

Let’s face it; we humans can be drawn to exaggerate and over-generalize when it comes to modern technology, especially during its early-adoption, nascent phases. This is understandable, many major tech introductions have the potential to change the way the world works or how we execute specific tasks. For that particular reason, the uprise of not-seen-before technologies can create ripples of attention as the start to shake-up the status quo. Moreover, Sci-Fi movies with not-so-accurate technology themes can feed that disquiet, causing the public to create exaggerated notions of what technologies like artificial intelligence would mean for humanity. Time-traveling liquid metal murder robots from the future may seem too far-fetched, but computers which have all the smart answers and can bring about World peace by exposing crimes before they’ve happened? Yes, much more plausible to the average non-technical person even though this would require a coordinated effort from multiple disparate government agencies who are suddenly magically released from the constraints of fiscal budgeting and the regular popularity contest of elections. These plausible possibilities, in turn, increase the need to define what’s real and what isn’t with modern technologies like AI.  There are a lot of misconceptions about artificial intelligence. From intelligent robots eventually turning against and enslaving humans in a dystopian societal apocalypse to AI replacing humans in all areas of life. The AI hype is real. In this article, we’ll be discussing some common AI expectations and defining their underlying reality.  Are we about to face an AI Apocalypse? From The Matrix to The Terminator, almost all AI-related movies portray a future where mankind is overwhelmed by technology which has turned from friend to a foe whose main, single-purposed goal is our annihilation. The AI turns against the human race or tries to take over the world. This isn’t entirely bad, as long as it is all understood to be as fictional as a world populated by dragons and reincarnated dinosaurs. But this is not often the case; the media influence is, tangibly, stronger than ever, and a large percentage of the public translates this easily-consumed fiction into an absolutely likely reality. In other words, such movies add to how the world sees AI innovations. No matter how close to modern times you foray, you’ll find that the narrative remains the same; machine revolting against humans, often with an underlying moral narrative of “well, we got what we deserved”. Almost none portray a world which results from a more probable extension of the various forms of artificial intelligence that actually exist, with fiction being mainly about the human-like type AI.  The Royal Society Report explains the implications of exaggerated expectations and fictional narratives. It reads as follows; “Both fictional and many non-fictional narratives focus on issues that form either a very small subset of contemporary AI research or that are decades if not centuries away from becoming a technological reality. This disconnect between the narratives and the reality of the technology can have several major negative consequences. The prevalence of narratives focused on utopian extremes can create expectations that the technology is not (yet) able to fulfill. This, in turn, can contribute to a hype bubble, with developers and communicators potentially feeding into the bubble through over-promising. If such a bubble bursts because the technology was unable to live up […]

Read More

More no-code in latest WX Pack!

Thanks to the use of components on a visual form designer, Delphi was a pioneer in no-code long before the term started to be used. As our primary job is to develop components, the way our components are architected is instrumental in getting as close to no-code as possible. Many times it is rather low-code than no-code, but now and then, we can assemble the components in such way that a functional application can be created without writing a line of code. Today we have a look at the newest TMS FNC WX Pack release with the new TTMSFNCWXPDFThumbnailList and TTMSFNCWXPDFToolbar that facilitate to create a functional PDF viewer app for 4 frameworks and a myriad of different operating systems without writing a single line of code. The PDF viewer app The TTMSFNCWXPDFToolbar purpose is to allow navigation in a PDF that is opened to view. It contains buttons for going to the next/previous/last/first page, to open a new PDF file or to rotate pages or zoom in & out pages. The TTMSFNCWXPDFThumbnailList is, as the name implies, an either vertically or horizontally scrolling list of thumbnails of pages in the opened PDF file. It interacts with the TTMSFNCWXPDFViewer component to show the clicked page in the thumbnail list. So, to build this application, following steps are needed: 1) Drop TTMSFNCWXPDFToolbar on the form and set alignment to top 2) Drop TTMSFNCWXPDFThumbnailList on the form and set alignment to left 3) Drop TTMSFNCWXPDFViewer on the form and set alignment to client 4) Assign the TMSFNCWXPDFViewer1 to TTMSFNCWXPDFThumbnailList.Viewer 5) Assign the TMSFNCWXPDFViewer1 to TTMSFNCWXPDFToolbar.Viewer Ok, sorry, there is nothing more to do. Compile and run the app. Click the open file button in the toolbar, select a PDF file from the local file system and it will be loaded. This means, the toolbar will get active and will allow you to browse through the PDF file and the thumbnaillist will be loaded with thumbnails of all pages in the PDF. Click a thumbnail in this list and this page will be displayed in the viewer. Targets Just to avoid confusion, these steps can be performed for a VCL Windows application. But the same steps apply for a FireMonkey application that can target Windows, macOS, Linux, iOS and Android. And it does not stop there, you can do exactly the same after creating a new TMS WEB Core web client application, a TMS WEB Core Miletus cross platform desktop application or a TMS WEB Core PWA, including doing this both from the Delphi IDE or from the Visual Studio Code IDE. And finally, also from the free Lazarus IDE, it can be done from Windows, macOS, Linux. In Delphi, no-code is not a prison The power of Object Pascal component based development is that it isn’t limited to no-code or low-code, it is just a start. Where there are a lot of possibilities to create a lot of useful end-user functionality with little to no-code, Delphi still allows to go “down to the metal” and write code that can use every corner of the operating system (and that includes the web browser as operating system when a web client application is created). The WX components contain numerous properties, event handlers and public methods that allow to further programmatically manipulate the components.  What’s […]

Read More

Delphi 11 Alexandria Defines

uses   System.IOUtils;   procedure TForm1.Button1Click(Sender: TObject); begin   case TOSVersion.Platform of     TOSVersion.TPlatform.pfWindows:       PlatformPath := ‘Windows’;     TOSVersion.TPlatform.pfMacOS:       PlatformPath := ‘macOS’;     TOSVersion.TPlatform.pfiOS:       PlatformPath := ‘iOS’;     TOSVersion.TPlatform.pfAndroid:       PlatformPath := ‘Android’;     TOSVersion.TPlatform.pfWinRT:       PlatformPath := ‘WinRT’;     TOSVersion.TPlatform.pfLinux:       PlatformPath := ‘Linux’   else       PlatformPath := ‘Unexpected platform’   end;     Memo1.Lines.Add(‘TPlatform: ‘+PlatformPath);   Memo1.Lines.Add(TOSVersion.ToString);     {$IF DEFINED(IOS)}     Memo1.Lines.Add(‘Defined: IOS’);   {$ENDIF}   {$IF DEFINED(IOS32)}     Memo1.Lines.Add(‘Defined: IOS32’);   {$ENDIF}   {$IF DEFINED(IOS64)}     Memo1.Lines.Add(‘Defined: IOS64’);   {$ENDIF}     {$IF DEFINED(ANDROID)}     Memo1.Lines.Add(‘Defined: ANDROID’);   {$ENDIF}   {$IF DEFINED(ANDROID32)}     Memo1.Lines.Add(‘Defined: ANDROID32’);   {$ENDIF}   {$IF DEFINED(ANDROID64)}     Memo1.Lines.Add(‘Defined: ANDROID64’);   {$ENDIF}     {$IF DEFINED(MACOS)}     Memo1.Lines.Add(‘Defined: MACOS’);   {$ENDIF}   {$IF DEFINED(MACOS64)}     Memo1.Lines.Add(‘Defined: MACOS64’);   {$ENDIF}   {$IF DEFINED(OSX)}     Memo1.Lines.Add(‘Defined: OSX’);   {$ENDIF}   {$IF DEFINED(OSX64)}     Memo1.Lines.Add(‘Defined: OSX64’);   {$ENDIF}     {$IF DEFINED(MSWINDOWS)}     Memo1.Lines.Add(‘Defined: MSWINDOWS’);   {$ENDIF}   {$IF DEFINED(WIN32)}     Memo1.Lines.Add(‘Defined: WIN32’);   {$ENDIF}   {$IF DEFINED(WIN64)}     Memo1.Lines.Add(‘Defined: WIN64’);   {$ENDIF}     {$IF DEFINED(LINUX)}     Memo1.Lines.Add(‘Defined: LINUX’);   {$ENDIF}   {$IF DEFINED(LINUX32)}     Memo1.Lines.Add(‘Defined: LINUX32’);   {$ENDIF}   {$IF DEFINED(LINUX64)}     Memo1.Lines.Add(‘Defined: LINUX64’);   {$ENDIF}       {$IF DEFINED(DCC)}     Memo1.Lines.Add(‘Defined: DCC’);   {$ENDIF}     {$IF DEFINED(CONSOLE)}     Memo1.Lines.Add(‘Defined: CONSOLE’);   {$ENDIF}     {$IF DEFINED(POSIX)}     Memo1.Lines.Add(‘Defined: POSIX’);   {$ENDIF}   {$IF DEFINED(POSIX32)}     Memo1.Lines.Add(‘Defined: POSIX32’);   {$ENDIF}   {$IF DEFINED(POSIX64)}     Memo1.Lines.Add(‘Defined: POSIX64’);   {$ENDIF}     {$IF DEFINED(CPUX86)}     Memo1.Lines.Add(‘Defined: CPUX86’);   {$ENDIF}   {$IF DEFINED(CPUX64)}     Memo1.Lines.Add(‘Defined: CPUX64’);   {$ENDIF}     {$IF DEFINED(CPU32BITS)}     Memo1.Lines.Add(‘Defined: CPU32BITS’);   {$ENDIF}     {$IF DEFINED(CPU64BITS)}     Memo1.Lines.Add(‘Defined: CPU64BITS’);   {$ENDIF}     {$IF DEFINED(CPUARM)}     Memo1.Lines.Add(‘Defined: CPUARM’);   {$ENDIF}   {$IF DEFINED(CPUARM32)}     Memo1.Lines.Add(‘Defined: CPUARM32’);   {$ENDIF}   {$IF DEFINED(CPUARM64)}     Memo1.Lines.Add(‘Defined: CPUARM64’);   {$ENDIF}     {$IFDEF DEBUG}     Memo1.Lines.Add(‘DEBUG is Defined’);   {$ELSE}     Memo1.Lines.Add(‘DEBUG is Not Defined’);   {$ENDIF} end;

Read More

What Is It Like To Be A Developer David Cornelius?

Hello. This article is part of a series where we speak with professional software developers, ask them what it’s like to write code for a living, and perhaps gain a few insights into the software development industry along the way. Our guest today is a Delphi MVP and author David Cornelius. David describes himself as “a programmer through-and-through”. He runs a small software development business from his home office and seems to have his priorities right when he says “I love family, music, strategy board games, and the great outdoors”. Living, as he does, half-way between the Pacific Ocean and the Cascade Mountains David says means he is offered a wide variety of places to explore—either on a motorcycle or by hiking from a campground. Hi David, thank you for talking to me today Well, it’s very nice to meet you, Ian!! 😁 David, in his “auditioning for James Bond” pose Which Embarcadero product(s) do you use a) the most b) regularly? a & b: Delphi XE, 10.4, 11. Every day. How and/or why did you become a developer? When I was in grade school, my favorite subject was math. I got a programmable TI (Texas Instruments) calculator and would compete with my grandfather on the most complex calculations we could come up with in its limited 32 steps. The small high school I attended had a TRS-80 with a cassette “drive” for storage but I got impatient waiting for it to load/save and with its many retries and errors so lost interest. But later, when the school set up its first computer lab with three Apple IIs, I spent all available time teaching myself AppleSoft BASIC. When I got to the end of the tutorial book and realized a friend of mine was writing games that could not have been done in BASIC alone, I knew there was so much more to learn—I was hooked on programming by that point! Majoring in Computer Science in college was the obvious next step and the rest, as they say, is history. Do you think you will ever stop being a developer? If so, what would be next? No—I have too many ideas to ever stop, even if I sell my house and travel the country in an RV, I’d still be programming part of the time. What made you start using Delphi/C++ Builder? College exposed me to several different programming languages. I studied assembly on three different processors, enjoyed the structure of FORTRAN, got bored with COBOL and dropped the class, looked at some niche languages like SNOBOL, and taught myself C using Mark William’s Let’s C. But the most useful class was one that taught general programming concepts using an inexpensive tool that allowed us to edit, compile, and debug all in one IDE, a new concept in the mid-80s. It was Turbo Pascal. Later at my first long-term programming job, I was given the opportunity to start a brand-new application and I could choose whatever programming tool I wanted. I went with Turbo Pascal, then at version 4, because I already knew how to use it, I could drop to assembly if I needed to (which I actually did occasionally), and it was starting to get popular—it was the logical place to start. As the application grew over the […]

Read More

Free extra components for TMS WEB Core for Visual Studio Code

Earlier this year, we introduced support for installing packages in TMS WEB Core for Visual Studio Code. With packages, TMS WEB Core for Visual Studio Code became easily extensible with lots more components for creating web applications. Together with this introduction, we have also make packages for installing the TMS FNC component family in TMS WEB Core for Visual Studio Code. All FNC components can now be installed & used in TMS WEB Core for Visual Studio Code applications. And this applies both to the trial version as for the full source code based registered version.  Today, we are pleased to inform that also the set of free components offered for TMS WEB Core can also be directly used from TMS WEB Core for Visual Studio Code via new package files included in the component distribution. This includes a component to open .XLSX files, generate vCalendar files, handle ZIP file, generate a QR code or to use WebRTC libraries OpenTok or Jitsi. In addition, it includes a package to install the jQWidgets Smart HTML elements component set or the Vaadin mobile UI component set and use it from TMS WEB Core for Visual Studio Code. Learn everything about free components you can now install with packages in this video by Dr. Holger Flick: If you are a TMS WEB Core enthusiast who already developed custom components, have a look at the TMS WEB Core partner program. Join the program, publish your components and get free TMS WEB Core licenses!  

Read More

New WX Pack component: The OCR helper!

Making your own OCR application has never been easier! Introduced in version 1.1.0.0 of WX pack is the new OCR Helper component, which simplifies the use of the OCR component even further. Creating & loading templates, selecting parts of an image and even getting visual feedback after the OCR process are possible with this component. Basic usage To use the component, you simply drag it on the form, load an image and assign the OCR component. From there, you can start selecting parts of an image on which you want to start the OCR process. If needed you can even save these parts as a template, which you can re-use on other images. This is something you can commonly use on standard document types from where you always want to extract specific content. With the AutoStart option, you can have the OCR process start immediately on every part you select, or you can select multiple parts and start them all at the same time. This will allocate all available OCR workers and enqueue the rest of the parts. Every time a worker is finished and becomes available, the next part will start. Processing these parts will return feedback if enabled. This will highlight the words that do not meet the confidence limits set by the user with optionally 3 different colors for 3 different confidence levels. Learn everything you need to know to get started watching the video below. In this blog article, you can read & see what more the WX component technology offers!

Read More