Noutați

OpenSSF Takes a Collaborative Approach to Open Source Security

Published November 18, 2020 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 Open source software is essential to application development, particularly for the web. At the same time, it also represents a key source of application vulnerabilities. To help make open source software more secure, the Linux Foundation has announced a cross-industry collaboration with open source leaders including GitHub, Google, IBM, JP Morgan Chase, Microsoft, Red Hat, the OWASP Foundation, and others. This collaboration is called the Open Source Security Foundation, or OpenSSF. In an August blog post, Microsoft Azure CTO Mark Russinovich explained the OpenSFF’s impetus and mission as follows: Open source is everywhere and essential for just about every company’s strategy Securing open source is essential to security the supply chain for all parties, including Microsoft itself Because open source software is so widely used, attackers can exploit many vulnerabilities. These cover most critical services and their supporting infrastructures, across industries such as utilities, healthcare, transportation, government, and IT (especially traditional software, cloud services and IoT) The community-driven nature of open source software means no central authority is responsible for its quality control and maintenance Because open source code may be copied and cloned, versioning and dependencies are particularly complex and can be hard to follow Open source is vulnerable to developer attack, wherein attackers can become maintainers of open source projects and introduce malware Given all these factors, especially how complex and intertwined open software can be, it’s fair to say that building and securing open source software must be a community-oriented and -supported effort. The OpenSSF home page states that its first group of technical initiatives will include the following areas of focus:  Vulnerability Disclosures Security Tooling Security Best Practices Identifying Security Threats to Open Source Projects Securing Critical Projects Developer Identity Verification The site also offers related security resources from the OSSC ( an analysis of the Open Source ecosystem in pdf format), the Linux Foundation’s CII  (a discussion of vulnerabilities in the Internet core), and Red Hat’s Product Security Risk Report, to help readers get started on understanding open source threats and mitigation approaches and strategies. The OpenSSF GitHub repository is also likely to be of great interest. What is the Kiuwan response to the formation of the OpenSSF? Kiuwan welcomes the formation of the OpenSFF and Microsoft’s participation and leadership role in that initiative. Because open source is such an important part of application development, the Kiuwan team is excited to see community initiatives that are focused on improving the security of open source projects. Information and collaboration are key tools in combating the proliferation of security threats. Kiuwan solutions currently supports OWASP, the Open Web Application Security Project, as well as FS-ISAC, the Financial Services Information Sharing and Analysis Center, and is open to additional opportunities for promoting application security. How does Kiuwan acquire open source software vulnerability and security data? Kiuwan draws its OSS data primarily from the NIST NVD (National Institute of Standards and Technology’s National Vulnerability Database), with a handful of additional feeds. How does Kiuwan obtain implementation recommendations and best practices […]

Read More

Learn About Using Threads Inside Python For A Windows Delphi App In This Sample

