From the blog

A Cornucopia of Tools To Leverage

Delphi and C++ developers have a wide spectrum of available tools to help build solutions for their companies and customers. Beyond just the compiler, IDE, components and libraries, Embarcadero and Idera provide tools you can leverage to get the development done faster and with higher quality. Here is a quick rundown of all of the tools. Developer Tools Delphi and C++Builder (Professional, Enterprise, Architect and Community editions) allow developers to rapidly build multi-platform high-performance native code applications using the Visual Component Library (VCL) controls for Windows 11 and FireMonkey (FMX) components to develop single source projects for Windows, Mac, iOS, Android and Linux. Developers can also use components that work with SQL and NoSQL databases, cloud services and broad IoT connectivity. Delphi and C++Builder are supported by a global ecosystem of component and library vendors, consultants, trainers and book authors. InterBase is an ultrafast, scalable, embeddable SQL database with commercial-grade data security, disaster recovery, and change synchronization. InterBase can be used by developers in four editions: IBLite – Cross-platform, zero-install, embedded database as a direct-access library; InterBase ToGo – Cross-platform, zero-install, embedded database with database-level and column-level AES and DES encryption; InterBase Desktop – Concurrent applications/client access to the database on Windows with database-level and column-level AES and DES encryption; InterBase Server – Ultrafast, scalable, SQL server database for Windows and Linux with commercial-grade data security, disaster recovery and change synchronization. ApiLayer provides more than 60 off-the-shelf, cloud-based APIs to help developers integrate with services including AI & machine learning, computer vision, social media, FinTech, messaging, security, text processing and more. UltraEdit includes a suite of text editing tools for Windows, Mac and LINUX users. Editors are included that support HTML, XML, CSS, Markdown, Unix shell scripts, Hex, text and more. Froala Editor is a lightweight WYSIWYG HTML Editor written in Javascript that enables rich text editing capabilities for your applications. Visual LANSA is a low-code, rapid application development mobile, web, and cloud developers Sencha Ext JS includes an IDE, JavaScript framework and components for building data-intensive, cross-platform web and mobile applications. Whole Tomato Visual Assist integrates with Visual Studio to add functionality for navigation, refactoring, code generation, debugging, and more. FusionCharts includes JavaScript Charting Components that offer 100+ interactive charts and 2,000+ data-driven maps for web and mobile projects. Filestack’s APIs enables developers to build automated content processing and analysis via atech stack for uploading, transforming, understanding, and delivering content within applications and interfaces. Yellowfin’s business intelligence and analytics platform provides action based dashboards, automated data discovery, data storytelling and reports via Javascript and WebServices APIs. DevOps Tools TestRail by Gurock is a comprehensive web-based test case management tool that allows users to efficiently manage, track, and organize software testing efforts to boost testing productivity and increase the speed and soundness of software development. Ranorex Studio provides all-in-one test automation across devices, platforms, and technologies. Automation experts can use the product’s powerful test automation API, while its tools for codeless test creation empower testers to grow their automation skills. All members of cross-functional teams can collaborate on solutions by sharing reusable test automation modules. Travis CI is a continuous integration platform for building and testing software applications. Travis CI integrates with most other tools in the software development lifecycle, making the platform extremely popular with developers and highly complementary […]

Read More

How To Make Facebook Posts From Windows And Mobile Apps

