Noutați

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

Exploratory Data Analysis for Machine Learning Apps Using FusionCharts And Javascript

AI and machine learning are becoming more and more important in the world of business every day. AI is particularly useful in helping businesses predict trends, like sales forecasts or consumer behavior. Machine learning on the other hand can help a salesforce follow up on sales calls or even predict when customers may be ready to convert. There are plenty of ways AI can help you, but it doesn’t happen on its own. Exploratory data analysis is one of the first steps in developing any machine learning or AI app. It helps data scientists gain key insights and discover trends within numbers. Trends that might not be obvious otherwise. Data visualization is also a key part of exploratory data analysis. In addition, effective data presentation can help companies develop good marketing strategies and promote long-term growth. If you are looking to improve the way your business visualizes its data, FusionCharts is an extensive library that includes 100+ charts and 2000+maps that can be easily integrated into a Javascript app. It has a wide variety of options for creating interactive charts and dashboards, which can be customized according to your data and application. If all this interests you, then read on to find out how you can integrate a FusionCharts presentation in Sencha’s ExtJS app. This blog will teach you how to create a multi-series 2D column chart and a multi-series spline chart. Both these charts are shown below:   Multi-Series Chart (left), Multi-Series Spline (right) The Data Source The data for this app is taken from Global Health Observatory resources run by the World Health Organization. It shows the life expectancy of both males and females in Pakistan, along with the combined data for both groups. The data has been retrieved from the following URL with the given parameters: https://apps.who.int/gho/athena/api/GHO/WHOSIS_000001.json?filter=COUNTRY:PAK&profile=simple With the above query, a JSON object is returned. A part of the JSON text is shown below: { … “fact”: [ { “dim”: { “PUBLISHSTATE”: “Published”, “GHO”: “Life expectancy at birth (years)”, “SEX”: “Male”, “REGION”: “Eastern Mediterranean”, “COUNTRY”: “Pakistan”, “YEAR”: “2000” }, “Value”: “59.3” }, …. } We’ll use the data in the ‘fact’ key to draw the chart or spline. What Are the Steps For Integrating FusionCharts With ExtJS Below are four easy steps that you can follow to develop an ExtJS app with FusionCharts. It is assumed that you already have ExtJS or its trial version installed on your machine. Step 1: Create an Empty ExtJS Project To begin, you need to generate a minimal desktop application using the Ext JS Modern Toolkit. If you are new to Sencha, you can create an empty project by typing at the console: ext-gen app -i Next, follow the instructions at the prompt. Make sure to name your project chart and select the moderndesktopminimal option. You can follow this tutorial to better understanding how to generate a minimal desktop app using the modern toolkit. I have chosen to place all my project files in a folder called fusioncharts-extjs-demo. Step 2: Include FusionCharts Library Open the index.html file located in the main project directory. Add these lines anywhere in the header to include FusionCharts support for rendering charts and themes. Step 3: Add the Main View In the main view, we’ll add the following: The main App heading Two buttons for selecting […]

Read More

How Do I Add An Ultimate AI-Driven Chatbot To My App?