We know Delphi supports Multithreading. Multithreading in Python can be achieved using Python Module Threading. However, In a use case like Delphi Application embedding Python(Python4Delphi) or CPython, the interpreter is not fully thread-safe. In order to support multi-threaded Python programs, there’s a global lock, called the global interpreter lock or GIL, that must be held by the current thread before it can safely access Python objects. Locking the entire interpreter makes it easier for the interpreter to be multi-threaded, at the expense of much of the parallelism afforded by multi-processor machines. Some extension modules, either standard or third-party, are designed so as to release the GIL when doing computationally-intensive tasks such as compression or hashing. Also, the GIL is always released when doing I/O. More Details here. This post will guide you on how to evaluate several python functions concurrently using Python4Delphi TPyDelphiThread. Python4Delphi Demo11 Sample App shows how to achieve concurrency(using more interpreters) inside Python. You can find the Demo11 source on GitHub. Prerequisites: Download and install the latest Python for your platform. Follow the Python4Delphi installation instructions mentioned here. Alternatively, you can check out this video Getting started with Python4Delphi. Components used in Python4Delphi Demo11 App: TPythonEngine: A collection of relatively low-level routines for communicating with Python, creating Python types in Delphi, etc. It’s a singleton class. TPythonModule: It’s inherited from TMethodsContainer class allows creating modules by providing a name. You can use routines AddMethod, AddMethodWithKW to add a method of type PyCFunction. You can create events using the Events property. TPaintBox provides a canvas that applications can use for rendering an image. TPyDelphiThread: Inherited from TThread has properties like ThreadState( A pointer which stores Python last state), ThreadExecMode(emNewState, emNewInterpreter). Protected functions like ExecuteWithPython, Py_Begin_Allow_Threads, Py_End_Allow_Threads helps to run concurrently without thread conflicts. TMemo: A multiline text editing control, providing text scrolling. The text in the memo control can be edited as a whole or line by line. You can find the Python4Delphi Demo11 sample project from the extracted GitHub repository ..Python4DelphiDemosDemo11.dproj. Open this project in RAD Studio 10.4.1 and run the application. Implementation Details: PythonEngine component provides the connection to Python or rather the Python API. This project uses Python3.9 which can be seen in TPythonEngine DllName property. SortModule(TPythonModule) has initialized with 2 Delphi Methods SortModule_GetValue, SortModule_Swap which is imported in python script to perform sorting. 3 arrays are randomized with integer values, later get sorted. Three Sort functions were defined in the script such as BubbleSort, SelectionSort, and QuickSort which is evaluated by PyDelphiThread Instance’s ExecuteWithPython procedure. Note: Don’t override Execute Method, use always ExecuteWithPython. In this Sample, one interpreter Button uses an emNewState(single interpreter with new state and upon execution completion, restores the thread state) ThreadExecMode and three interpreter button use an emNewInterpreter (same as a new state but with new interpreter fully initialized) ThreadExecMode to Execute. procedure TThreadSortForm.InitThreads(ThreadExecMode: TThreadExecMode; script: TStrings); begin RandomizeArrays; ThreadsRunning := 3; with GetPythonEngine do begin OwnThreadState := PyEval_SaveThread; with TSortThread.Create( ThreadExecMode, script, SortModule, ‘SortFunc1’, BubbleSortBox, BubbleSortArray) do OnTerminate := ThreadDone; with TSortThread.Create( ThreadExecMode, script, SortModule, ‘SortFunc2’, SelectionSortBox, SelectionSortArray) do OnTerminate := ThreadDone; with TSortThread.Create( ThreadExecMode, script, SortModule, ‘SortFunc3’, QuickSortBox, QuickSortArray) do OnTerminate := ThreadDone; end; StartBtn.Enabled := False; Start2Btn.Enabled := False; end; 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 procedure TThreadSortForm.InitThreads(ThreadExecMode: TThreadExecMode; script: TStrings); begin   RandomizeArrays;   ThreadsRunning := 3;   with GetPythonEngine do   begin […]

Read More

Learn How To Work With MongoDB Dataset In A Delphi application Quickly Using ListView Sample App

MongoDB is a document database, which means it stores data in JSON-like documents, the most natural way to think about data, and is much more expressive and powerful than the traditional row/column model. How about connecting with MongoDB using FireDAC components in your Application and access the dataset to show in a list view? Don’t know where to start? This post will guide you to do that. MongoDB.ListView Sample App shows how to work with a sample MongoDB Database and show the data in the Listview. You can find Delphi and C++ code samples in GitHub Repositories. Search by name into the samples repositories according to your RAD Studio version. Components used in MangoDB.ListView App: TFDPhysMongoDriverLink: To link the MongoDB driver to an application and set it up. In general, it is enough to only include the FireDAC.Phys.MongoDB unit into your application uses a clause. The TFDPhysMongoDriverLink component can be used to specify: The VendorHome – the MongoDB installation root folder. The VendorLib – the name and the optional path to the MongoDB client library. TFDConnection: To establish a connection to a DBMS and to manage associated datasets. TListView: FireMonkey component that you can use to hold and present various types of items. Implementation Details: Before implementing this, as a preliminary step, we need to have a MongoDB Server is running and accessible from your host. For Details, See Connect to MongoDB Database. The “restaurants” collection of the “test” database is provisioned with test data. To provision this collection, run the MongoDB Restaurants Demo, and click the Load Data button: You can find the MongoDB Restaurants Demo sample project at: Object PascalDatabaseFireDACSamplesDBMS SpecificMongoDBRestaurants This sample application illustrates how to connect to a MongoDB server, select specific documents from a sample collection “restaurants” using a select query, parse the selected document elements (JSON items), and then display the results using the TListView component. Create a select query to retrieve specific documents from the sample MongoDB collection “restaurants” using the TMongoCollection.Find method. Parse elements of the selected documents in one of the following ways: using the TJSONIterator.Find method. using the TJSONIterator.Next, TJSONIterator.Recurse, and TJSONIterator.Return methods. using the TJSONIterator.Iterate method. Display the retrieved data using the TListView component. Check out the full article in the DocWiki about the MongoDB.ListView Sample. MongoDB ListView Sample App Check out the full source code for the MongoDB.ListView projects for Delphi and C++Builder over on GitHub.

