Noutați

My 7 Favorite Software Development Productivity Tools

There are a huge number of desktop software development tools available on the market. However, not all of them can boost productivity effectively. So, choosing the right one can be tricky. In this post, you will find 7 of my favorite desktop software development tools. They have enabled me to enhance my productivity significantly. Let’s take a look at them. 1. Delphi Delphi is an advanced IDE for developing cross-platform applications on a variety of platforms, including Windows, macOS, iOS, Android, and Linux. It enables you to develop native apps rapidly. Thanks to the powerful designing tools and features. The visual designing menu enables you to drag and drop components to the pallet easily. Also, Delphi supports highly optimized compilers for quickening lengthy compiles. Besides, it helps you to code quickly and accurately by utilizing Code Insight™. Overall, it’s a complete desktop software development productivity tool. 2. RAD Studio RAD Studio is a powerful IDE for building high-performance applications in both Delphi and modern C++. It offers a comprehensive set of tools for streamlining and simplifying the desktop software development lifecycle. You can create user interfaces quickly by dragging and dropping components from Tool Palette to the form. Also, it auto-generates a significant portion of your application codes as soon as you start the project. Besides, UML modeling helps you to improve the performance of your app. So, with the RAD Studio, you get all the productivity features in a single place. 3. REST Debugger REST Debugger helps you to explore and integrate RESTful web services conveniently. You can use it to perform testing across the application development cycle. REST Debugger enables you to test and understand RESTful web services. You can dive right into REST data with filterable JSON blobs to analyze how everything is working. Also, you can copy and paste components from the REST Debugger to Delphi, C++ Builder IDE, and RAD Studio. You don’t have to write any code. So, it can boost your software development productivity. 4. FireDAC FireDAC is a powerful universal data access library. It provides you with all the features to build data-intensive applications conveniently. FireDAC offers high-performance data access. The Live Data Window mode enables you to navigate through large datasets quickly. With Cached updates mode, you can track correlated changes for different datasets easily. Also, FireDAC comes with a powerful data access engine, which you can use with the desktop applications directly. Besides, it supports a unified API for helping you to code without worrying about the subtle differences between different database management systems. 5. Low Code Wizard Low Code Wizard helps you to boost your productivity by generating the framework of an already working application with basic functionalities. So, you don’t have to start from scratch. Once installed, the tool runs a wizard, which guides you through the process of generating basic functionalities quickly. There are a variety of options to choose from, including User Account and Application routines. You can configure the Settings screen to change the theme to light/dark. Also, Low Code Wizard enables you to add more screens to your application with less code. 6. LiveBindings LiveBindings helps you to visualize live data efficiently. You get the creative freedom of presenting the information more intuitively. LiveBindings helps you to bind objects to dataset fields. You can […]

Read More

TMS WEB Core v1.8 Sirolo beta available