Chatbots are the unctuous umami flavoring to modern enterprise-grade apps. The AI in the chatbot is the secret sauce. What you need is the recipe. A chatbot adds that extra polish to your app, if it’s appropriate to your user base and the app’s purpose. At the most fundamental level the chatbot is simply a computer program which simulates human conversation and is used to engage with your users, taking your app’s human interaction to your user in a very personal way. Implemented correctly, we are able to automate repetitive and bureaucratic tasks which leaves we developers free to focus on – and hopefully solve – the more complex problems. Why add a chatbot to my app? Many companies are examining various processes, such as frequently asked questions and initial trouble-shooting or triaging of support inquiries which they then to put in a flow diagram and structure the requests and responses in the form of a written, or sometimes spoken, dialogue. When chatbots go rogue – “let’s eat Grandma” The hard part about chatting is understanding what is being meant, not what is actually being said. The best and most successful chatbots employ artificial intelligence to help us with the tricky job of understanding whether “let’s eat Grandma” or “let’s eat, Grandma” is an appropriate thing to say prior to a family meal, or an invitation to casual cannibalism. Poor Grandma. Adding scalable AI can help make your app make sense of the nonsense Joking aside, the AI still needs to work out what the intent of a sentence is. If I type “my internet is not working” the AI needs to understand that “the internet” is something that may or may not function and that the internet not working means it is not functioning but the phase “my dad does not work” means he is not currently employed rather than he is non-functional. In a conversation, there are many ways to ask the same thing and it is impossible to prepare your chatbot manually, to predict all of them. Here is where Artificial Intelligence takes our apps to the next level. With it, even asking in a way you did not predict, you get correct answers. You could create your own AI, but far better to use an external tool like Watson (IBM), Google Ai, or Wit.Ai (Facebook). Let’s summarize a menu of a few key ingredients (Grandma is not on the list) which, when combined, will allow you to add a fully-functioning chatbot, with Ai, using Delphi. AI Chatbot Ingredient Number 1: The RESTful API The first is step is to know how to consume and offer API endpoints in  Delphi. The majority of the platforms that you will use to talk with someone are external. This means that you need to send the message from your ChatBot to them. Usually, you will need a Rest API server. Also, you will probably need to consume their REST API endpoints. A great tool to offer API endpoints and create your REST API server is Delphi MVC Framework. It is simple, but robust at the same time. You can check the full implementation of the Delphi MVC Framework here. Consume REST API endpoints are easy with Delphi, you can use the Delphi REST Debugger. You can check a simple way […]

Read More

Exploring ARM on the Desktop

In the next TCoffeeAndCode session at noon CDT on June 30th, we are taking a look at Delphi 10.4.2 on the new desktop Arm based Apple M1 CPU with both MacOS and Windows 10, with a little look at the recently announced Windows 11. I’ll be updating this post with more details of working with the Apple M1 processor and ARM on the desktop. I have an M1 powered Mac Mini running the latest Mac OS and the Windows 10 for ARM in a virtual machine. If you are familiar with the RAD Studio Roadmap you know that the next major release of Delphi will include native support for the Arm based Apple M1 processor. We won’t be covering any of the unreleased versions of Delphi, but instead looking at the compatibility and interoperability of 10.4.2 today.

Read More

Powerful Business Management iOS & Android App

Wood and timber has been a flourishing industry for thousands of years. Some of the oldest traces of early mankind include evidence that we were using wood to make our lives easier; as tables, for leverage on the slabs of Stonehenge, bridge pillars in ancient muddy causeways. Even arrows to helps us obtain meat and food bowls in which to prepare and consume it. The dragon-headed Viking long ships and the more curlicue Mayflower which braved towering seas, the vast beams of old English Tudor houses, and even the great William Shakespeare’s original Globe theater were all made from this versatile material which, quite literally, grows on trees. It’s a relationship which has stood the test of time with very little change while the world around it began to buzz with the sound of electricity and engines. Into this dominion of wood and its products there is room for some modernity. The business of wood, like any, has bills to pay and inventory to manage and what better way to do that down in the wilds of a lumber yard than to have a handheld mobile device which can go where more clunky desktops and laptops might be a hinderance rather than a help. 3LOG LIMS integrates the LIMS System into easy, powerful mobile access LIMS is powerful business management software for the timber and wood products industries. As stated by the developer, “It combines the features of a log or timber accounting system with support for silviculture, wood procurement, contractor payables, vendor and contract management, log and wood products inventory, sales and consumption, business planning, querying, reporting, and accounting. LIMS has proven its capabilities at over 500 sites in North America. Companies from single mills to big names in the forestry industry are using 3LOG software every day. With LIMS, you can configure the system to work the way your company works, and then easily add new business activities without additional programming. For example, if you decide to start trading logs or fiber from a mill that previously only consumed wood, you simply add the customer and your contract and accounting rules, and start entering transactions. The features are already in the system, without additional programming.” Of course, it’s written using RAD Studio Delphi with the flexible yet powerful FireMonkey FMX framework. The 3Log Website Website 3LOG LIMS Apple App Store 3LOG LIMS Google Play 3LOG LIMS Screenshot Gallery RAD Studio Delphi makes writing cross-platform apps much easier and allows you maximum code-reuse to harness the full native power of your user’s devices. Why not download a trial today?