At Softacom, as a software company specializing in mobile and Windows app development using Delphi, we often integrate clients’ software with 3rd party services using API. In this article we show you how to automatically create posts on Facebook from your Delphi apps using the Facebook Graph API. Facebook is the world’s most popular social platform used by businesses to communicate with their clients, and not only.The daily amount of information (texts, videos, images, urls) being posted in Facebook business accounts is huge and keeps growing. That’s why big companies often apply software solutions to distribute content effectively and in time.In this article we’ll show you how to automate the process of content posting and updating through Facebook API (namely Facebook Graph API).We’ll develop a Delphi FMX software application to post on a user’s Facebook page.The whole process can be split into the following steps: Create a Facebook app Make the required adjustments in the app Debug and test queries using the built-in Facebook API debugging tool called Graph API Explorer Develop a Delphi Fmx (cross-platform) software application Post some content on a Facebook page To work with Facebook Graph API we’ll use GET, POST and DELETE methods and requests. The server response will be in JSON format. How to create a Facebook application entry To work with Facebook Graph API you first need to sign in with your Facebook account (sign up if you do not have one). Then you need to go https://developers.facebook.com and register as a developer. Then you need to confirm your email address Select the profile type and click “Complete registration”. To start using the Facebook API you need to create a facebook app in My Apps . Select “Company” application type. Next, enter the application name, select its purpose and click Create App. Next enter your Facebook login password Congrats! You’ve just created a Facebook app.  How do I get an access token so I can write my own apps to post to Facebook? Now we need to get a token to access the page and configure the appropriate permissions to start posting. To get the token run Graph API Explorer. The Graph API Explorer will help us get the access token so that we can execute test queries and post to the page ( Softacom’s test page). To work with the Facebook app select it from the drop-down lis. To get the token to access the page, choose Get Page Access Token from the User or Page. Next, click Continue Select the page you need and save the ID for further posting: Both options have to be turned on. In our case Softacom. Click Further. The access token has been generated. How do I check my app can use the Facebook Graph API? We can test the Facebook Graph API with the built-in debugging tool “Graph API Explorer”. First, let’s test a GET request to get the profile name and identification number. Select your page (Softacom) Set up special permissions for posting (publish_to_groups, page_manage_posts). Click “Generate Access Token” to generate an access token in order to save the permissions settings. Permissions are saved successfully and a new access token has been generated. Now select your page from the list Send the GET request to get the page name and ID to ensure the […]

Read More

Delphi is 27, happy birthday and welcome to the new generation

Happy Birthday Delphi It is meanwhile a regular. It is again February 14 and it is the birthday of Delphi. We celebrate today 27 years! Not including its predecessor Turbo Pascal, it’s for a whole generation of software developers already well over the half of a career that Delphi gives us professional satisfaction as well as bread on the table. But today, I wanted to devote this birthday of Delphi to the next generation. The new generation that is at the start of a new software development career. The new generation that discovers Delphi and is feeling enthusiasm and the new generation for which Delphi still is a valuable & productive tool to accomplish real-life software development tasks that has an impact on people’s lives. Enough said, read the article Stephanie Bracke, our intern this year at TMS software wrote herself or watch the video she made herself! See or read & be amazed about what Stephanie accomplished for Delphi apps that can change people’s lives, including people with disabilities. Bruno Stephanie.Introduce(‘Hello world’); When I first started my internship at TMS software, I felt overwhelmed and that still feels like an understatement, but luckily my mentor Bruno repeatedly told me ( and I needed to hear that every time as well ) that in order to be able to run, you should learn how to walk. To get started and prepare myself during the summer holidays, I was given a two book, the first by Marco Cantù and another by Holger Flick. to try to get myself familiar with the Delphi IDE and also the Object Pascal language.  My project For my first real assignment I was given an open source library called Annyang! And was the task was to study this library and turn this into an easy to use speech to text component for TMS WEB Core.  I feel like creating the TSpeechToText component with Annyang! Is like entering a rabbit hole, in school we learned the basics, but the deeper you go, the more there is to learn!  In short, I created a web application with TMS WEB Core and only one button that starts Annyang. But of course, you can start the engine automatically at application startup or in different ways, if you don’t like that button. You’re as free as a bird here! Once the button on my webpage is clicked, the device microphone gets activated (see red little icon the caption) in your browser and Annyang starts to listen to your command. I added a few commands, for example:  Start -> starts the camera Snap ->takes a picture Listen -> Annyang starts listening to sentences and adds it to the memo Once you activate the “Listen” command, Annyang will still listen to single word commands and execute those as a priority instead of adding the recognized words in a TWebMemo control, whenever that single word is used in a sentence, the entire sentence will be written down without execution of said command. There are also commands like zoom, reset, pause and resume but those are for you to find out in the demo!   The more time I spend using Annyang as a component the more I can think of ways to enhance it, there are just so many ways and possibilities of using this component that I can’t wait to see what […]

Read More

Check your overflows

