The PVS-Studio tool
the Viva64 rule set for 64-bit software analysis;
the VivaMP rule set for parallel software analysis;
the general-purpose analysis rule set.
Licensing and pricing policy forPVS-Studio
About the OOO “Program Verification Systems” company
A collection of examples of 64 bit errors in real programsMichael Scovetta
This document provides 30 examples of common 64-bit errors found in real C/C++ programs. The examples cover a wide range of issues like buffer overflows, unnecessary type conversions, incorrect preprocessor directives, pointer/integer confusion, use of deprecated functions, truncation of values during type conversions, undefined functions, legacy code practices, and more. The goal is to help developers identify and avoid such 64-bit porting issues when moving applications to 64-bit systems.
The document summarizes secure coding practices for middleware systems presented at a technical forum. It discusses vulnerabilities found in various middleware systems like Condor, SRB, and MyProxy through static analysis. Common issues included buffer overflows, integer errors, race conditions, and lack of error handling. The presentation recommends techniques like bounds checking, error checking, and synchronization to address these issues in middleware coding.
Microsoft GDI+ JPEG Integer Underflow VulnerabilityAshish Malik
This presentation is about what buffer overflows are, what heap overflows are and how they are exploited. Specifically, focus is on how this is used to exploit jpeg images im Microsoft Windows Systems.
Analysis, Anti-Analysis, Anti-Anti-Analysis: An Overview of the Evasive Malwa...Marcus Botacin
Slides da minha apresentação no Simpósio Brasileiro de Segurança da Informação e de Sistemas Computacionais (SBSEG 2017) referente a minha co-orientação do aluno Vitor Falcão: Um survey sobre técnicas de anti-análise e contramedidas para lidar com software malicioso (malware), includindo técnicas de anti-vm, anti-debug e anti-disassembly.
This document provides an overview of file input/output in C programming. It discusses opening, reading, writing, and closing files, as well as character, line, and formatted I/O with files. Random access in files is explained, along with the fseek() and rewind() functions for repositioning the file pointer. Practice problems are included to reinforce concepts like errors in file I/O code, matching functions to return values, and writing programs to copy, display, and format file contents.
Buffer overflows occur when more data is written to a buffer than it was designed to hold, corrupting the call stack. This can allow arbitrary code execution or modification of return addresses. Developers should use safe string functions, validate user input, grant least privileges, and use compiler tools to help prevent buffer overflows. Reporting vulnerabilities and keeping up to date on security bulletins is also important.
Embedded c program and programming structure for beginnersKamesh Mtec
Embedded C programming is used to program microcontrollers that are found in many electronic devices. It involves writing code in the C language to control the functioning of embedded systems. Some key aspects of embedded C include using data types like char, int and float to store values in memory, keywords to perform specific tasks, and special function registers to access peripherals like ports and timers. The structure of an embedded C program typically involves comments, preprocessor directives, functions, variables and statements to read inputs, perform operations and output results.
Undefined behavior is closer than you thinkAndrey Karpov
Some people think that undefined behavior is caused only by gross errors (accessing outside the bounds of the array, for instance) or inadequate constructions (i = i++ + ++i, for example). That's why it is quite surprising when a programmer sees undefined behavior in the code that used to work correctly, without arousing any suspicion. One should never let his guard down, programming in C/C++. Because hell is closer than you may think.
A collection of examples of 64 bit errors in real programsMichael Scovetta
This document provides 30 examples of common 64-bit errors found in real C/C++ programs. The examples cover a wide range of issues like buffer overflows, unnecessary type conversions, incorrect preprocessor directives, pointer/integer confusion, use of deprecated functions, truncation of values during type conversions, undefined functions, legacy code practices, and more. The goal is to help developers identify and avoid such 64-bit porting issues when moving applications to 64-bit systems.
The document summarizes secure coding practices for middleware systems presented at a technical forum. It discusses vulnerabilities found in various middleware systems like Condor, SRB, and MyProxy through static analysis. Common issues included buffer overflows, integer errors, race conditions, and lack of error handling. The presentation recommends techniques like bounds checking, error checking, and synchronization to address these issues in middleware coding.
Microsoft GDI+ JPEG Integer Underflow VulnerabilityAshish Malik
This presentation is about what buffer overflows are, what heap overflows are and how they are exploited. Specifically, focus is on how this is used to exploit jpeg images im Microsoft Windows Systems.
Analysis, Anti-Analysis, Anti-Anti-Analysis: An Overview of the Evasive Malwa...Marcus Botacin
Slides da minha apresentação no Simpósio Brasileiro de Segurança da Informação e de Sistemas Computacionais (SBSEG 2017) referente a minha co-orientação do aluno Vitor Falcão: Um survey sobre técnicas de anti-análise e contramedidas para lidar com software malicioso (malware), includindo técnicas de anti-vm, anti-debug e anti-disassembly.
This document provides an overview of file input/output in C programming. It discusses opening, reading, writing, and closing files, as well as character, line, and formatted I/O with files. Random access in files is explained, along with the fseek() and rewind() functions for repositioning the file pointer. Practice problems are included to reinforce concepts like errors in file I/O code, matching functions to return values, and writing programs to copy, display, and format file contents.
Buffer overflows occur when more data is written to a buffer than it was designed to hold, corrupting the call stack. This can allow arbitrary code execution or modification of return addresses. Developers should use safe string functions, validate user input, grant least privileges, and use compiler tools to help prevent buffer overflows. Reporting vulnerabilities and keeping up to date on security bulletins is also important.
Embedded c program and programming structure for beginnersKamesh Mtec
Embedded C programming is used to program microcontrollers that are found in many electronic devices. It involves writing code in the C language to control the functioning of embedded systems. Some key aspects of embedded C include using data types like char, int and float to store values in memory, keywords to perform specific tasks, and special function registers to access peripherals like ports and timers. The structure of an embedded C program typically involves comments, preprocessor directives, functions, variables and statements to read inputs, perform operations and output results.
Undefined behavior is closer than you thinkAndrey Karpov
Some people think that undefined behavior is caused only by gross errors (accessing outside the bounds of the array, for instance) or inadequate constructions (i = i++ + ++i, for example). That's why it is quite surprising when a programmer sees undefined behavior in the code that used to work correctly, without arousing any suspicion. One should never let his guard down, programming in C/C++. Because hell is closer than you may think.
The document summarizes the analysis of the Chromium web browser source code using the PVS-Studio static analysis tool. PVS-Studio found few errors in the 460 MB of Chromium code, demonstrating its high quality. Some errors that were found include incorrect array size calculations, meaningless checks, and potential security issues. While some errors were also found in Chromium's libraries and tests, the overall low error density shows the quality of Chromium's code.
Debugging and optimization of multi-thread OpenMP-programsPVS-Studio
The task of familiarizing programmers with the sphere of developing parallel applications is getting more and more urgent. This article is a brief introduction into creation of multi-thread applications based on OpenMP technology. The approaches to debugging and optimization of parallel applications are described.
This article concerns the program VivaVisualCode, showing how to use VivaCore library. VivaVisualCode represents in a graphic form the parse tree of the input source code in C++.
The article describes the main preconditions and stages of development of open VivaCore library intended for code analysis and creation of metaprogramming systems. VivaCore project is a development of OpenC++ library in which support of C and C++ language peculiarities specific for Visual Studio 2005/2008 is implemented.
Changes in programmer tools' infrastructurePVS-Studio
The article describes some observations concerning changes in the infrastructure of tools used by programmers in everyday work. First of all, these changes are related to the release of Visual Studio 2010.
Regular use of static code analysis in team developmentPVS-Studio
Static code analysis technologies are used in companies with mature software development processes. However, there might be different levels of using and introducing code analysis tools into a development process: from manual launch of an analyzer "from time to time" or when searching for hard-to-find errors to everyday automatic launch or launch of a tool when adding new source code into the version control system.
The article discusses different levels of using static code analysis technologies in team development and shows how to "move" the process from one level to another. The article refers to the PVS-Studio code analyzer developed by the authors as an example.
Parallel programs to multi-processor computers!PVS-Studio
Parallel programs can take advantage of multi-processor computers by dividing tasks into independent subtasks that can be solved simultaneously. This approach is known as parallel programming. The document provides an introduction to parallel programming for beginners, including an overview of processes and threads for parallel execution. It also discusses techniques for synchronizing parallel tasks like mutexes, semaphores, and critical sections. The document explains how parallel programs can be run on both multi-processor computers and computer clusters connected by a network.
The tool for programmers VivaMP is intended for helping OpenMP-based parallel software developers. The article gives a brief description of the program product.
Static code analysis for verification of the 64-bit applicationsPVS-Studio
The coming of 64-bit processors to the PC market causes a problem which the developers have to solve: the old 32-bit applications should be ported to the new platform. After such code migration an application may behave incorrectly. The article is elucidating question of development and appliance of static code analyzer for checking out of the correctness of such application. Some problems emerging in applications after recompiling in 64-bit systems are considered in this article as well as the rules according to which the code check up is performed.
Viva64: working up of 64-bit applicationsPVS-Studio
Viva64 is a static code analysis tool that helps detect errors and issues when porting C/C++ applications to 64-bit platforms. It integrates directly with Visual Studio 2005, allowing developers to check for 64-bit portability issues and incorrect code constructions. Viva64 can analyze entire projects and provides detailed diagnostics and references to help developers understand and fix issues. While it cannot replace full testing, using Viva64 during development can significantly improve code quality and reduce bugs when porting to 64-bit.
PVS-Studio advertisement - static analysis of C/C++ codeAndrey Karpov
This document advertises the PVS-Studio static analyzer. It describes how using PVS-Studio reduces the number of errors in code of C/C++/C++11 projects and costs on code testing, debugging and maintenance. A lot of examples of errors are cited found by the analyzer in various Open-Source projects. The document describes PVS-Studio at the time of version 4.38 on October 12-th, 2011, and therefore does not describe the capabilities of the tool in the next versions. To learn about new capabilities, visit the product's site <a>http://www.viva64.com</a> or search for an updated version of this article.
The forgotten problems of 64-bit programs developmentPVS-Studio
Though the history of 64-bit systems development makes more than a decade, the appearance of 64-bit version of OS Windows raised new problems in the sphere of development and testing applications. In the article there are considered some mistakes connected with 64-bit C/C++ code development to OS Windows. The reasons are explained according to which these mistakes didn't find their reflection in the articles devoted to the migration tasks and are unsatisfactorily detected by the majority of static analyzers.
A Collection of Examples of 64-bit Errors in Real ProgramsPVS-Studio
This article is the most complete collection of examples of 64-bit errors in the C and C++ languages. The article is intended for Windows-application developers who use Visual C++, however, it will be useful for other programmers as well.
PVS-Studio advertisement - static analysis of C/C++ codePVS-Studio
This document advertises the PVS-Studio static analyzer. It describes how using PVS-Studio reduces the number of errors in code of C/C++/C++11 projects and costs on code testing, debugging and maintenance. A lot of examples of errors are cited found by the analyzer in various Open-Source projects. The document describes PVS-Studio at the time of version 4.38 on October 12-th, 2011, and therefore does not describe the capabilities of the tool in the next versions. To learn about new capabilities, visit the product's site http://www.viva64.com or search for an updated version of this article.
Comparison of analyzers' diagnostic possibilities at checking 64-bit codePVS-Studio
The article compares a specialized static analyzer Viva64 with universal static analyzers Parasoft C++Test and Gimpel Software PC-Lint. The comparison is carried within the framework of the task of porting 32-bit C/C++ code on 64-bit systems or developing new code with taking into account peculiarities of 64-bit architecture.
A Collection of Examples of 64-bit Errors in Real ProgramsAndrey Karpov
This article is the most complete collection of examples of 64-bit errors in the C and C++ languages. The article is intended for Windows-application developers who use Visual C++, however, it will be useful for other programmers as well.
Lesson 19. Pattern 11. Serialization and data interchangePVS-Studio
Succession to existing data interchange protocols is an important component of the process of porting a program solution to a new platform. You need to provide the capability of reading the existing projects' formats, data interchange between 32-bit and 64-bit processes, etc.
When porting a 32-bit program to a 64-bit platform, you may encounter changes in its logic related to the use of overloaded functions. If a function is overlapped for 32-bit and 64-bit values, the access to it with an argument of a memsize-type will be translated into different calls on different systems.
Even if you correct all compilation errors and warnings, it does not mean that a 64-bit application will work well. So it is the description and diagnosis of 64-bit errors that we will deal with in the most lessons of our course. And one more thing - do not rely on the switch /Wp64 which is described by many people (often unreasonably) in forum discussions as a wonderful tool able to find 64-bit errors.
Monitoring a program that monitors computer networksPVS-Studio
The document discusses several types of errors found using static analysis on the NetXMS open source project codebase. It describes 4 examples of 64-bit errors where pointers are incorrectly cast to 32-bit types. It also mentions errors handling unsigned types like sockets, half-cleared buffers due to misunderstanding string sizes, copy-paste errors, uninitialized variables, null pointer dereferences, and incorrect variable type usage with variadic functions. The author encourages the NetXMS developers to use the static analysis tool to find and address these kinds of issues in their code.
The document summarizes the analysis of the Chromium web browser source code using the PVS-Studio static analysis tool. PVS-Studio found few errors in the 460 MB of Chromium code, demonstrating its high quality. Some errors that were found include incorrect array size calculations, meaningless checks, and potential security issues. While some errors were also found in Chromium's libraries and tests, the overall low error density shows the quality of Chromium's code.
Debugging and optimization of multi-thread OpenMP-programsPVS-Studio
The task of familiarizing programmers with the sphere of developing parallel applications is getting more and more urgent. This article is a brief introduction into creation of multi-thread applications based on OpenMP technology. The approaches to debugging and optimization of parallel applications are described.
This article concerns the program VivaVisualCode, showing how to use VivaCore library. VivaVisualCode represents in a graphic form the parse tree of the input source code in C++.
The article describes the main preconditions and stages of development of open VivaCore library intended for code analysis and creation of metaprogramming systems. VivaCore project is a development of OpenC++ library in which support of C and C++ language peculiarities specific for Visual Studio 2005/2008 is implemented.
Changes in programmer tools' infrastructurePVS-Studio
The article describes some observations concerning changes in the infrastructure of tools used by programmers in everyday work. First of all, these changes are related to the release of Visual Studio 2010.
Regular use of static code analysis in team developmentPVS-Studio
Static code analysis technologies are used in companies with mature software development processes. However, there might be different levels of using and introducing code analysis tools into a development process: from manual launch of an analyzer "from time to time" or when searching for hard-to-find errors to everyday automatic launch or launch of a tool when adding new source code into the version control system.
The article discusses different levels of using static code analysis technologies in team development and shows how to "move" the process from one level to another. The article refers to the PVS-Studio code analyzer developed by the authors as an example.
Parallel programs to multi-processor computers!PVS-Studio
Parallel programs can take advantage of multi-processor computers by dividing tasks into independent subtasks that can be solved simultaneously. This approach is known as parallel programming. The document provides an introduction to parallel programming for beginners, including an overview of processes and threads for parallel execution. It also discusses techniques for synchronizing parallel tasks like mutexes, semaphores, and critical sections. The document explains how parallel programs can be run on both multi-processor computers and computer clusters connected by a network.
The tool for programmers VivaMP is intended for helping OpenMP-based parallel software developers. The article gives a brief description of the program product.
Static code analysis for verification of the 64-bit applicationsPVS-Studio
The coming of 64-bit processors to the PC market causes a problem which the developers have to solve: the old 32-bit applications should be ported to the new platform. After such code migration an application may behave incorrectly. The article is elucidating question of development and appliance of static code analyzer for checking out of the correctness of such application. Some problems emerging in applications after recompiling in 64-bit systems are considered in this article as well as the rules according to which the code check up is performed.
Viva64: working up of 64-bit applicationsPVS-Studio
Viva64 is a static code analysis tool that helps detect errors and issues when porting C/C++ applications to 64-bit platforms. It integrates directly with Visual Studio 2005, allowing developers to check for 64-bit portability issues and incorrect code constructions. Viva64 can analyze entire projects and provides detailed diagnostics and references to help developers understand and fix issues. While it cannot replace full testing, using Viva64 during development can significantly improve code quality and reduce bugs when porting to 64-bit.
PVS-Studio advertisement - static analysis of C/C++ codeAndrey Karpov
This document advertises the PVS-Studio static analyzer. It describes how using PVS-Studio reduces the number of errors in code of C/C++/C++11 projects and costs on code testing, debugging and maintenance. A lot of examples of errors are cited found by the analyzer in various Open-Source projects. The document describes PVS-Studio at the time of version 4.38 on October 12-th, 2011, and therefore does not describe the capabilities of the tool in the next versions. To learn about new capabilities, visit the product's site <a>http://www.viva64.com</a> or search for an updated version of this article.
The forgotten problems of 64-bit programs developmentPVS-Studio
Though the history of 64-bit systems development makes more than a decade, the appearance of 64-bit version of OS Windows raised new problems in the sphere of development and testing applications. In the article there are considered some mistakes connected with 64-bit C/C++ code development to OS Windows. The reasons are explained according to which these mistakes didn't find their reflection in the articles devoted to the migration tasks and are unsatisfactorily detected by the majority of static analyzers.
A Collection of Examples of 64-bit Errors in Real ProgramsPVS-Studio
This article is the most complete collection of examples of 64-bit errors in the C and C++ languages. The article is intended for Windows-application developers who use Visual C++, however, it will be useful for other programmers as well.
PVS-Studio advertisement - static analysis of C/C++ codePVS-Studio
This document advertises the PVS-Studio static analyzer. It describes how using PVS-Studio reduces the number of errors in code of C/C++/C++11 projects and costs on code testing, debugging and maintenance. A lot of examples of errors are cited found by the analyzer in various Open-Source projects. The document describes PVS-Studio at the time of version 4.38 on October 12-th, 2011, and therefore does not describe the capabilities of the tool in the next versions. To learn about new capabilities, visit the product's site http://www.viva64.com or search for an updated version of this article.
Comparison of analyzers' diagnostic possibilities at checking 64-bit codePVS-Studio
The article compares a specialized static analyzer Viva64 with universal static analyzers Parasoft C++Test and Gimpel Software PC-Lint. The comparison is carried within the framework of the task of porting 32-bit C/C++ code on 64-bit systems or developing new code with taking into account peculiarities of 64-bit architecture.
A Collection of Examples of 64-bit Errors in Real ProgramsAndrey Karpov
This article is the most complete collection of examples of 64-bit errors in the C and C++ languages. The article is intended for Windows-application developers who use Visual C++, however, it will be useful for other programmers as well.
Lesson 19. Pattern 11. Serialization and data interchangePVS-Studio
Succession to existing data interchange protocols is an important component of the process of porting a program solution to a new platform. You need to provide the capability of reading the existing projects' formats, data interchange between 32-bit and 64-bit processes, etc.
When porting a 32-bit program to a 64-bit platform, you may encounter changes in its logic related to the use of overloaded functions. If a function is overlapped for 32-bit and 64-bit values, the access to it with an argument of a memsize-type will be translated into different calls on different systems.
Even if you correct all compilation errors and warnings, it does not mean that a 64-bit application will work well. So it is the description and diagnosis of 64-bit errors that we will deal with in the most lessons of our course. And one more thing - do not rely on the switch /Wp64 which is described by many people (often unreasonably) in forum discussions as a wonderful tool able to find 64-bit errors.
Monitoring a program that monitors computer networksPVS-Studio
The document discusses several types of errors found using static analysis on the NetXMS open source project codebase. It describes 4 examples of 64-bit errors where pointers are incorrectly cast to 32-bit types. It also mentions errors handling unsigned types like sockets, half-cleared buffers due to misunderstanding string sizes, copy-paste errors, uninitialized variables, null pointer dereferences, and incorrect variable type usage with variadic functions. The author encourages the NetXMS developers to use the static analysis tool to find and address these kinds of issues in their code.
Study on Different Code-Clone Detection Techniques & Approaches to MitigateCo...IRJET Journal
This document summarizes two techniques for code clone detection - Pyclone and a machine learning-based technique. Pyclone generates code clones based on mutating the abstract syntax tree of input python code. The machine learning technique uses a decision tree classifier and 19 clone metrics to filter out false positive clone classes identified by a clone detection tool. It improved clone detection precision on a python project from 0.94 to 0.98. The document also discusses types of clones, issues with code cloning like vulnerabilities, and approaches to mitigate code reuse attacks through techniques like code randomization and optimization. It notes limitations in detecting type 3 and 4 clones and the need for more data and sophisticated models.
Study on Different Code-Clone Detection Techniques & Approaches to MitigateCo...IRJET Journal
This document summarizes two techniques for code clone detection - Pyclone and a machine learning-based technique. Pyclone generates code clones based on mutating the abstract syntax tree of input python code. The machine learning technique uses a decision tree classifier and 19 clone metrics to filter out false positive clone classes identified by a clone detection tool. It improved clone detection precision on a python project from 0.94 to 0.98. The document also discusses types of clones, issues with code cloning like vulnerabilities, and approaches to mitigate code reuse attacks through techniques like code randomization and optimization. It notes that while type 1-3 clones are easier to detect, type 4 clones remain a challenge requiring future work.
Development of a static code analyzer for detecting errors of porting program...PVS-Studio
The article concerns the task of developing a program tool called static analyzer. The tool being developed is used for diagnosing potentially unsafe syntactic structures of C++ from the viewpoint of porting program code on 64-bit systems. Here we focus not on the problems of porting occurring in programs, but on the peculiarities of creating a specialized code analyzer. The analyzer is intended for working with the code of C/C++ programs.
Monitoring a program that monitors computer networksAndrey Karpov
There exists the NetXMS project, which is a software product designed to monitor computer systems and networks. It can be used to monitor the whole IT-infrastructure, from SNMP-compatible devices to server software. And I am naturally going to monitor the code of this project with the PVS-Studio analyzer.
64-Bit Code in 2015: New in the Diagnostics of Possible IssuesPVS-Studio
64-bit issues are pretty hard to detect because they are like a timebomb: it may take quite a while before they show up. The PVS-Studio static analyzer makes it easier to find and fix such errors. But we have made even a few more steps forward: we have recently revised with more care the 64-bit diagnostics implemented in our tool, which resulted in changing their distribution among severity levels. In this article, I'm going to tell you about these changes and how it affected the tool handling and bug search. You will also find real-life examples of 64-bit errors.
64 bits, Wp64, Visual Studio 2008, Viva64 and all the rest...Andrey Karpov
The purpose of this article is to answer some questions related to safe port of C/C++ code on 64-bit systems. The article is written as an answer to the topic often discussed on forums and related to the use of /Wp64 key and Viva64 tool.
What's the Difference Between Static Analysis and Compiler Warnings?Andrey Karpov
Visiting forums, you can often meet people who believe that compiler warnings are more than enough for controlling the basic types of errors in programs' code. I want to show you that it's a wrong belief.
Specialized static analysis tools and standard compiler warnings are both oriented towards improving the quality of the source code and minimizing potential bugs which are difficult to catch through debugging. One way or another, the compiler relies on static analysis of the source code during compilation to generate its warnings, but the quality of diagnostics and their scope of use vary greatly from one analysis method to another.
Similar to PVS-Studio, a solution for developers of modern resource-intensive applications (20)
"Choosing proper type of scaling", Olena SyrotaFwdays
Imagine an IoT processing system that is already quite mature and production-ready and for which client coverage is growing and scaling and performance aspects are life and death questions. The system has Redis, MongoDB, and stream processing based on ksqldb. In this talk, firstly, we will analyze scaling approaches and then select the proper ones for our system.
Freshworks Rethinks NoSQL for Rapid Scaling & Cost-EfficiencyScyllaDB
Freshworks creates AI-boosted business software that helps employees work more efficiently and effectively. Managing data across multiple RDBMS and NoSQL databases was already a challenge at their current scale. To prepare for 10X growth, they knew it was time to rethink their database strategy. Learn how they architected a solution that would simplify scaling while keeping costs under control.
Digital Banking in the Cloud: How Citizens Bank Unlocked Their MainframePrecisely
Inconsistent user experience and siloed data, high costs, and changing customer expectations – Citizens Bank was experiencing these challenges while it was attempting to deliver a superior digital banking experience for its clients. Its core banking applications run on the mainframe and Citizens was using legacy utilities to get the critical mainframe data to feed customer-facing channels, like call centers, web, and mobile. Ultimately, this led to higher operating costs (MIPS), delayed response times, and longer time to market.
Ever-changing customer expectations demand more modern digital experiences, and the bank needed to find a solution that could provide real-time data to its customer channels with low latency and operating costs. Join this session to learn how Citizens is leveraging Precisely to replicate mainframe data to its customer channels and deliver on their “modern digital bank” experiences.
Northern Engraving | Nameplate Manufacturing Process - 2024Northern Engraving
Manufacturing custom quality metal nameplates and badges involves several standard operations. Processes include sheet prep, lithography, screening, coating, punch press and inspection. All decoration is completed in the flat sheet with adhesive and tooling operations following. The possibilities for creating unique durable nameplates are endless. How will you create your brand identity? We can help!
Generating privacy-protected synthetic data using Secludy and MilvusZilliz
During this demo, the founders of Secludy will demonstrate how their system utilizes Milvus to store and manipulate embeddings for generating privacy-protected synthetic data. Their approach not only maintains the confidentiality of the original data but also enhances the utility and scalability of LLMs under privacy constraints. Attendees, including machine learning engineers, data scientists, and data managers, will witness first-hand how Secludy's integration with Milvus empowers organizations to harness the power of LLMs securely and efficiently.
HCL Notes and Domino License Cost Reduction in the World of DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-and-domino-license-cost-reduction-in-the-world-of-dlau/
The introduction of DLAU and the CCB & CCX licensing model caused quite a stir in the HCL community. As a Notes and Domino customer, you may have faced challenges with unexpected user counts and license costs. You probably have questions on how this new licensing approach works and how to benefit from it. Most importantly, you likely have budget constraints and want to save money where possible. Don’t worry, we can help with all of this!
We’ll show you how to fix common misconfigurations that cause higher-than-expected user counts, and how to identify accounts which you can deactivate to save money. There are also frequent patterns that can cause unnecessary cost, like using a person document instead of a mail-in for shared mailboxes. We’ll provide examples and solutions for those as well. And naturally we’ll explain the new licensing model.
Join HCL Ambassador Marc Thomas in this webinar with a special guest appearance from Franz Walder. It will give you the tools and know-how to stay on top of what is going on with Domino licensing. You will be able lower your cost through an optimized configuration and keep it low going forward.
These topics will be covered
- Reducing license cost by finding and fixing misconfigurations and superfluous accounts
- How do CCB and CCX licenses really work?
- Understanding the DLAU tool and how to best utilize it
- Tips for common problem areas, like team mailboxes, functional/test users, etc
- Practical examples and best practices to implement right away
Discover top-tier mobile app development services, offering innovative solutions for iOS and Android. Enhance your business with custom, user-friendly mobile applications.
AppSec PNW: Android and iOS Application Security with MobSFAjin Abraham
Mobile Security Framework - MobSF is a free and open source automated mobile application security testing environment designed to help security engineers, researchers, developers, and penetration testers to identify security vulnerabilities, malicious behaviours and privacy concerns in mobile applications using static and dynamic analysis. It supports all the popular mobile application binaries and source code formats built for Android and iOS devices. In addition to automated security assessment, it also offers an interactive testing environment to build and execute scenario based test/fuzz cases against the application.
This talk covers:
Using MobSF for static analysis of mobile applications.
Interactive dynamic security assessment of Android and iOS applications.
Solving Mobile app CTF challenges.
Reverse engineering and runtime analysis of Mobile malware.
How to shift left and integrate MobSF/mobsfscan SAST and DAST in your build pipeline.
Monitoring and Managing Anomaly Detection on OpenShift.pdfTosin Akinosho
Monitoring and Managing Anomaly Detection on OpenShift
Overview
Dive into the world of anomaly detection on edge devices with our comprehensive hands-on tutorial. This SlideShare presentation will guide you through the entire process, from data collection and model training to edge deployment and real-time monitoring. Perfect for those looking to implement robust anomaly detection systems on resource-constrained IoT/edge devices.
Key Topics Covered
1. Introduction to Anomaly Detection
- Understand the fundamentals of anomaly detection and its importance in identifying unusual behavior or failures in systems.
2. Understanding Edge (IoT)
- Learn about edge computing and IoT, and how they enable real-time data processing and decision-making at the source.
3. What is ArgoCD?
- Discover ArgoCD, a declarative, GitOps continuous delivery tool for Kubernetes, and its role in deploying applications on edge devices.
4. Deployment Using ArgoCD for Edge Devices
- Step-by-step guide on deploying anomaly detection models on edge devices using ArgoCD.
5. Introduction to Apache Kafka and S3
- Explore Apache Kafka for real-time data streaming and Amazon S3 for scalable storage solutions.
6. Viewing Kafka Messages in the Data Lake
- Learn how to view and analyze Kafka messages stored in a data lake for better insights.
7. What is Prometheus?
- Get to know Prometheus, an open-source monitoring and alerting toolkit, and its application in monitoring edge devices.
8. Monitoring Application Metrics with Prometheus
- Detailed instructions on setting up Prometheus to monitor the performance and health of your anomaly detection system.
9. What is Camel K?
- Introduction to Camel K, a lightweight integration framework built on Apache Camel, designed for Kubernetes.
10. Configuring Camel K Integrations for Data Pipelines
- Learn how to configure Camel K for seamless data pipeline integrations in your anomaly detection workflow.
11. What is a Jupyter Notebook?
- Overview of Jupyter Notebooks, an open-source web application for creating and sharing documents with live code, equations, visualizations, and narrative text.
12. Jupyter Notebooks with Code Examples
- Hands-on examples and code snippets in Jupyter Notebooks to help you implement and test anomaly detection models.
zkStudyClub - LatticeFold: A Lattice-based Folding Scheme and its Application...Alex Pruden
Folding is a recent technique for building efficient recursive SNARKs. Several elegant folding protocols have been proposed, such as Nova, Supernova, Hypernova, Protostar, and others. However, all of them rely on an additively homomorphic commitment scheme based on discrete log, and are therefore not post-quantum secure. In this work we present LatticeFold, the first lattice-based folding protocol based on the Module SIS problem. This folding protocol naturally leads to an efficient recursive lattice-based SNARK and an efficient PCD scheme. LatticeFold supports folding low-degree relations, such as R1CS, as well as high-degree relations, such as CCS. The key challenge is to construct a secure folding protocol that works with the Ajtai commitment scheme. The difficulty, is ensuring that extracted witnesses are low norm through many rounds of folding. We present a novel technique using the sumcheck protocol to ensure that extracted witnesses are always low norm no matter how many rounds of folding are used. Our evaluation of the final proof system suggests that it is as performant as Hypernova, while providing post-quantum security.
Paper Link: https://eprint.iacr.org/2024/257
Main news related to the CCS TSI 2023 (2023/1695)Jakub Marek
An English 🇬🇧 translation of a presentation to the speech I gave about the main changes brought by CCS TSI 2023 at the biggest Czech conference on Communications and signalling systems on Railways, which was held in Clarion Hotel Olomouc from 7th to 9th November 2023 (konferenceszt.cz). Attended by around 500 participants and 200 on-line followers.
The original Czech 🇨🇿 version of the presentation can be found here: https://www.slideshare.net/slideshow/hlavni-novinky-souvisejici-s-ccs-tsi-2023-2023-1695/269688092 .
The videorecording (in Czech) from the presentation is available here: https://youtu.be/WzjJWm4IyPk?si=SImb06tuXGb30BEH .
HCL Notes und Domino Lizenzkostenreduzierung in der Welt von DLAUpanagenda
Webinar Recording: https://www.panagenda.com/webinars/hcl-notes-und-domino-lizenzkostenreduzierung-in-der-welt-von-dlau/
DLAU und die Lizenzen nach dem CCB- und CCX-Modell sind für viele in der HCL-Community seit letztem Jahr ein heißes Thema. Als Notes- oder Domino-Kunde haben Sie vielleicht mit unerwartet hohen Benutzerzahlen und Lizenzgebühren zu kämpfen. Sie fragen sich vielleicht, wie diese neue Art der Lizenzierung funktioniert und welchen Nutzen sie Ihnen bringt. Vor allem wollen Sie sicherlich Ihr Budget einhalten und Kosten sparen, wo immer möglich. Das verstehen wir und wir möchten Ihnen dabei helfen!
Wir erklären Ihnen, wie Sie häufige Konfigurationsprobleme lösen können, die dazu führen können, dass mehr Benutzer gezählt werden als nötig, und wie Sie überflüssige oder ungenutzte Konten identifizieren und entfernen können, um Geld zu sparen. Es gibt auch einige Ansätze, die zu unnötigen Ausgaben führen können, z. B. wenn ein Personendokument anstelle eines Mail-Ins für geteilte Mailboxen verwendet wird. Wir zeigen Ihnen solche Fälle und deren Lösungen. Und natürlich erklären wir Ihnen das neue Lizenzmodell.
Nehmen Sie an diesem Webinar teil, bei dem HCL-Ambassador Marc Thomas und Gastredner Franz Walder Ihnen diese neue Welt näherbringen. Es vermittelt Ihnen die Tools und das Know-how, um den Überblick zu bewahren. Sie werden in der Lage sein, Ihre Kosten durch eine optimierte Domino-Konfiguration zu reduzieren und auch in Zukunft gering zu halten.
Diese Themen werden behandelt
- Reduzierung der Lizenzkosten durch Auffinden und Beheben von Fehlkonfigurationen und überflüssigen Konten
- Wie funktionieren CCB- und CCX-Lizenzen wirklich?
- Verstehen des DLAU-Tools und wie man es am besten nutzt
- Tipps für häufige Problembereiche, wie z. B. Team-Postfächer, Funktions-/Testbenutzer usw.
- Praxisbeispiele und Best Practices zum sofortigen Umsetzen
Your One-Stop Shop for Python Success: Top 10 US Python Development Providersakankshawande
Simplify your search for a reliable Python development partner! This list presents the top 10 trusted US providers offering comprehensive Python development services, ensuring your project's success from conception to completion.
5th LF Energy Power Grid Model Meet-up SlidesDanBrown980551
5th Power Grid Model Meet-up
It is with great pleasure that we extend to you an invitation to the 5th Power Grid Model Meet-up, scheduled for 6th June 2024. This event will adopt a hybrid format, allowing participants to join us either through an online Mircosoft Teams session or in person at TU/e located at Den Dolech 2, Eindhoven, Netherlands. The meet-up will be hosted by Eindhoven University of Technology (TU/e), a research university specializing in engineering science & technology.
Power Grid Model
The global energy transition is placing new and unprecedented demands on Distribution System Operators (DSOs). Alongside upgrades to grid capacity, processes such as digitization, capacity optimization, and congestion management are becoming vital for delivering reliable services.
Power Grid Model is an open source project from Linux Foundation Energy and provides a calculation engine that is increasingly essential for DSOs. It offers a standards-based foundation enabling real-time power systems analysis, simulations of electrical power grids, and sophisticated what-if analysis. In addition, it enables in-depth studies and analysis of the electrical power grid’s behavior and performance. This comprehensive model incorporates essential factors such as power generation capacity, electrical losses, voltage levels, power flows, and system stability.
Power Grid Model is currently being applied in a wide variety of use cases, including grid planning, expansion, reliability, and congestion studies. It can also help in analyzing the impact of renewable energy integration, assessing the effects of disturbances or faults, and developing strategies for grid control and optimization.
What to expect
For the upcoming meetup we are organizing, we have an exciting lineup of activities planned:
-Insightful presentations covering two practical applications of the Power Grid Model.
-An update on the latest advancements in Power Grid -Model technology during the first and second quarters of 2024.
-An interactive brainstorming session to discuss and propose new feature requests.
-An opportunity to connect with fellow Power Grid Model enthusiasts and users.
Skybuffer SAM4U tool for SAP license adoptionTatiana Kojar
Manage and optimize your license adoption and consumption with SAM4U, an SAP free customer software asset management tool.
SAM4U, an SAP complimentary software asset management tool for customers, delivers a detailed and well-structured overview of license inventory and usage with a user-friendly interface. We offer a hosted, cost-effective, and performance-optimized SAM4U setup in the Skybuffer Cloud environment. You retain ownership of the system and data, while we manage the ABAP 7.58 infrastructure, ensuring fixed Total Cost of Ownership (TCO) and exceptional services through the SAP Fiori interface.
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor IvaniukFwdays
At this talk we will discuss DDoS protection tools and best practices, discuss network architectures and what AWS has to offer. Also, we will look into one of the largest DDoS attacks on Ukrainian infrastructure that happened in February 2022. We'll see, what techniques helped to keep the web resources available for Ukrainians and how AWS improved DDoS protection for all customers based on Ukraine experience
"Frontline Battles with DDoS: Best practices and Lessons Learned", Igor Ivaniuk
PVS-Studio, a solution for developers of modern resource-intensive applications
1. PVS-Studio, a solution for developers of modern resource-intensive applications OOO “Program Verification Systems” (Co Ltd) www.viva64.com
2. The PVS-Studio tool the Viva64rule set for 64-bit software analysis; the VivaMPrule set for parallel software analysis; the general-purpose analysis rule set. Licensing and pricing policy forPVS-Studio About the OOO“Program Verification Systems” company Contents
4. PVS-Studio is a static code analyzer intended for developers of contemporary resource-intensive software PVS-Studio includes three sets of diagnostic rules: Viva64 intended for detecting errors of 64-bit software development and migration; VivaMP intended for detecting parallel issues in source code of software developed with the OpenMP technology; General-purpose analysis for detecting general errors such as misprints, buffer overflows, condition errors, etc.
5. errors accompanying porting of 32-bit software to 64-bit systems; errors accompanying development of new 64-bit software; errors in parallel applications caused by programmers’ insufficient knowledge of the OpenMP technology; errors caused by incorrect memory handling in parallel code (unprotected memory access, absence of synchronization, incorrect variable access mode and so on); logical errors, incorrect use of algorithms and containers, buffer overflows; misprints brought into the text during copying of code fragments or through inattention; non-optimal constructs that can be easily optimized. PVS-Studio detects the following types of issues in C/C++ code
6. develop new 64-bit software; port 32-bit code to 64-bit systems; provide software with support of concurrent execution using the OpenMP technology; want to enhance code’s quality and safety; want to detect as many errors as possible already at the stage of developing. The PVS-Studio code analyzer is necessary for those who
8. PVS-Studio’s features integration into Visual Studio2005/2008/2010; C and C++ support; C++0x support within the framework of Visual Studio 2010; detailed help system (including the Russian language); usability; convenient error filtering and suppression system; analysis of files in concurrent mode.
19. Problem with overloaded virtual functions Base class: classCWinApp { virtualvoidWinHelp(DWORD_PTR, UINT); }; User’s code: class CMyApp : public CWinApp { virtualvoidWinHelp(DWORD, UINT); }; 32-bit system: 64-bit system:
20. Address arithmetic with pointers int A = -2; unsigned B = 1; int array[5] = { 1, 2, 3, 4, 5 }; int *ptr = array + 3; ptr = ptr + (A + B); printf("%i", *ptr); VariableAtype intis cast to type unsigned; A and B addition is carried out. As a result, we obtain value 0xFFFFFFFF typeunsigned; Expression "ptr + 0xFFFFFFFFu“ is calculated. The result depends on pointer dimension on the given platform. In a 32-bit program, the expression will be equivalent to "ptr - 1" and we will successfully print number 3. Ina 64-bit program, value 0xFFFFFFFFu will be added to the pointer, as a result, the pointer will appear far beyond the array limits.
21. Infinite loops boolIsPresent(char *array, size_tarraySize, char key) { for (unsigned i = 0; i != arraySize; ++i) if (array[i] == key) return true; return false; } This code will lead to an infinite loop occurrence if arraySize exceeds value UINT_MAX.Detection of such errors using unit-tests or dynamic analyzers (BoundsChecker) is extremely complicated by the necessity of running on large data sizes. During processing of a small data size, the error will not be detected.
22. Errors in shift operations ptrdiff_t SetBitN(ptrdiff_t value, unsigned bitNum) { ptrdiff_t mask = 1 << bitNum; return value | mask; } Code of the given bit setting in unit. The first error consists in character variable shift.During 31st bit setting on a 64-bit system, the result of the function operation will be the value 0xffffffff80000000 The second error is connected with the fact that this code will never set bits with numbers 32 to 63. Please note that "1" has typeint, and during shift by 32 positions, overflow will occur.Whether we obtain as a result 0 (A) or 1 (B) depends on the compiler implementation.
23. Errors of magic numbers use #define N_COUNT 100 int **pArray = (int**) malloc(N_COUNT * 4); hFileMapping = CreateFileMapping ( (HANDLE) 0xFFFFFFFF, NULL, PAGE_READWRITE, (DWORD) 0, (DWORD) (szBufIm), (LPCTSTR) &FileShareNameMap[0]); size_t n, newexp; n = n >> (32 - newexp); The most widespread magic values which are dangerous during applications porting from a 32-bit to a 64-bit platform
24. Overflow in arithmetic expressions in which 32-bit and 64-bit data types are used together ptrdiff_t UnsafeCalcIndex(int x, int y, int width) { return x + y * width; } ... intdomainWidth = 50000; intdomainHeght = 50000; for (int x = 0; x != domainWidth; ++x) for (int y = 0; y != domainHeght; ++y) array[UnsafeCalcIndex(x, y, domainWidth)] = 1; This code cannot fill correctly the array, which consists of 50000*50000 elements. During calculation of the expression "x + y * width"overflow occurs, and, as a result, outbounds the array limits.
25. Errors of implicit type cast size_t __fread(void * __restrict buf, size_t size, size_t count, FILE * __restrict fp); size_tfread(void * __restrict buf, size_t size, size_t count, FILE * __restrict fp) { int ret; FLOCKFILE(fp); ret = __fread(buf, size, count, fp); FUNLOCKFILE(fp); return (ret); } Function __freadreturns type size_t, however, for storing the quantity of read bytes, type int is used. As a result, in case of large sizes of the data being read, the function can return the wrong quantity of bytes which will be read in fact.
26. The example shown above was taken from FreeBSDsource code.The error was corrected in December 2008 only!With that, the first (pilot) 64-bit FreeBSDversion was released as far back as June 2003.
27. Patterns of 64-bit errors in the code were explored in more than 100 various articles in printed and electronic media. Our own experience in computational modeling packages code migration and visualization in C++ was considered. During the research, a base consisting of dozens of various error patterns connected with code migration to 64-bit systems was created. Both well-known (published) errors and earlier unknown errors were included in the base. Rules of diagnostics were formulated on the basis of detected error patterns. Both error patterns and diagnostic rules are published in our articles and are available to everyone. How we made 64- bit code analyzer
28. Comparison: Viva64,VC++ (/Wp64), C++Test and PC-Lint The table presents comparison carried out at the end of 2008. Nowadays, PVS-Studio has much more capabilities.
29. E.G.S. S.r.l. Company is engaged in the development of solutions in the sphere of 3D objects modeling on the basis of triangulated grids. Use of Viva64 for verification of CAD-system Leios Studio by EGS S.r.l.
30. Use of Viva64 for verification of CAD-system Leios Studio by EGSS.r.l. (continued) The total size of Leios Studiosource code is 13 megabytes (440,000 code lines). Code migration with the use of Viva64 allowed to save much time which would be needed in case of manual code review. The main problem cases detected in the process of automatic code analysis with the help of Viva64 tool are: Computational algorithms features during processing of large data volumes; Work with large size files; Processing of 3d-models containing large number of triangles (the larger the number of triangles is, the more precise the models are); Work of licensing subsystem; Details: http://www.viva64.com/en/a/0036/
31. Project size: 1.5Mb, 125files Potentially dangerous constructions detected with the help of Viva64: 89 Of which real errors: 6 Statistics on detected erroros in Loki library http://loki-lib.sourceforge.net Details: http://www.viva64.com/en/a/0049/
32. VivaMP, a rule set for parallel (OpenMP) software analysis
33. Problems in the code of programs using OpenMP Absence of keywords in directives Incorrect operating with locking Dependence of code behavior on the quantity of threads processing it Simultaneous work with common resource Vulnerable access to common memory Careless use of local variables Unnecessary memory protection from simultaneous writing Performance errors
35. Non processed exceptions in parallel sections #pragmaomp parallel for for (size_t i = 0; i != n; ++i) { float *array =new float[10000]; delete [] array; } The example will lead to incorrect behavior of the program and most likely to its abnormal termination, if memory allotment error occurs. The error is related to the exception throwing from the parallel section. According to OpenMP specification, if you use exceptions inside a parallel section,all these exceptions should be processed inside this section. If you use operator new inside a parallel section, you should consider seizing the exception which, according to C++ language standard will be generated at memory allotment error.
37. Race condition errors int a = 0; #pragmaomp parallel for num_threads(4) for (inti = 0; i < 100000; i++) { a++; } Race condition happens when several threads of a multithread application attempt to simultaneously gain access to data, with that, at least one thread is making a record. Race conditions can lead to unpredictable results, and they are often hard to detect. Sometimes, race conditions consequences show only after a long period of time in quite another part of the application. Moreover, errors of such kind are extremely difficult to duplicate. It is extremely effective to detect at least some of such errors with the help of static analysis as early as at the code writing stage.
38. Errors of initialization of static objects in parallel sections pragmaomp parallel { static intst = Calc(); ... } The static variable will start the process of initialization in several threads at once, this can lead to an uncertain result.The troubles of such errors consist in their unstable and rare manifestation during testing.
40. The main advantage of static analysis is that it can detect errors at the very early stages Correlation of the cost on eliminating defects depending on the time they were introduced and found. The data for the table were taken from the book “Code complete” by S. Macconnell.
41. It is beneficial to detect any type of errors at the coding stage It is not crucial how complicated an error is: whether this is a mere misprint or error of algorithm’s logic. It is very beneficial to detect at least a part of such errors already at the stage of coding. It significantly reduces costs on code testing and maintenance. The PVS-Studio analyzer diagnoses a lot of diverse types of errors. We cannot enumerate all the types of errors it can detect, so please refer to the documentation for the list of provided diagnoses. Documentation (online): http://www.viva64.com/en/d/
42. Here are samples of errors the general-purpose analyzer can detect
43. Incorrect condition intiChilds[2]; ... boolhasChilds() const { return(iChilds > 0 || iChilds > 0); } Although this code successfully compiles without any warnings, it is meaningless in this case. The correct code must look as follows: intiChilds[2]; ... boolhasChilds() const { return(iChilds[0] > 0 || iChilds[1] > 0); }
44. Reference to an already destroyed object structCVariable { char name[64]; }; void CRendererContext::RiGeometryV(int n, char *tokens[]){ for (i=0;i<n;i++) { CVariablevar; if (parseVariable(&var, NULL, tokens[i])) tokens[i] = var.name; } } The pointer to an array located in a variable of the CVariable type is saved in an external array. As a result, the "tokens" array will contain pointers to already non-existent objects as the RiGeometryVfunction terminates.
45. Incomplete buffer clearing MD5Context *ctx; ... memset(ctx, 0, sizeof(ctx)); The misprint here causes the structure to be cleared only partially. The error in this code is that it is the size of the pointer which is calculated instead of the MD5Context structure’s size. This is the correct code: MD5Context *ctx; ... memset(ctx, 0, sizeof(*ctx));
46. Error in the if - else - if - else chain if (a == 1) Foo1(); else if (a == 2) Foo2(); else if (a == 1) Foo3(); The 'Foo3()' function will never get control.
47. Misprint. Double assignment. CSize(POINT pt) { cx = pt.x; cx = pt.y; } The code is taken from a real application where the programmer implemented his own classCSize. The correct code certainly must have looked this way: CSize(POINT pt) { cx = pt.x; cy = pt.y; } Misprint. Unnecessary‘;’. for (i = 0; i < n; i++); { Foo(i); }
48. Incorrect use of std::remove void unregisterThread() { Guard<TaskQueue> g(_taskQueue); std::remove(_threads.begin(), _threads.end(), ThreadImpl::current()); } Thestd::remove function does not remove the items from the container. It only shifts the items and returns the iterator to the beginning of the trash. Assume we have the vector<int> container that contains items 1,2,3,1,2,3,1,2,3. If we execute the code "remove( v.begin(), v.end(), 2 )", the container will contain items 1,3,1,3,?,?,? where ? is some trash. Also, the function will return the iterator to the first trash item, so if we want to remove these trash items, we must write the following code: "v.erase(remove(v.begin(), v.end(), 2), v.end())".
51. You are enabled to get new versions (including major-versions) during 1 year; You are enabled to get support by e-mail during 1 year; You get time unbounded right to use the program. A year after you purchased it, you can continue getting new versions of PVS-Studio and contacting the support service. Restrictions will only concern new diagnostic capabilities that will appear in the analyzer after your license has expired. What does the price include besides the right of use?
53. The certificate of official registration of computer programs N2007614164, "Viva64". Registered in Computer Program Registeron September 28th, 2007. The certificate of official registration of computer programs N2008610480, "VivaCore, a source code analysis library". Registered in Computer Program Registeron January 25th, 2008. The certificate of official registration of computer programs N2008612845, "Viva64 2.0". Registered in Computer Program Registeron May 29th, 2008. Intellectual property is registered
54. Our articles are published at largest sites for developers http://www.viva64.com/en/experience/
55. Common information on working with the PVS-Studio analyzerhttp://www.viva64.com/en/d/0011/ A Collection of Examples of 64-bit Errors in Real Programs http://www.viva64.com/en/a/0065/ 32 OpenMP Traps For C++ Developers http://www.viva64.com/en/a/0054/ You can find other articles on 64-bit and parallel programs, as well as on technology of code analysis, at:http://www.viva64.com/en/articles/ Our best articles
56. OOO “Program Verification Systems” (Co Ltd) 300027, Russia, Tula, Metallurgov70-1-88. Web: www.viva64.com E-mail: support@viva64.com Phone: +7 (4872) 38-59-95 Working time: 09:00 – 18:00 (GMT +3:00) Information about company