Read More

Blastoff Game Created With Open Source DirectX Engine Built In Delphi

Quad Engine is an open source DirectX game engine built in Delphi which also offers bindings for C++ and C#. Blast-off is a showcase game built in the quad Engine and available on Stream. It is described as “Blast-off is a hardcore jumper/runner/shmup, where your alter ego will be a ball of anti-matter seeking to leave our Universe. Anti-matter is extremely difficult to exist in our universe, because when it contact with matter it annihilates. This forces the hero to reach super-fast speed to break through the space-time and break through the limit, where he will find peace in the void.” The game engine itself has 10 different demos showing how to use various features in the engine. Additionally, there is a showcase section with 12 different games plus full source code built with the quad Engine. Quite an impressive feat of engineering in a small package. Game Engine http://quad-engine.com/ (on GitHub) Ready to get started with the latest RAD Studio version? Start Free Trial or Learn More About Upgrading On Steam https://store.steampowered.com/app/391140/Blastoff/ Screenshot Gallery Reduce development time and get to market faster with RAD Studio, Delphi, or C++Builder. Design. Code. Compile. Deploy.Start Free Trial   Learn More About Upgrading

Read More

Learn To Add Custom Text Rendering And Formatting Capabilities To Your Delphi FMX Controls Quickly

Most applications demand high-quality text rendering, resolution-independent outline fonts, and full Unicode text and layout support. Looking for a device-independent text layout system that improves text readability in documents and in UI for Your Delphi/C++ applications? How to build such Text Rendering Capabilities to your FireMonkey controls? This post will guide you. (e.g) Let’s see how to enhance the TLabel control with Rendering and formatting capabilities for the Text in HTML Tags. How to create:1. Create a descendant of TLabel that supports a limited selection of HTML tags. Parse the label for HTML tags every time the text changes.2. Override its Dochanged method to parse the text for HTML tags3. Use Firemonkey’s TTextLayout class to apply formatting attributes to parts of the text. Note: No need to use HTML for formatting instead we can use TTextlayout. TTextLayout is an abstract class that provides mechanisms to render text quickly. Such rendering systems are supported by DirectWrite API (Windows) and Core Text framework (OS X). Also used to calculate glyph positions, measure text, draw text, and covert to curves for path effects and 3D extrusion. To create this class, use TTextLayoutManager – In charge of choosing the appropriate layout class type for the current running platform. Use AddAttribute to assign text block properties like TTextRange (starting position and length) and TTextAttribute (font and color). When changing several properties of the layout, you should use the BeginUpdate and EndUpdate procedures. Use RenderLayout to render the text on a canvas. The PositionAtPoint method returns the position in the text by the position’s coordinates. The RegionForRange method returns the array of the rectangles surrounding the range of the text specified in ARange. Another feature is the ability to convert text to a TPathData object by calling the ConvertToPath procedure. Check out the full Video of creating a Simple FMX HTML control below.

Read More

Get A Visually Stunning FireMonkey App Settings Template For Free Via Embarcadero GetIt

In this FireMonkey App Settings template, you can find three different multi-device templates. And you can learn how to create and design FireMonkey user interfaces. Available on C++ Builder and Delphi Moreover, you can learn how to utilize several components together to make meaningful components. And applying different styles and creating frames to make fast and reliable user interfaces with FireMonkey. You can get these complete FireMonkey UI templates from GetIt Package Manager Be sure to check out another industry FireMonkey UI templates: Be sure to check out all the available sample applications here!

Read More

Useful UX Design Guidelines For Modernizing Your Delphi VCL And FireMonkey Applications In Windows 10