This topic has concerned me forever, but an exploit I read about a month ago triggered me to finally write something. The exploit itself is fascinating, so in case you haven’t read about it, I’ll leave the link here: https://googleprojectzero.blogspot.com/2021/12/a-deep-dive-into-nso-zero-click.html But what can be so fascinating about a vulnerability?, I can hear you say. We find exploits every day in every product, don’t we? To what I have to answer, “yes, we do”. And, while not the focus of this post, that’s exactly the problem. The exploit This was an exploit in a JBIG2 library. JBIG2 is not designed to execute code, so it is not simple to make it execute code. It is not like a flaw in a PDF javascript implementation, where you get access to the javascript engine when you shouldn’t, and once you are in, you just execute commands. There is nothing to execute here. And yet… The exploit starts simple, with an overflow bug. Basically you sum some numbers, say like: MemoryToAllocate := Length(data1) + Length(data2); …AllocatedMemory := AllocateMemory(MemoryToAllocate); FillWithData(AllocatedMemory); But what happens if I maliciously create a file where Length(data1) is near the maximum an integer can hold and then add the length of data2? In most programming languages, what will happen is that the integer will overflow, so 2147483647 + 1 = -2147483648 And of course, since I have control over both lengths, I can create a file that allocates, say 2 bytes, and then tries to write 100 bytes into the allocated memory, corrupting the stack. And now it is where it gets interesting. We want to execute code, not to corrupt the stack, and as mentioned before JBIG2 doesn’t really execute any code. So how do we continue? Simple: We find out a way to emulate a NAND gate with the stack corruption, and then construct our own computer from those NAND gates, where we can execute any code we want. As the article says, it is not as performant as JavaScript, but it gets the job done. Now you can infect a phone just by sending it a message, without the user even having to click on anything.   The takeaway In computing, we always tend to forget about border conditions. Usually, that works fine: I mean, what are the odds that an integer overflows in day-to-day images? The JBIG2 code was probably correct for virtually 100% of naturally occurring JBIG2 files. But when you add someone maliciously trying to break your code, the situation changes. No matter how small a hole you leave on your wall, someone will use it and build a 6-lane highway to enter your place. Give them a small overflow, and they will make a whole computer out of NAND gates. And what can we do about it? First steps first: we should always stay vigilant, not just about how invalid data can break our program, but more important, how maliciously created, completely-unlikely-to-exist-in-the-real-world data can break our apps.  WE NEED TO ALWAYS CONSIDER HOW SOMEONE COULD MALICIOUSLY ATTACK OUR CODE. IT IS NOT ENOUGH WITH JUST MAKING SURE IT WORKS IN THE EXPECTED OR REASONABLE CASES But I firmly believe that staying vigilant is not enough. We are humans, after all, and humans make mistakes. So we need all the extra help we can get, […]

Read More

5 Examples Of Successful ExtJS Tutorials For Beginners

User interface (UI) is a critical component of a web application and having an attractive UI promotes a positive user experience. Several Javascript frameworks allow web developers to build stunning UI with advanced functionalities. ExtJS or Extended JavaScript is a comprehensive JavaScript framework developed by Sencha to develop data-intensive and cross-platform web and mobile applications using JavaScript. Currently, Ext Js provides more than 140+ UI components such as calendars, grids, trees, lists, forms, menus, toolbars, panels, windows, and hundreds of different extensions. So are you aiming to build high-performing web and mobile UIs using ExtJS? Then go through the following five examples of a successful Ext js tutorial for beginners. How to build an Ext Js application using a modern toolkit? The first step in creating an Ext JS application is generating an application using Sencha’s open tooling. You will use Sencha ext-gen as the application generator and ext-build as the build tool based on Sencha cmd. To use those sencha tools, you need to request them from the Sencha website. Go to ExtJS and click on start free trial. You can fill out the form and get the npm package as a zip download to your email account or directly install it using public npm. Using the free trial version, you can install the Ext Js using the following command from your command-line tool.  npm install -g @sencha/ext-gen If you are a registered customer, you can find all the related packages in Sencha’s private npm registry. You need to log in to access the registry using the below command. It will download the npm packages from the private npm registry. npm login –registry=https://npm.sencha.com/ [email protected] npm install -g @sencha/ext-gen After login, you can type in the following command to generate the new application. ext-gen app -a  Then Your project is generated successfully. Now you can go to the project folder by typing the following command. cd ./modern-app Finally, you can execute your project using the following command, which will open your application in a web browser. npm start After executing these steps, you have been successfully generated your first Ext Js application. How to build a basic layout for your application? Ext Js uses Model View Controller (MVC)  and Model–View–ViewModel (MVVM) design pattern for its generated project structure. The video tutorial discusses the basic structure of an Ext JS application, application build profiles, class system, and MVVM pattern. The main sources code of your application resides in the ‘app’ folder, and the build folder contains build-related code such as testing and production build. The app folder consists of the profiles related to phone, desktop, and shared. The shared folder contains the code shared between the desktop and the phone. Each app folder source code is organized into model and view folders. View folder contains the application’s main view, and there can be different view containers based on your application. Next,  you can find the View model of each main view.js file definition. The view models of each child view file are also located in the main view file.  Your ext Js application also contains an Application.js file, and its instance will be included in the app.js file.  Sencha will automatically create the contents of the Application.js file.  How can you use Ext Js Data Package? Ext Js data package consists […]