TMS WEB Core v1.8 beta is here It was of course highly anticipated and awaited, this new version of TMS WEB Core v1.8 named Sirolo. Sirolo is a small but beautiful town along the Italian coast at the Adriatic sea. After city Ancona (name of TMS WEB Core v1.7 release), it is a nearby little town the Mille Miglia race in 1955 crossed. Other than the reference to this beautiful place, what does TMS WEB Core v1.8 brings on the table for Delphi developers: 1) Miletus support for macOS and Linux After Miletus targeted Windows in TMS WEB Core v1.7, our team now accomplished the phenomenal next step to create cross-platform web technology based desktop applications for Windows, macOS and Linux. And all that with a minimal footprint. On Windows and Linux this means single executable file apps and for macOS the typical application folder but also here with a single application executable file. Deployment can be done via ultra simple XCOPY deployment. In a nutshell, you can create desktop applications from a single source code base from your Delphi IDE on Windows. You do actually not need an Apple mac machine or Linux box to create these applications. The GUI of these applications is rendered in the browser and therefore empowered by HTML5 and CSS3. You can take advantage of existing web application templates to create wonderfull GUIs. Not familiar with Miletus? You can learn all about it from this webinar replay 2) Extended Miletus local databases support In this new version, we added two more possible local databases that can be directly used from a Miletus application and that is Interbase and Firebird. No need here to create a REST API interface, you can directly connect a client dataset to local databases. In v1.8 this is now: MS Access, MS SQL, mySQL, SQLite, Interbase and Firebird.               3) Miletus support to access INI files and registry Convenient for storing application settings, INI files or registry is what developers frequently use. So, from a Miletus app you can now easily access these INI files and the registry in the same way as you can from a VCL or Firemonkey application. Of course, there is no registry on macOS or Linux and here there is automatic fallback on INI files. 4) Two new UI components We have added two new controls to TMS WEB Core v1.8. This is a chatbox control and a rating panel. With the TWebChatbox control, you can write web chat applications with little to no code. Drop this component on the form and all you need to do is write some lines of code to send the message to your chat server of choices or receive messages from there. The other new component is the TWebRatingPanel. This is the classic UI pattern of rating via clicking a number of stars (or other icons of choice). The rating panel offers setting rates in units of 1, 0.5 or fully fractional. 5) SHA1 encryption support in the TWebCrypto component As SHA1 is often needed in communication protocols, we extened the TWebCrypto component that is internally using the browser crypto API to also offer SHA1 support. 6) Lots of smaller improvements and new features Based on your feedback and that of our team, we did […]

Read More

Writing components for TMS WEB Core