Its already late and time to modernize your Delphi/C++ Application with extensive Windows 10 support, as the support for Windows 7 ended on January 14, 2020. Rad Studio offers robust components and visually stunning styles to modernize your existing applications in Windows 10. This post will give overview some of the Windows 10 specific features introduced in RAD Studio. Features Overview: Quickly and Easily update VCL and FMX applications to Windows 10 with the Windows 10 Controls. Address common UI Paradigms on Windows 10. Range of UI controls specifically designed for windows 10. Built in windows 10 styles for both VCL and FireMonkey applications. Select custom styles for VCL and FireMonkey available for download in GetIt. VCL extensions for HI-DPI, 4k monitors Support. Rad Studio 10.3 includes PerMonitorV2, Multi Resolutions Image List support. Expanded WinRT API and Windows store support. Windows 10 uses Segoe as the Standard font. Some font guidelines which can make your application looks windows 10. Header – Segoe UI Light,46 pt. Sub Header – Segoe UI Light,34 pt. Title– Segoe UI Semi Light,24 pt. Subtitle – Segoe UI Normal,20 pt. Base – Segoe UI Semi Bold 15 pt. Body -Segoe UI Normal,15 pt. Caption -Segoe UI Normal,12 pt. Windows 10 VCL Controls : TSplitView : A container for other controls that can be opened and closed similar to the TMultiView in FireMonkey. When opened, TSplitView can be docked to the left or right edge of the form, or displayed on top of the client area of the form (overlayed). When closed, the TSplitView can be completely hidden (CloseStyle = svcCollapse), or a smaller portion of the split view can remain visible (CloseStyle = svcCompact). TRelativePanel : A container control that allows you to position child controls relative to the panel itself or relative to other child controls of this panel. For more information on how to use the relative panel, see Using the Relative Panel. TToggleSwitch : A clickable control that allows a user to toggle between an On state and an Off state. Flexible to change the caption of the state. TDatePicker and TTimePicker : Control to let users specify a date and time from a pop-up scrolling list of values. TCalenderView : Allows you to customize the look-and-feel of the control. It supports the selection of multiple dates and includes the Month, Year, Decade views. TCardpanel : Use the TCardPanel to manage a collection of cards. Each card is a container for other controls and only one card is active/visible at a time. TStackPanel : Use the TStackPanel to apply homogeneous alignment, margin, and padding settings to a series of controls inside a panel container. Windows 10 Styles For VCL and FireMonkey. You can apply styles to your application to have stunning look and feel. Some of the windows 10 specific styles were built in to the RAD studio. You can check by navigating to Project->Options->Application->Appearance->select some the styles and you can preview the styles as well. Alternatively you can get some VCL and FireMonkey Styles from Tools->Getit Package manger-> Under Styles category-> select the styles which you wish to apply to your application. You also have flexibility to create your own custom styles using the Tools-> BitMap Style Designer. Check the Video New UX Design Principles for RAD Studio Developers in Windows for Demonstration below. Check out the High DPI Styles and VCL Styling Per Control feature introduced in […]

Read More

TMS WEB Core for Visual Studio Code v1.1 released

We are excited to announce the immediate availability of TMS WEB Core for Visual Studio Code v1.1 that now enables developing cross-platform Electron desktop apps and PWA’s. This is a new milestone in the development of RAD component Object Pascal language based web development. The key differentiators of TMS WEB Core for Visual Studio Code are: RAD component based development from the free Visual Studio Code IDE RAD designer using web technology, enabling live, wysiwyg design-time rendering Development directly from Windows, macOS and Linux desktop machine Rich eco system of web related development extensions for the IDE Modern IDE with multiview editing, direct high-DPI/retina support With TMS WEB Core for Visual Studio Code v1.1, we complete the three targets that TMS WEB Core offers. In the new v1.1, we introduce next to classic web client applications the Electron application target and PWA target. Electron The first new target is Electron applications. Electron is a framework that enables to create compiled applications for Windows, macOS and Linux using web technology for rendering and execution of the application. The Electron framework is fully cross platform and at application code level there is nothing to take care off in terms of different platforms. Note that it is thanks to the Electron framework that the hugely popular Visual Studio Code IDE runs on Windows, macOS and Linux directly (and recently also Raspberry Pi target was added recently). As Electron applications run as executables directly on the desktop operating system, this means that extra functionality such as direct local file access, access to all kinds of operating system dialogs (File Open, File Save), toast messages, taskbar notifications, drag & drop support and more … is available. For a TMS WEB Core developer, this is offered through Electron specific components. For direct local or network database access, there are also two dataset components for direct access to mySQL and PostgreSQL. PWA The other new target is Progressive web applications. PWA is perhaps the most promising direction for web client application development. A PWA is a responsive web application that can run offline and can be installed on mobile devices (iOS/Android) and also in desktop browsers like Chrome, Firefox, Edge Chromium. After install, your PWA can be started from an icon on the home screen as if it is a native cross platform application. It can run offline and when online, it will still update itself. So, as a developer there are zero concerns about deployment. With TMS WEB Core for Visual Studio Code v1.1, you simply choose a PWA type from the projects repository and it automatically generates all necessary files for creating a PWA. Everything available for classic web applications and that you learned about it is applicable for the PWA project type. Summary With v1.1, the TMS WEB Core target support is completed. As far as core framework is concerned and the target support, TMS WEB Core for Visual Studio Code is now on par with TMS WEB Core on Delphi. Best of all, the projects are 100% compatible, so Visual Studio Code developers can decide to start using Delphi and continue working on a project and vice versa. Or a Delphi developer on Windows can exchange projects with a colleague using Visual Studio Code on macOS, etc… Availability TMS WEB Core for Visual […]