Read More

5 Compelling Reasons Why You Need IDE Software

Right now, we’re facing one of the most challenging times in IT. Enterprises are looking to accelerate improvements to keep up with rapidly changing market conditions. Hence, impacting the role of IT and piling more pressure on developers to deliver more business solutions, albeit in shorter time frames and with limited budgets. In this case, we must strive to increase efficiency and productivity. For many of us, this means leveraging the right tools. In this article, we’ll show you why using IDE software matches today’s industry needs.  Let’s dive right in. 1. How can I improve code readability using IDE software? Code readability is one of the most important fundamentals in software development. However, many developers, both new and experienced, struggle to write readable code. Great code readability means easy code maintenance. This is particularly true for teams, where the person writing the code is often different from to the person maintaining the code.  With that being said, IDE software takes the load off you, allowing you to focus on the actual code rather than its readability. Using an IDE, you can incorporate language-specific styling tools to improve readability. Generally, IDEs can recognize keywords and symbols in your code then color codes or formats (bold or italics) for better readability.  2. How can I increase productivity using IDE software? During the software development process, developers leverage various tools- text editors, compilers, and debugging tools. Without IDEs, you have to incorporate, deploy and monitor each tool separately, which can end up being time-consuming and error-prone.  An Integrated Development Environment is a software technology that combines common development tools such as a specialized text editor, a compiler to convert the code into something usable by an end-user, a debugger to find mistakes or unplanned behavior in the program – and several other related tools, into a single framework or user interface. Having the majority of the required tools on the same workbench saves time and ultimately increases developer productivity. This is because you can direct the time and effort needed to learn and use each tool individually into useful work. This can also be seen as a great onboarding tool for new developers looking to understand a team’s architecture.  With IDEs, you can also take advantage of features like intelligent code completion and automatic code creation to minimize code or typo errors. Since it recognizes the programming language you’re working in, an IDE can suggest useful completions which saves the developer from remembering the nuances of a particular function’s arguments and parameters or behavior. This can also increase project completion speed as you don’t have to type out every code line yourself. 3. How can I restructure existing code using IDE software? An IDE allows you the luxury of restructuring your code without affecting any elements’ behavior. What does this mean? Software development projects often involve thousands of lines of code and multiple files and folders. Sometimes, this can get too complex or confusing to maintain, and some changes could simplify things. For example, changing file names, moving files to folders, renaming or reassigning variables, breaking down lines of code into different functions, etc.  IDE software makes these processes seamless. Rather than manually renaming elements in different lines of code, you can simply select one element and effect the change on the […]

Read More

The Top 5 Quick Tips About Automating Development