Unfortunately, at this time we do not yet have a seminal book like Danny Thorpe’s book “Delphi Component Design” (https://www.amazon.com/Delphi-Component-Design-Danny-Thorpe/dp/0201461366) for component design for TMS WEB Core. It is definitely on our todolist to write a book on TMS WEB Core component design, but until this happened, there are already a couple of resources that we wanted to bundle here that can help you out. Component types There are actually different component types in TMS WEB Core and depending on your needs, you might select the best type that fits. – Components build from HTML elements  In this component type, the component is rendered from HTML elements, like DIV, BUTTON, INPUT, IMG, SELECT, … To render the component, we basically create such HTML elements in the DOM and attach via Object Pascal code technically JavaScript event handlers to the elements and manipulate the HTML element attributes, content & style properties.  As most components included in the TMS WEB Core framework are of this type, the source code of the framework is of course also a great resource to learn from. – Components similar to VCL controls that are based on painting on a canvas A VCL custom control is basically a class that will paint itself and that will react to user interface inputs like mouse, keyboard, touch… The painting in a VCL control is done via drawing on the TCanvas. Well, the good news is that this component model also exists in TMS WEB Core. It can provide an easy way to port existing VCL UI’s to the web. We in fact did this with Tetris game original VCL Delphi code we found for this. You can find all the information in this blog article https://www.tmssoftware.com/site/blog.asp?post=446. Delphi developers should be quickly familiar developing this kind of custom control by descending from the TGraphicControl class and write overrides for OnMouseDown/OnMouseMove/OnMouseUp or OnKeyDown/OnKeyPress/OnKeyUp and also override the Paint method. The TCanvas class in TMS WEB Core has the same interface as TCanvas in VCL, so you will be quickly familiar using a Brush/Pen and methods like LineTo(), Rectangle(), Draw(), … – FNC Components Use the FNC component architecture and develop the component as FNC component that will also work in a web application. This is another approach and comes with the additional benefit that your custom control will not only work in a TMS WEB Core web client application but also in a VCL Windows application or a Firemonkey cross platform application. And it will also work in the free Lazarus IDE with the LCL framework. Component development for FNC is quite similar to VCL or FMX component development. One basically also overrides methods for UI inputs such as keyboard, mouse and touch and performs the drawing of the control. A difference for the drawing is that this is done via the TTMSFNCGraphics context (and not the TCanvas like in VCL). The TTMSFNCGraphics is an abstraction layer that works in all supported frameworks with the same code. A good starting point for beginning to develop FNC custom controls is this blog article https://www.tmssoftware.com/site/blog.asp?post=346.  Other resources Of course, TMS WEB Core full versions ships with the full framework source code, so it is a great learning resource for writing components. In addition to this, we have published several open-source components you can directly […]

Read More

Powerful Data Visualization Using JavaScript Carousels And NASA APIs

Carousels are a great way to allow users to swipe through multiple full-screen pages. A carousel shows only one of its pages at a time but allows you to browse through other pages using a swipe gesture. You can think of a carousel as a single active item, with the rest of the items stretching away left and right. Indicator dots visualize how many available screens are available to swipe through. In this blog post, we’ll look at how we can use NASA APIs to create beautiful JavaScript image carousels for powerful data visualization and analysis. How can I get images from NASA APIs? NASA provides a bunch of APIs to access a variety of astronomical data such as APOD, Asteroids NeoWs, DONKI, Earth, EONET, EPIC, Exoplanet, etc. To use these APIs, you need to have an access token. You can create your access token by registering onto the NASA portal with your email address and password. For demonstration activities throughout this tutorial, we will use the following API calls to NASA to get the images for our Sencha carousel. APOD (current day) APOD (specific day) Earth imagery APOD API (current day) let request = new XMLHttpRequest(); request.open(“GET”, “https://api.nasa.gov/planetary/apod?api_key=”); request.send(); request.onload = () => { if (request.status === 200) { // by default the response comes in the string format, we need to parse the data into JSON console.log(JSON.parse(request.response)); } else { console.log(`error ${request.status} ${request.statusText}`); } }; In the code above, we are calling NASA’s planetary APOD API with no optional query parameters. It means that it will return the astronomical picture of the day for the current day. Notice that the api_key query parameter specifies a placeholder in the above code snippet which should be replaced with your personal API access token before making the API call. Earth Imagery API let request = new XMLHttpRequest(); request.open(“GET”, “https://api.nasa.gov/planetary/earth/imagery?lon=100.75&lat=1.5&date=2014-02-01&api_key=”); request.send(); request.onload = () => { if (request.status === 200) { // by default the response comes in the string format, we need to parse the data into JSON console.log(JSON.parse(request.response)); } else { console.log(`error ${request.status} ${request.statusText}`); } }; In the above code, we are calling NASA’s earth imagery API with a bunch of query parameters. The API will return an earth image at the specified latitude and longitude values. Notice that the api_key query parameter specifies a placeholder in the above code snippet which should be replaced with your personal API access token before making the API call. APOD API (specific day) let request = new XMLHttpRequest(); request.open(“GET”, “https://api.nasa.gov/planetary/apod?date=2020-05-05&api_key=”); request.send(); request.onload = () => { if (request.status === 200) { // by default the response comes in the string format, we need to parse the data into JSON console.log(JSON.parse(request.response)); } else { console.log(`error ${request.status} ${request.statusText}`); } };   In the above code, we are calling NASA’s planetary APOD API with the date as an optional query parameter. It means that it will return the astronomical picture of the day for the specified day. Notice that the api_key query parameter specifies a placeholder in the above code snippet which should be replaced with your personal API access token before making the API call. You can find numerous other NASA APIs at api.nasa.gov. How can I set up a simple horizontal carousel? The response of each API call we used above will either return a link […]

Read More

The 2021 CISSP Exam and Application Security: What’s Changed?

Published July 1, 2021 WRITTEN BY MICHAEL SOLOMON Michael G. Solomon, PhD, CISSP, PMP, CISM, PenTest+, is a security, privacy, blockchain, and data science author, consultant, educator and speaker who specializes in leading organizations toward achieving and maintaining compliant and secure IT environments. The Certified Information Systems Security Professional (CISSP) certification, granted by the International Information System Security Certification Consortium Inc., or (ISC)2, is one of the most prestigious vendor-neutral information systems security leadership certifications. The CISSP certification is a credential that signifies its holder possesses professional experience and demonstrates a high level of knowledge across information systems security domains. (ISC)2 periodically updates the information systems security Common Body of Knowledge (CBK) to reflect the state of today’s organizations and environments. The latest version of the CISSP exam was released on May 1, 2021. This updated exam addresses the latest cybersecurity challenges. Some of the noticeable changes from the previous exam are in the software security domain. New CISSP exam takers must demonstrate a deeper knowledge of developing secure software than those who took previous editions of the exam. Software security has taken on a higher profile. Let’s look at how the 2021 CISSP exam changes add focus on developing secure software. Why the CISSP certification is important The CISSP certification is not the only cybersecurity certification, but it is one of the most respected certifications in the industry. Although criticized as an overly broad certification, its focus is on demonstrating a working knowledge in eight defined domains that cover most cybersecurity concerns. The CISSP exam focuses more on cybersecurity leadership and a grasp of pertinent concepts and topics, as opposed to a deep knowledge of a specialized practitioner. The certification tends to be more sought after by those either in or pursuing management and leadership positions. There are currently over 147,000 CISSPs worldwide, and the certification enjoys international recognition as a high-quality and difficult-to-attain certification. The CISSP was the first information security credential to meet the ISO/IEC 17024 standard requirements, which define criteria for certification-granting organizations. The CISSP is also approved by the Department of Defense to satisfy multiple DoDD 8570 Level III certification requirements. And in May 2020, the UK National Recognition Information Centre (UK NARIC) granted the CISSP a Level 7 ranking, which equates the certification with a master’s degree. The popularity of the CISSP certification, along with its longevity and demonstrated rigor, make it an attractive target for managers and executive leadership in information systems security roles. In short, there are many information systems security leaders who are CISSPs. Whatever (ISC)2 deems important in their CBK and exams will be considered important by its credential holders. Changes to the 2021 CISSP exam related to application security Domain 8 of the CISSP exam is Software Development Security, and it represents 11% of the questions test takers will encounter. The previous edition of the CISSP exam weighted Domain 8 at 10%. A single percentage increase in weight may not seem like very much, but some of the covered content has changed quite a bit. Previous coverage of Software Development Security was a bit generic and high-level, but the 2021 CISSP exam objectives are more granular with some interesting additions.   To give an overview of the CISSP exam objectives, here are the eight domains: Security and Risk Management Asset Security […]

Read More

Mobile With Delphi: The Visually Stunning Wine Unit

Your mobile phone is not the first place to spring to mind when you think of wine. Mankind has had some sort of relationship with wine for centuries, possibly even thousands of years according to some reports. The oldest drinkable wine is known as The Speyer bottle which dates back to Roman times. Anyone who has seen ancient Roman and Greek mosaics will have noticed their apparent pre-occupation with quaffing wines. Our fascination with this liquid entertainment crosses whole continents and cultures, touching almost every form of society and diversity. Our need to protectively contain the fragile and delicate flavors has given rise to a whole host of different containers ranging from the amphorae beloved of the ancients and Bacchus to the barrels of medieval to late industrial times through the bottles and cases which line the shelves of our modern grocery aisles. Ancient wine, modern mobile app These containers had, and have, such a diversity of sizes, shapes, materials and volumes the vintners felt compelled to give them names in order to differentiate them from one another. The names are such an eclectic mix that they often are almost un-guessable as to how much of the boozy liquid they can hold. Is a Jeroboam bigger than a Rehoboam? How many glasses can you get out of a Jennie? (Spoiler alert: it’s three) Wine Unit, helping us know the Balthazars from the Nebuchadnezzars The beautiful Wine Unit, from Belgian developer MICRI Consult, exists to immerse us into this world of wine to your modern mobile device and assist us in selecting and understanding the containers which protect the precious liquid to ensure the full flavor of a far-flung Terroir drifts unharmed on that fulsome bouquet. Written using RAD Studio Delphi the app contains four groups of wine containers: bottles, unusual bottle sizes, barrels and containers. Within each group, the bottles, barrels or containers are compared against each other and you also get their volume in different units. Using the robust cross-platform FireMonkey FMX framework to harness the reins of the mobile device it frees up MICRI Consult to focus on making the app functional and yet beautiful to look at. Google Play Wine Units Screenshot Gallery

Read More

5 Powerful Cryptography Libraries To Enhance Your App’s Security!

What is Cryptography? According to Kaspersky, Cryptography is the study of communications security techniques that allow only the sender and intended recipient of a message to view its contents. Cryptography is closely associated with encryption, which is the act of scrambling ordinary text into what’s known as ciphertext and then back again upon arrival. Modern cryptography exists at the intersection of the disciplines of mathematics, computer science, electrical engineering, communication science, and physics. Applications of cryptography include electronic commerce, chip-based payment cards, digital currencies, computer passwords, military communications, etc. 3 Types of Cryptographic Algorithms According to Kessler, 2021, these are the three types of Cryptographic Algorithms: Secret Key Cryptography (SKC): Uses a single key for both encryption and decryption; also called symmetric encryption. Primarily used for privacy and confidentiality. Public Key Cryptography (PKC): Uses one key for encryption and another for decryption; also called asymmetric encryption. Primarily used for authentication, non-repudiation, and key exchange. Hash Functions: Uses a mathematical transformation to irreversibly “encrypt” information, providing a digital fingerprint. Primarily used for message integrity. Why use Python for Cryptography? Python provides powerful Cryptographic libraries as we will explore them in this article. Python is good for rapid prototyping. Read more here, to see “How Python is Ideal for Solving Mathematically Heavy Problems”: Delphi adds powerful GUI features and functionalities to Python In this tutorial, we’ll build Windows Apps with extensive cryptographic capabilities by integrating Python’s Computer Vision libraries with Embarcadero’s Delphi, using Python4Delphi (P4D). P4D empowers Python users with Delphi’s award-winning VCL functionalities for Windows which enables us to build native Windows apps 5x faster. This integration enables us to create a modern GUI with Windows 10 looks and responsive controls for our Python Computer Vision applications. Python4Delphi also comes with an extensive range of demos, use cases, and tutorials. We’re going to cover the following… How to use hashlib, hmac, secrets, PyCryptodome, and One-Time-Pad Python libraries to perform Cryptographic tasks All of them would be integrated with Python4Delphi to create Windows Apps with Cryptographic capabilities. What are the pre-requisites for using the cryptography libraries? Before we begin to work, download and install the latest Python for your platform. Follow the Python4Delphi installation instructions mentioned here. Alternatively, you can check out the easy instructions found in the Getting Started With Python4Delphi video by Jim McKeeth. Time to get started! First, open and run our Python GUI using project Demo1 from Python4Delphi with RAD Studio. Then insert the script into the lower Memo, click the Execute button, and get the result in the upper Memo. You can find the Demo1 source on GitHub. The behind the scene details of how Delphi manages to run your Python code in this amazing Python GUI can be found at this link. Open Demo01.dproj. 1. How do you perform cryptographic tasks with hashlib? The hashlib module defines an API for accessing different cryptographic hashing algorithms. To work with a specific hash algorithm, use the appropriate constructor function or new() to create a hash object. From there, the objects use the same API, no matter what algorithm is being used. Since hashlib is “backed” by OpenSSL, all of the algorithms provided by that library are available, including: md5 sha1 sha224 sha256 sha384 sha512 Some algorithms are available on all platforms, and some depend on the underlying libraries. […]

Read More

Windows 11: A Beautiful Meteor Will Wipe Out The Dinosaurs

Windows 11 is coming. It’s a fact – and it’s a gorgeous visual tweaking of the Windows desktop, start menu, taskbar and even the rendering of things like your application’s window borders and “non client area”. It’s Microsoft’s new glorious shooting star launching itself at the unwary peoples of the world from out of the clouds… and it’s going to wipe out the dinosaurs. Are you one of the technology dinosaurs? The new Windows 11 “Hello” screen – not massively different from Windows 10 Microsoft’s beautiful unfurling flower of Windows 11 wowed those of us watching that slightly shaky live Windows 11 launch video feed. It had lots of eye candy. Hidden among the schmoozing of rounded corners for all apps and semi-transparent acrylic everywhere were a few signs that Windows 11 is going to also be a coming Armageddon for lots of older PC hardware and a good few existing applications too. The Windows 11 widget panel replaces the pariah that is Windows live tiles Windows 11 is visually stunning Search in Windows 11 I’ve been waving the Fluent UI flag at anyone who would listen for a few years now. We’ve talked about Project Reunion and UI 3 in a few places. Well, with this latest announcement, Project Reunion gets renamed to the slightly less inspiring “Windows App SDK”. There’s a name produced by a group-think committee if I ever saw one. Apart from being about as exciting as an Arizona weather forecast it’s also unhelpfully close to the existing “Windows SDK”. There’s going to be some great moments in podcasts and webinars where presenters discuss “using the Windows SDK” and then having to clarify they actually meant “Windows App SDK which used to be Project Reunion”. The new Windows 11 app launch screen LOTS of semi-transparent acrylic in Windows 11 along with a centered task bar (I’m not a fan of this I have to say) as well as a much less cluttered look which is an achievement since that was one of the key selling points of Windows 10. Windows 11 has a new app store – how will that affect my Windows and mobile apps? The all new Windows 11 app store Tucked in between the massive amounts of semi-transparent acrylic “widget” panels that replace the existing Windows Live Tiles – which were almost entirely shunned by all developers not directly employed by Microsoft – there was an announcement more directly affecting developers using RAD Studio Delphi and C++ Builder. Microsoft are launching a completely re-vamped Windows App Store. The new Windows 11 App Store appears to be a total re-think on Microsoft’s original aims for the Windows Store when it first debuted. In the past the old Microsoft Store had fairly limited success. It’s possible this was due to the way apps had to be packaged for it, the technology your apps needed to employ and the whole delivery mechanism. This new app store is going to be a real game-changer. Microsoft are allowing virtually all packaging mechanisms and, boldest of all, it will contain Android apps which will run natively in Windows 11 without any apparent changes. This new “Windows Subsystem for Android” seems to borrow from the lessons learned with the astounding success of WSL, the Windows Subsystem for Linux. Amazon, your […]

Read More

How To Become The Ultimate World Anagram Champion!

Do you harbor a secret inner desire to be the next Professor Robert Langdon zooming around exotic tourist destinations and the world’s most beautiful landmark cities solving anagrams and saving The World from ancient secret societies? If so, you’d need to enjoy unscrambling fiendishly difficult word tangles to reveal their original form. It’s not easy, but anagrams have existed as pastimes and diversions for as long as society has been able to read and write so we humans must enjoy the challenge. An Android Anagram solver, written in Delphi Don’t worry, luckily your burgeoning aspirations at becoming world anagram champ have a little help from Arizona-based developer ASW Software. Lead by Anthony West, ASW have produced a beautiful Android app which rapidly helps you solve anagrams without having to go to the trouble of obtaining a Professorship in Linguistics. Floccipender is an optimized word descrambler with a simple interface which allows for super-quick solving of scrambled text. Written in RAD Studio Delphi using the powerful cross-platform FireMonkey FMX framework the app looks great and, thanks to the native code generation of RAD Studio, works at the full speed of the user’s mobile device. More on Floccipender Floccipender can solve single word anagrams, scrambled word games and newspaper quiz page anagrams. Here’s what ASW have to say about Floccipender: “the features include the ability to force the app to use all of the letters that are scrambled, or you can specify the minimum word length and Floccipender will find all words that can be created from the scrambled text. The results of the descrambled text is provided in less than a second as Floccipender has been optimized to unscramble words in just a matter of seconds“. Less than a second…on a mobile device. That’s pretty impressive! Website Floccipender Google Play Floccipender Screenshot Gallery

Read More