Read More

A new consulting partner and representative for French speaking TMS/Delphi users : Thierry Laborde

The goal of our consulting partner network was from day one to have local experts speaking the same language and being in the same timezone available for consulting to Delphi developers using TMS components and tools. Since its inception, we work closely together with 5 partners in 5 different areas and speaking at least 5 different languages. We are proud to announce today our new consulting partner and representative for the french speaking TMS/Delphi community: Thierry Laborde! Thierry is no unknown in the Delphi world. Thierry has been a Delphi developer for more than 20 years, since Delphi 1 (and even previously on Pascal and Turbo Pascal) as well as a project leader in different French companies in many different software domains: Accounting, payroll, gambling casino, retail, access control, advertising, bank, health… But Thierry was obviously most visible to Delphi developers in France as technical manager of Embarcadero Developer tools in France at ArrowEcs Company (The Embarcadero distributor in France) for 6 years and later as Embarcadero Country Manager for France for less than 3 years. Thierry has been at Delphi roadshows all over France, gave numerous presentations, organised webinars and wrote blog articles. Thierry Laborde was Delphi Developer certified as well as Delphi Master Developer certified in 2011. What might be less known to Delphi developers and TMS component users, is that Thierry created the foundation of what became the TMS VCL WebGMaps product and Thierry collaborated on the TMS MultiTouch SDK project. It goes without saying that Thierry has a deep expertise not only in Delphi application development but also in component development. As such, we are confident that in his role as consulting partner and representative, Thierry will be able to assist French speaking developers with even the most challenging Delphi projects getting the most out of the TMS components or recommend the right components for the job. Without a doubt, these are exciting times for Delphi developers & TMS component and tools user in France. We are thrilled that the deep Delphi & TMS components expertise and skills from our long-time friend are available again for French speaking customers. Not only can French developers hire Thierry’s expertise, but Thierry will also facilitate that customer feedback, needs, request, … are communicated to the team to improve and extend our products. Reach out to Thierry via france@tmssoftware.com. At the same time, we would like to take the opportunity to mention that we still wish to extend our consulting partner network, foremost in the Asia area, Australia, Canada, South Africa. If you are Delphi developer with TMS component expertise and offering consulting services, get in touch and we will be happy to discuss how we can move forward.

Read More

Learn About Using IBM Watson And The Power Of AI In Delphi And C++Builder

Take your Delphi and C++Builder projects to the next level using the IBM Watson REST API, a collaborative environment with AI tools that you can use to deploy machine learning models and training data. In this webinar, you can learn how to use IBM Watson APIs to make AI applications with your Delphi or C++ Builder applications. Overview of this session: Delphi & C++ Builder Integration with Web and REST Services HTTP native client library SOAP clients REST clients BaaS clients Cloud API IBM Watson AI Services Visual Recognition Tone Analysis (Natural Language Classification) Watson Machine Learning What you can do with Watson APIs Speech to Text – Text to Speech NLP Knowledge Studio Visual Recognition Language Translator Language Classifier AI for IT Operations AI for Customer Service and more Infuse AI in your Delphi and C++ Builder applications to make more accurate predictions, automate processes, and decisions. Be sure to watch the whole session to learn the demos in action and learn best practices!

Read More