х2018 Autumn2018 Spring2017 Autumn2017 Spring2017 Winter2016 Autumn2016 Summer20162015
#CoreHardBy

C++ CoreHard Spring 2018 Сonference

The C++ CoreHard Spring 2018 is a conference dedicated to C++ and related hardcore technologies.

The conference is being organized by the CoreHard.by community that unites not only C++ engineers, but also those who are interested in low-level development in C and Assembler, programming of controllers, Internet of Things, highload server solutions and in any kind of “hardcore” development.

The conference will take 2 days: April 7 - talks day, April 8 - master class day

Official conference languages: Russian, English

Want to present a talk? Submit a proposal


#CoreHardBy

Speakers

Conference

  • 10:30 - 11:00

    Registration

  • 11:00 - 11:10

    Opening

  • 11:10 - 12:00

    Objects? No thanks! [English]

    Wouter van Oijen

    Classic C++ objects provide abstraction, but at a run-time cost. For compile-time known compositions, static classes and static class templates provide the benefits of abstraction without the time and space overhead.

  • 12:10 - 13:00

    25 years of C++ history flashed in front of my eyes [Russian]

    Yauheni Akhotnikau

    The author got acquainted with C++ in 1991; starting from 1992, C++ became his primary language. What was happening to the language along this time? How and why did it become so popular? How did stagnation in C++ language development begin? How has C++ lost its popularity? Is there a place for C++ in the modern world? Let us try to talk about these topics based on 25 years of programming in C++.

  • 13:10 - 14:00
  • 14:00 - 15:00

    Lunch

  • 15:10 - 16:00

    Collection processing. Single essence, multiple manifestations [English]

    Vadim Vinnik

    Along the whole history of programming, sequential elementwise processing of various kinds of collections has been and still is one of the most common practical tasks. Internal representation of the collections, as well as the algorithm used to fetch subsequent elements, may vary in a very wide range: array, linked list, tree, hash table, file et al. However, behind the variety of idioms, standard library functions, ad-hoc solutions, one can reveal the essence that remains invariant for that whole class of tasks. This talk aims to show a step-by-step transition from algorithms based on explicit description of actions over individual elements towards high-level, declarative processing tools that treat a collection as an entity and adequately reveal the logic of the domain.

  • 16:10 - 17:00

    Versatile C++ in practice [Russian]

    Mikhail Matrosov

    In C++ you can solve a single task in a multiple ways. We will pick an actual task from production, and investigate how it can be solved with a number of tools that C++ provides: STL containers, boost.range, C++20 ranges, coroutines. We will compare API constraints and performance of different solutions, and how they can be easily converted from one to another if the code is well-structured.

  • 17:10 - 18:00

    Beware of C++17 [English]

    Nicolai Josuttis

    The devil is in the detail. This also applies to C++17. We get new cool features, but we also get new things to care for and remember. This talk discusses some of the cool features when they may lead to surprises.

  • 18:10 - 19:00

    Grill the Committee! [English]

    Nicolai Josuttis, Wouter van Oijen, Antony Polukhin

    Ask any tricky question to the members of C++ Standardization Committee

  • 19:00 - 19:10

    Closing

  • 10:30 - 11:00

    Registration

  • 11:00 - 11:10

    Opening

  • 11:10 - 12:00

    Objects? No thanks! [English]

    Wouter van Oijen

    Classic C++ objects provide abstraction, but at a run-time cost. For compile-time known compositions, static classes and static class templates provide the benefits of abstraction without the time and space overhead.

  • 12:10 - 13:00

    How Data Flow analysis works in a static code analyzer [Russian]

    Pavel Belikov

    Data flow analysis is a technology for source code analysis, widely used in various development tools: compilers, linters, IDE. We'll talk about it exemplifying with design of a static analyzer. The talk covers classification and various kinds of data flow analysis, neighbouring technologies supporting each other, obstacles arising during development, surprises from C++ language when one tries to analyze the code. In this talk, some errors, detected in real projects using this technology, are shown in detail.

  • 13:10 - 14:00

    Quick setup of the docker-based development environment for cross-compilation [Russian]

    Oleksandr Chupryna

    How to easy and quickly setup/update developers' environment(based on Docker) to project's crosscompilation for different targets, how to quickly switch between environments, how to organize continuous integration and testing using GitLab and Docker.

  • 14:00 - 15:00

    Lunch

  • 15:10 - 16:00

    Tools for C++ code profiling [Russian]

    Alexander Zaitsev

    It happens sometimes that an application begins to run aparently simple computation too long consuming too much memory. As a developer, you have no idea why is it so and you are curious. Let us talk about tools that might help us to understand the weird behavior of our programs. If you are not scared with words like Valgrind, gprof, gperftools and others, - welcome!

  • 16:10 - 17:00

    Cross-platform code generation for C++ [Russian]

    Alexey Tkachenko

    The talk deals with code generation when compiling various constructs of the language, from simple to complex, on different platforms: from widely known as x86/x64 to less familiar like ARM and AVR. There will be also examples for very exotic processors such as PowerPC or even MicroBlaze. The main focus will be made not on data processing but rather on mapping of various code constructs onto instructions of the target platform.

  • 17:10 - 18:00

    The core of a cryptocurrency wallet called Multy [Russian]

    Vasily Nemkov

    3,5 blockchains in 2 MB: how, what and why. Developing cross-platform blockchain solutions

  • 18:10 - 19:00

    Grill the Committee!

    Nicolai Josuttis, Wouter van Oijen, Antony Polukhin

    Ask any question to the members of C++ Standardization Committee

  • 19:00 - 19:10

    Closing

  • 10:30 - 11:00

    Registration

  • 11:00 - 11:10

    Opening

  • 11:10 - 12:00

    Objects? No thanks! [English]

    Wouter van Oijen

    Classic C++ objects provide abstraction, but at a run-time cost. For compile-time known compositions, static classes and static class templates provide the benefits of abstraction without the time and space overhead.

  • 12:10 - 13:00

    C++ for web with Emscripten [Russian]

    Andrew Karpushin

    I will talk about my practical experience of building and using C++ in Web pages and about what is needed to port a C++ application to Web, about limitations on this path, integration of C++ code with JavaScript integration and other Web page elements.

  • 13:10 - 14:00

    Functions hooking for Windows in C/C++ applications [Russian]

    Andrey Yakimov

    I will talk about intercepting functions in applications created in various languages and technologies. The talk will cover: basic notions application areas, interception techniques, their technical details and ready-to-use libraries.

  • 14:00 - 15:00

    Lunch

  • 15:10 - 16:00

    Feature-component approach to game development [Russian]

    Sergey Solozhentsev

    CTO of Alis Game will tell about changes in approaches to game object processing in match 3 games over time, and how did a feature-component approach to creation of changable game objects arise; what are its upsides compared to other known and used approaches to tutorials, various modes, and to code reusing techniques.

  • 16:10 - 17:00

    From C++ to Objective-C [Russian]

    Alexander Markevich

    В этом докладе я хочу рассказать о том, что Obj-C/C++ — это расширение существующих C/C++. В данном докладе будут рассмотрены особенности языка, будет рассказано про управление памятью (retain/release vs. ARC vs. shared_ptr/unique_ptr), про Swift и почему он лучше или хуже Obj-C/C++.

  • 17:10 - 18:00

    Beware of C++17 [English]

    Nicolai Josuttis

    The devil is in the detail. This also applies to C++17. We get new cool features, but we also get new things to care for and remember. This talk discusses some of the cool features when they may lead to surprises.

  • 18:10 - 19:00

    Grill the Committee!

    Nicolai Josuttis, Wouter van Oijen, Antony Polukhin

    Ask any tricky question to the members of C++ Standardization Committee

  • 19:00 - 19:10

    Closing