Read More

Framework for creating modern web applications

TMS WEB Core is our framework for creating modern web client applications based on the modern SPA web application architecture. You can develop your web client application using the famous Delphi efficient & productive RAD component based methodology and the fully object oriented and strongly typed Object Pascal language. TMS WEB Core can be used on 3 IDEs: Delphi, Lazarus and Visual Studio Code. TMS WEB Core comes with perpetual license and 1 year of FREE updates & support. Subscriptions can be extended for another year at 70% discount! Get full access to: Web client development from Delphi or the free Lazarus & Visual Studio Code IDE Classic web client apps Progressive web applications Electron or Miletus based cross-platform desktop applications (Win/macOS/Linux) Supports FNC components 70% discount for renewals Yearly renewal only 115 EUR* instead of regular 395 EUR. Full online technical support through TMS Support Center. *The renewal price is 70% discount applied to the new license price at the moment of renewal Act now: Find out more about our Web framework and get your license today! NOTE: If you purchase TMS WEB Core, you get an additional discount of 20% on:

Read More

Modernize Your JavaScript Grids With Sorting, Grouping, And Filtering

When it comes to displaying information there are few JavaScript components as important, or as useful as the Grid. It is one of the primary tools developers use to display, and, more importantly, allow users to view, sort, and interact with large data sets. As a tool, JavaScript Grids allow developers to modernize and accelerate business processes by simplifying the way their users work with data. Grids allow us to render large sets of information without lagging or freezing. They also help considerably reduce the amount of time we spend managing our data. In this article, we will show you how to improve your JavaScript Grids with sorting, grouping, and filtering using Sencha Ext JS. Now, let’s dive in. What is Sencha Ext JS? Sencha Ext JS is a powerful framework for developing cross-platform web and mobile applications. It supports over 150 UI elements, including grids, pivot grids, and D3 adapters. It helps you to develop data-intensive apps quickly and conveniently. How can I Turbocharge my JavaScript Grids with Sorting? One of the reasons the grids are so necessary is that they allow us to determine exactly how data is viewed. With Ext JS Grids, your options are almost unlimited — you can sort your data either by configuration or under program control. You also can perform both single-column and multi-column sorting. Here is an example of single-column sorting: To create the sorting shown above, you have to follow these steps: 1. First, you have to specify the view of the app. Then extend Grid, and specify title and items. Ext.define(‘MyApp.view.Main’, { extend: ‘Ext.grid.Grid’, title: ‘Reykjavik Flight Departures’, items: [{     docked: ‘top’,     xtype: ‘toolbar’,     items: [{         text: ‘Sort on destination’,         handler: function(button){             // Sort under program control             button.up(‘grid’).getStore().sort(‘to’);         }     }] }], 2. Next, you have to sort the data via configuration. store: {       // Sort via store configuration     sorters: [{         property: ‘airline’     }],       type: ‘store’,     autoLoad: true,     fields: [{name: ‘date’,type: ‘date’,dateFormat: ‘j. M’}],     proxy: {type: ‘ajax’,url: ‘departures.json’,reader: {rootProperty: ‘results’}} }, 3. Then you have to define the columns. For more information on how to do this check the source code. 4. Finally, add this code: Ext.application({ name: ‘MyApp’, mainView: ‘MyApp.view.Main’ }); Source Code: You can play with the code on Fiddle. Next, let’s look at multiple-column sorting. All you have to do to achieve this is add multiple sorters via configuration. Here is an example: Source Code: You can find the source code right here. How can I Turbocharge my JavaScript Grids with Grouping? Grids have a grouped config that allows you to conveniently group columns. Here is an example of how to make it happen: To create the grouping shown above, simply follow these steps: 1. Specify the view of the app and title. Also, extend the Grid. Ext.define(‘MyApp.view.Main’, {     extend: ‘Ext.grid.Grid’,     title: ‘Reykjavik Flight Departures’, 2. Set grouped to true. grouped: true, 3. Now, you have to specify the columns. You can find everything on the source code. 4. Next, you have to define the store. store: {         type: ‘store’,         autoLoad: true,         fields: [{name: ‘date’,type: ‘date’,dateFormat: ‘j. M’}],         proxy: {type: ‘ajax’,url: ‘departures.json’,reader: {rootProperty: ‘results’}}     }     }); 5. Then add this code: […]

Read More

The State of Mobile App Security 2021

Published June 24, 2021 WRITTEN BY ED TITTEL. Ed Tittel is a long-time IT industry writer and consultant who specializes in matters of networking, security, and Web technologies. For a copy of his resume, a list of publications, his personal blog, and more, please visit www.edtittel.com or follow @EdTittel The ever-increasing popularity and use of smartphones dwarfs that of more conventional computing devices, such as desktop, laptops, tablets and so forth. Here are some numbers to put things in perspective: according to Statista the total number of mobile devices should reach 17.71B by 2024, up from just over 14B such devices in use in 2020. The same source puts the size of the installed base of PCs worldwide at 1.33B in 2019, with a slight decline over the period from 2013-2019. Interestingly, Microsoft recently claimed 1.3B “active Windows 10 users” which tells us the overwhelming majority of PC users seem to favor their operating system. Putting Mobile Devices Into Proportion The real impact of this comparison, of course, is that mobile devices outnumber PCs by over an order of magnitude. In addition, that balance continues to swing to favor mobile devices ever more firmly. Mobile devices run mobile apps. Indeed this simple observation makes mobile app security crucial, simply because most of the human race (mobile devices currently outnumber humans by almost 2 to 1) uses such devices and the apps to go with them to communicate, access the Internet, and get on with the business of living. The Continuing Sad State of Mobile App Security Even as mobile apps keep proliferating, and more and more users rely on them to learn, work and play, the state of mobile app security can only be described as deplorable. On the one hand, App Annie reported that mobile app usage grew 40% year-over-year in Q2 2020 as compared to the preceding year. On the other hand, security firm Synopsys entitled its most recent survey Peril in a Pandemic: The State of Mobile App Security. The company found that significant causes for concern about the security in mobile apps were both abundant and alarming, primarily owing to three major factors: Commonly used apps that displayed well-known open source vulnerabilities Unsecured and unencrypted sensitive data in mobile application code that present potential points for information leakage and unwanted access and disclosures Frequent assignment of higher levels of access and permission to mobile apps than the “principle of least privilege” (PLP) would allow All of these unsafe programming or administrative practices leave mobile apps overly open to attack and potential compromise. The report analyzed over 3,000 mobile apps and reported some scary statistics – namely: 63% of apps included known security vulnerabilities, with an average of 39 vulnerabilities per app, of which 44% were rated “high risk,” 94% of which had publicly documented fixes, and 73% of which has been reported two or more years ago. Thousands of sensitive data items were exposed in the application code, including over 2K passwords, tokens and keys, over 10K email addresses, and nearly 400K IP addresses and URLs. Use of overly powerful device permissions showed just over 33K instances of normal permissions, with just over 15K of sensitive permissions, and just over 10K of permissions “not intended for third-party use.” What Can (and Should) Mobile Developers Be Doing? […]

Read More