We are taking a look at the implementation of both lock-free and fine-grained lock-based set/map: hash tables, trees. We will find out what in STL may be implemented in lock-free manner and what may not. “Underwater rocks” of lock-free algorithms and how to neutralize them.
C++ gives too much freedom and power to the engineer who is in charge for the development. It’s easy to write code, but it’s complicated to debug and analyze crash reports. This power may be used by the wrong side: a malefactor may interrupt into your application flow and corrupt user’s data. The talk covers most popular vulnerabilities and errors in the application nowadays: from where they come from and how to get rid of them in C++ code.
CoreHard Summer 2016. Sergey Gomon. Generic programming in C++ or how to make your life easier via suffering
Generic programming is a development approach where the algorithm gets written without specifying concrete data types. Using this approach, one can dramatically increase the ratio of code reuse. In C++ this is achieved via template mechanism. The talk covers several possibilities that C++ presents. Real-world examples are given and we will take a look on how they can simplify our development life.
clang library family provides wides possibilities to implement various tools based on parsing and analysis of Abstract Syntax Tree (AST). Particularly, clang authors released a tool called clang-tidy, a powerful static code analyzer. The talk covers a way to make use of this tool in the process of C++ development and how to enrich this tool with your own checks. On a side note, we will take a deep look into C++ AST.
C++ memory models: Ordnung muss sein. Why “undercooked” thread may terminate the application and how to avoid this: recipies from masters of threads. How to come to the conclusion of shared resource usage and how to avoid side effects. The overview of multithreaded development tooling.
In his talk Anton talks about major language changes that will not make their way to C++ Standard 17 but remaining in technical specifications, will wait for their merge into the next (C++19 or C++20) seeing the light in some compilers.
Modern software development is a much more complex process than just regular coding. This process incudes such practices and artifacts as code reviews, continuous integration, unit testing, static code analysis, code coverage, coding standards etc. We will discuss how to integrate these process into your development cycle and what tools can be used for that in C++ universe.
CoreHard Summer 2016. Anton Semenchenko. Development and testing of Internet of things. Industry trends
The talk covers the following questions: how business trends of mobile development and Internet of things will affect technical trends of development and quality assurance. What are the possible difficulties, what skills will be necessary and what types of testing will become more popular, and what tools will become actual. Numerous examples of projects from our country that you can take part in here in Belarus and Russia, here and now.
C++ Siberia 2016 conference is going to take place on August 26-27 in Novosibirsk. The event is organized by C++ User Group Russia with support of Kaspersky Lab, Yandex, PVS-Studio and C++ CoreHard community. The speakers from Russia will gather to share their experience in C++.
CoreHard.by community is pleased to announce a next big weekend conference fully dedicated to C++ language and hardcore technologies! Speakers from leading IT companies of Belarus and Russia will gather to present their development and quality assurance experience.We’ve collected best talks that cover the variety of topics: multithreading and lock-free containers, Internet of things, safety programming, clang and Abstract syntax tree and many-many more!