Master classes

  • 10:30 - 11:00

    Registration

  • 11:00 - 19:00

    Quick and modern C++ [Russian]

    Antony Polukhin

    In any large codebase you can always find pieces of code which are not totally understandable. Mostly, such kind of code is implemented when the application needs some performance boost... and, mostly, that code is not useful because it optimizes functionality in wrong place, in incorrect way and in not a good way. During our masterclass we will get to know to the allocators features, optimizers and implementations of containers; look at assembler code; learn how to correctly and clearly write fast single-threaded and multi-threaded applications. You only need a complier with C++ 11 support (at least VS 2013/Clang-3.3/GCC-4.8) and basic C++ knowledge

  • 10:30 - 11:00

    Registration

  • 11:00 - 19:00

    Programming in C++ 11, 14, 17 in a right way: STL and language features [Russian]

    Vadim Vinnik

    C++ language is changing all the time. For common practical tasks that did require special ingenuity from a programmer, new clear and neat features get introduced either into the language itself or into the standard library or into Boost library. The dark side of the language development is that many programmers cannot catch all the changes and keep using C++98 style. Except this, programmers in their everyday work often have to work with a legacy code created many years ago that could be made much shorter and more evident if use the new features. To achieve that goal, however, the language features need to become evident for the programmers first. The workshop will show features introduced into C++ 11, 14 and 17 still used not by everyone. For this workshop, participants need a laptop with an installed C++ compiler of a version supporting C++17 (and earlier standards).

  • 10:30 - 11:00

    Registration

  • 11:00 - 19:00

    C++17 - The new Language and Library Features [English]

    Nicolai Josuttis

    C++17 is out for a year now and at least partially supported by Clang, GCC, and Visual Studio. While C++ is no revolution and changes the style of programming (as C++11 did), it is a remarkable collection of many many features both in the core language and the library. It might look that all this is easy to learn and to use. But beware, C++17 is a lot more complex than it looks like. There are nice hidden features, significant remarkable design issues, and important pitfalls (especially when combining new features). This tutorial discusses the new features with the focus of remarkable applications and traps that can occure in practice.

Organizers

  • CoreHard

Partners

  • Solarwinds
  • Awem
  • PVS-Studio
  • DPI Solutions

Infopartners

  • Job tut.by
  • Wargaming
  • Kaspersky Lab
  • IT-academy
  • Dot Net Summit
  • dev.by
  • Imaguru
  • IBA
  • comaqa.by
  • Epam
  • itstep.by
  • gamedev.by
  • javaday.by
  • conf.cocoaheads.by
  • ITVDN
  • HotWork
  • trud.com
  • avradays.com
  • vse-kursy.by
  • Аргументы и Факты
  • БГУИР
  • afisha.tut.by
  • Relax.by