Increasing technological advances are changing the software development world as we know it, whether that is pure native Windows development or a more blended approach targeting multiple device types. If you don’t keep up there’s a definite nagging doubt that you might get left behind. Organizations and developers alike are beginning to realize how critical development process automation is to the success of any project. By automating build processes, you can speed up application development, free up developers to focus on business-critical solutions, boost productivity, reduce human intervention and errors on repetitive tasks, and ultimately increase ROI.  Unfortunately, in my opinion, many enterprises implement automation the wrong way. For example, in a bid to automate build processes, they may employ the wrong tools that, rather than speed up the process, would slow it down, or even worse, combine too many tools and end up over automating. Practically, no automation effort is without challenges. However, it will definitely live up to all its promises if done correctly. With that in mind, here are a few quick tips to guide your automation process.  How Can You Define Your Automation Strategy? Given automation’s inherent benefits, many organizations are guilty of carelessly employing automation where it seems to make sense, without giving any thought to strategy. Like any IT initiative, to yield rewards, you need to plan for using automation — a robust and well-thought strategy that holds everything in place and prevents mishaps due to lack of foresight.  To drive his point home, senior vice president and business head for cloud, infrastructure, and security services at Infosys likened a “strategy-less” automation journey to embarking on a road trip without a defined destination, a GPS, or a map. You’re not quite sure where your journey ends.  Instead of embarking on a dimensionless automation spree, identify problem areas; small operational areas with business potential, for example, repetitive processes, start from there.  What Is The Right Tool To Manage Your Automation? It takes more than “just technical skills” to successfully manage automation. You need to ensure you’re leveraging tools that will improve operational efficiency and performance. RAD Studio Delphi is the most powerful Object Pascal IDE and component library for single-source multi-platform Native App Development with flexible Cloud services and broad IoT connectivity. It provides modernized VCL controls for Windows 11 and enables FMX development for Windows, Mac, and Mobile. Delphi is your choice for ultrafast Enterprise Strong Development. Enhancements include support for high-DPI and 4K+ screens, extended multi-monitor support, improved Object Inspector, and much more. Delphi is 5x faster for development and deployment across multiple desktops, mobile, cloud, and database platforms, including Windows 11. Successful automation projects require communication and organizational skills. With Delphi’s enhanced Remote Desktop support (for VCL and IDE), you easily collaborate remotely with your team. How Can I Build Automated Security Check-ins? Automation can create an attack surface for vulnerability, as we have seen with recent supply chain attacks. Your pipeline can be compromised in different ways. For example, let’s say you’re running a node.js project and you rely on certain npm packages. If you’re pulling these packages from an online registry, you run the risk of your packages being compromised by malicious code. To avoid this type of attack, you can have a local repository of packages and do a […]

Read More

Grab Your HUGE Delphi Anniversary “Innovation Timeline” Infographic!

Are you curious to see how your favorite programming language has evolved over time and what other advances it has enabled? Does Delphi put your curly brackets all asunder, or are your skills sharpened on C#? Do you recall the different phones you have owned over the years? Are you an Android phone fan, or fiercely loyal to Apple? What versions of Android and iOS were available when Candy Crush first came out?  All the answers to these questions and more are in the Delphi 27th Anniversary “Information Technology Innovation Timeline”, a huge high-resolution, print-quality PDF spanning the history of Delphi from February 1995, when the first version of Delphi was released as an evolution of Object Pascal, until today and the release of Delphi 11 Alexandria.               Get The Printable PDF Evolution, however, does not happen in a bubble – one technology opens the door for dozens of others to flourish. The app stores, the advent of smartphones and the apps that do so much for us today rely on increasingly faster Internet speeds and 3G, 4G and 5G technologies. In the end all the technology advances work together to shape our interaction with them and with each other. Why We Created The Infographic It was interesting for us to see how Delphi’s evolution over the past 27 years coincided with the evolution of computer languages, browsers, operating systems, and smartphones and other devices. We also added the advent of social media platforms, popular apps and digital currencies to create a colossal map of how information technology has evolved over these past three decades. So What’s In The Infographic? Alongside the evolution of Delphi, the 27th Anniversary “Information Technology Innovation Timeline” also looks at: – The evolution of devices, from the first flip phone, the Motorola StarTAC, released in 1996, to the Google Pixel 6 and iPhone 13. – The evolution of computer languages other than Delphi and Object Pascal, from the early days of Python, Visual Basic and HTML to the latest versions of Java, Swift, C# and C++.               – The advent of new operating systems like iOS and Android, and how they changed the way we interact with the world by putting millions of apps in our pockets. – The evolution of browsers like Chrome and Edge, and the advent of social media platforms like Facebook and LinkedIn. Celebrating The Evolution of Information Technology Delphi’s 27th Anniversary “Information Technology Innovation Timeline” is a celebration of the relentless march of innovation and Delphi’s indelible place in it. Download and explore the print-quality PDF here: Get The Printable PDF Joy shared is joy squared! Copy and share the link to the download page with your friends. Here it is: https://tinyurl.com/mr2e9wtk Enjoy! The Embarcadero Team

