CoreHard Autumn 2017. Benchmark it, Игорь Садченко

Benchmarking of C++ code…


CoreHard Autumn 2017. Abseil. Let the savior come, Игорь Садченко

Расскажу про представленную на CppCon библиотеку abseil от Google….


CoreHard Autumn 2017. Restinio — header-only http and websocket server, Николай Гродзицкий

RESTinio is a header-only library for creating REST applications in c++. It helps to create http server that can handle requests asynchronously. And since v.0.3 it supports websockets….


CoreHard Autumn 2017. The beast is becoming functional, Ivan Cukic

C++ has been stagnant for a long time, and while using many functional programming idioms with C++ was always possible, it was never easy. With each new version of the C++ standard, we have been getting better and better tools for writing functional and generic code. C++11 started by introducing lambdas, C++14 made lambdas much nicer to use, while C++17 went a few steps further by introducing algebraic data types like std::optional and std::variant. With C++20, the situation will become even better — ranges, concepts and coroutines will allow us to do even more. In this talk, we will explain how exactly these features fit into the FP style of programming….


CoreHard Autumn 2017. Обработка потока данных на примере deep packet inspection: внутренняя архитектура и решения, Максим Хижинский

Мы в компании VasExperts занимаемся задачами анализа сетевого трафика (DPI). Задача довольно нетривиальна, учитывая как объемы трафика у среднего провайдера (40 — 80Gb/s и выше), так и сложность распознания и обработки трафика — фильтрации, обеспечения требуемого QoS, терминации, управления локальными соединениями и пр. Очевидно, что обработка таких объемов должна быть параллельной, — следует загрузить все ядра по максимуму. Но неизбежно возникают разделяемые (shared) данные, доступ к которым из разных потоков при использовании традиционных инструментов — мьютексов и т.п. — фатальным образом влияет на производительность. Да что там shared data, — даже использование системного аллокатора — уже проблема. В докладе я расскажу о внутренней архитектуре нашего продукта — анализатора сетевого трафика: совсем немного о сетевых вещах и более подробно — о модели взаимодействия потоков и распределении их ролей, об аллокации памяти в такой модели, о спасительных интрузивных контейнерах, об ограничениях схем типа Hazard Pointer или user-space RCU поддержки конкурентных структур данных, и о том, почему мы не любим многопроцессорные сервера….


CoreHard Autumn 2017. Actors for fun and profit, Евгений Охотников

На предыдущих конференциях C++ CoreHard автор уже рассказывал о Модели Акторов вообще и ее применимости в C++ в частности, а так же об уроках, которые довелось выучить за 15 лет использования Модели Акторов в C++. В этот раз речь зайдет о том, как же определить, стоит ли использовать Модель Акторов для решения конкретной задачи. И если стоит, то как это можно сделать. С поправкой на то, что C++ — это небезопасный язык и приемы из намного более безопасных Erlang и Akka в C++ не очень-то и работают….


CoreHard Autumn 2017. C++Now trip report: новости из мира С++, Александр Зайцев

C++ активно развивается. И на конференциях по С++ представляют всё больше и больше интересных идей, куда может двигаться язык. На этом докладе вы услышите про самые интересные из них, которые были озвучены на конференции C++Now 2017….


CoreHard Autumn 2017. Ускоряем сборку C++ проектов. Практика использования Unity-сборок, Артем Лапицкий

Сборка крупных С++ проектов может занимать чрезвычайно много времени, что напрямую отражается на скорости разработки, эффективности тестирования и процесса непрерывной интеграции. В своем выступлении я расскажу об ускорении сборки с использованием техники «Unity Build» (Single Compilation Unit), а также об опыте и осбенностях применения этой техники на реальном проекте….


CoreHard Autumn 2017. Соединяем C++ и Python — II. Pybind11, Игорь Садченко

Доклад посвящен скрещиванию С++ с питоном…


CoreHard Autumn 2017. C++ и assembler: отладка и reverse engineering, Михаил Гельфанд

Мы привыкли рассматривать язык ассемблера как низкоуровневый. Пишем мы на нём сравнительно редко: для описания логики, невыразимой или трудновыразимой языками типа С++, или же для реализации критических ветвей исполнения, для которых компиляторы генерируют недостаточно оптимальный код. В своём докладе я расскажу о пользе базовых умений чтения и анализа ассемблерного кода и ситуациях, в которых желание время от времени опускаться на этот нижний уровень помогает решать проблемы и делать мир лучше….