Read More

Celebrate the Delphi 27th by Doing an Upgrade in Your Skills #Delphi27th

cookielawinfo-checkbox-analytics 11 months This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category “Analytics”. cookielawinfo-checkbox-functional 11 months The cookie is set by GDPR cookie consent to record the user consent for the cookies in the category “Functional”. cookielawinfo-checkbox-necessary 11 months This cookie is set by GDPR Cookie Consent plugin. The cookies is used to store the user consent for the cookies in the category “Necessary”. cookielawinfo-checkbox-others 11 months This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category “Other. cookielawinfo-checkbox-performance 11 months This cookie is set by GDPR Cookie Consent plugin. The cookie is used to store the user consent for the cookies in the category “Performance”. viewed_cookie_policy 11 months The cookie is set by the GDPR Cookie Consent plugin and is used to store whether or not user has consented to the use of cookies. It does not store any personal data.

Read More

Happy 27th Birthday Delphi and a Few Thoughts about Building the Future

My first Pascal, Turbo Pascal and Delphi Experiences I wrote my first Pascal program in 1972 as a Computer Science student at Cal Poly San Luis Obispo. I knew from the beginning that Pascal would be part of my future career in some way. I first met Philippe Kahn at the Comdex Las Vegas 1983 convention when he stopped our Softsel Computer Products (now Merisel) booth. Back then I was running the evaluation, support and training department for this leading software distributor. After talking for awhile about programming, Phillippe gave me Turbo Pascal v1 CPM/80 8 inch and PCDos 5.25 inch floppy disks. I put the PCDos version into my PC and wrote a small program, compiled and ran it. I knew right then that this was a very special developer tool. Then in June of 1985 I had the honor to join Borland in Scotts Valley where I spent 31 years focused on developer tools and developer relations. I was so lucky to be able to participate in the growth of programming and the evolution of what is now Delphi. When I try to describe Delphi to other programmers, they don’t believe that you can use one language, compiler, tools, IDE, components, libraries and frameworks to build cutting edge desktop, mobile, server, cloud, service and many other types of applications. At the Delphi v1 launch in San Francisco during the Software Development Conference, our Borland booth was loaded with excited developers (as the picture at the top of this post shows). On that Valentine’s Day evening, the team introduced Delphi to a packed ballroom. You can view the “Historical Documents” used that night to experience what took place (except for the joy, cheers and thrills). You can also download the original Delphi 1 launch script and project files. Delphi Today Even though I am a semi-retired software engineer and full time developer cheerleader, I continue to read and write code every day using Delphi and C++Builder. I still can’t believe that it’s been 50 years since I wrote my first Pascal program. It’s a privilege to be part of the thriving Delphi developer community. I am always amazed to see what Delphi developers are building and how they are pushing the envelop in software development. What is Delphi? It’s the original Pascal language + modern language extensions + objects + components + interfaces + libraries + frameworks + compilers for multiple platforms + an extensible IDE + a  tools and components ecosystem, a global developer community and a whole lot more. How can Delphi continue to build the future and continue to help make the world a better place? A few simple observations: leverage all of the tools that Embarcadero and Idera provide, keep suggesting new features for Delphi (and provide use cases for each one), report all bugs in Quality Central, write some program code every day, try to build new types of applications, explore new components, check out new APIs and learn from what is happening with other programming languages, IDEs, and platforms. Here’s a challenge: think about building applications that bring people together instead of keeping them apart. A Cornucopia of Tools To Leverage Delphi developers have a wide spectrum of available tools to help build solutions for their companies and customers. Beyond just the compiler, […]

Read More