Доклады

Я люблю выступать с докладами на конференциях и митапах с темами, касающимися функционального программирования и разработки ПО. В особых случаях, таких как конференция C++ Russia, я делаю showcase проекты специально для докладов. Моя цель — показывать яркие идеи из мира ФП, популяризировать язык Haskell, и рассказывать о чем-то необычном.


Designing complex applications with Free monads (Eng)

Functional Conf Global Edition 2020

Доклад о том, как применять Free monads для написания асинхронных приложений. Показываю, как можно реализовать async/await синтаксис и рассуждаю о Software Design.

Слайды

Concurrent applications with Free monads and STM (Eng)

Haskell Love 2020 online

Рассказываю о приложениях, основанных на STM и Free monads, показываю различные паттерны проектирования, обсуждаю подходы и решения.

Слайды

Automatic White-box Testing with Free Monads (Eng)

f(by) 2020, Minsk, Belarus

Доклад о моем подходе к тестированию по методу белого ящика, когда тесты писать не нужно совсем. Доклад основан на одноименной статье.

Слайды
Статья Automatic White-box Testing with Free Monads
(там же — и showcase проект с работающим кодом)

Hierarchical Free Monads and Software Design in Functional Programming (Eng)

Functional Conf 2019, Bangalore, India

Доклад о моем подходе «Hierarchical Free Monads» для построения сложных приложений на Haskell, и о дисциплине Software Design в ФП.

Слайды

Final Tagless vs Free Monads

FPure 2019, Казань

Доклад для ФП-конференции FPure в Казани. Рассказываю про разницу между подходами Final Tagless и Free Monad.

Слайды

Like in Haskell: Final Tagless and eDSLs on concepts

C++ Russia 2020 online

Доклад о том, как с помощью новой фичи С++20 — концептов — создавать предметно-ориентированные языки в стиле хаскельного Final Tagless/mtl.

Слайды

Монадические парсеры

C++ Russia 2019, Moscow

Доклад из цикла «ФП в С++». Рассказываю про монадические парсеры, сделанные на Free monads.

Слайды

Keynote: Настоящее и будущее функционального программирования в C++

C++ Siberia 2019, Новосибирск

Большой доклад о том, почему функциональное программирование в С++ важно, в чем его философия и куда движется язык. Рассказываю про подъязыки чистого ФП: template и constexpr, показываю, как появляется необходимость в монадах, рассказываю о том, какие бывают. Рассказываю о грядущих фичах в C++: ranges, Pattern Matching, expected<> и других.

Слайды
Материалы для подготовки доклада

Функциональный подход к Software Transactional Memory

C++ Russia 2018, Санкт-Петербург

Библиотека cpp_stm_free, которую я сделал для доклада, является самым сложным достижением в моей жизни. Она основана на продвинутых концепциях из ФП — Free-монадах, и имеет особенную имплементацию. Рассказываю, что такое STM, и как устроена библиотека.

Слайды
Библиотека cpp_stm_free
Туториал
Проект-пример cpp_philosophers_stm
Материалы для подготовки доклада

Функциональный микроскоп: линзы в С++

C++ Siberia 2015, Новосибирск

Специально для доклада я реализовал библиотеку простых линз на геттерах и сеттерах. Рассказываю, что это за концепция, как ее применять, и какие могут быть подходы к реализации.

Слайды
Библиотека cpp_lenses
Материалы для подготовки доклада

Функциональная жизнь: параллельные клеточные автоматы и комонады на С++

C++ Russia 2016, Санкт-Петербург

Хардкорный доклад про то, как в функциональном стиле сделать параллельные клеточные автоматы, положив в их основу концепцию из ФП — комонады.

Слайды
Проект-пример CMLife
Материалы для подготовки доклада

Функциональное программирование в С++ и конкурентные вычисления

LambdaNsk, Новосибирск, 2018

Доклад для митапа LambdaNsk, дополняющий тему, которую я рассказывал на C++ Russia 2018.

Слайды

Декларативный и функциональный дизайн на С++11

C++ User Group, Новосибирск, 2014

Доклад для митапа C++ User Group о том, как дизайнить приложения в функциональном и декларативном стиле на примере игры «Амбер».

Слайды

Отказываемся от Ruby on Rails в пользу Haskell

LambdaNsk, Highload Siberia++, 2018

В компании Restaumatic мы переводили кодобазу с Ruby on Rails на Haskell. Я рассказываю о том, как это у нас получалось и какие подходы мы использовали.

Слайды

Product :: RubyOnRails -> Haskell

HasGeek / JSFoo, Bangalore, India, November 2019

В компании Restaumatic мы переводили кодобазу с Ruby on Rails на Haskell. Я рассказываю о том, как это у нас получалось и какие подходы мы использовали.

Слайды

Дизайн больших приложений в ФП

FPConf 2015, Москва

Рассказываю о возможных подходах и существующих проблемах дизайна больших приложений в ФП.

Слайды
Материалы для подготовки доклада

Линзы — комбинаторная манипуляция данными

Dev2Dev 2015, Красноярск

Доклад о линзах в Haskell.

Слайды
Материалы для подготовки доклада

Лучшая FRP библиотека — это STM (live coding)

FProg Spb июнь 2020

Доклад-исследование о том, как сделать библиотеку для реактивного программирования с использованием Software Transactional Memory.

Пишем игру Labyrinth на фреймворке Hydra (live coding)

FProg Spb май 2020

Рассказываю про Free монады, про фреймворк Hydra, объясняю базовые концепции создания Free монадических языков, и показываю, как можно писать приложения с помощью этого фреймворка.

Haskell для мейнстримных программистов

FProg Spb октябрь 2019, Санкт-Петербург

Доклад о состоянии дисциплины Software Design в Haskell и о том, что можно сделать, чтобы Haskell мог претендовать на менйстрим.

Слайды

eDSL для графа переходов на Free монадах и экзистенциальных типах

FProg Spb апрель 2018, Санкт-Петербург

Доклад о том, как можно сделать граф переходов (стейт-машину) на фри-монадах и экзистенциальных типах в Haskell.

Слайды
Материалы для подготовки доклада

Вы не понимаете ФП

DevDay@2GIS Декабрь 2017, Новосибирск

Мифы и заблуждения о ФП

Слайды
Материалы для подготовки доклада

Haskell

DevDay@2GIS Май 2013, Новосибирск

Язык программирования Haskell.

Слайды
Материалы для подготовки доклада

Back to the Future: Функциональное программирование вчера и сегодня

TechTalks@NSU, 2015

Рассказываю о том, какое значение приобрело функциональное программирование.

Слайды
Материалы для подготовки доклада


Подкасты и интервью

PodlodkaPodcast #136: Современный С++

Рассказываю о языке С++: его история, развитие, боль, коммьюнити, конференции, и все что вокруг.

C++ Russia 2019 Piter — интервью

Интервью, в котором мы с Сергеем Платоновым и Евгением Трифоновым обсуждаем, в чем состоит работа Программного Комитета и как попасть на конференцию в качестве докладчика.

Scalalaz Podcast (FPure)

Интервью для подкаста scalalaz, случившееся на конференции FPure в Казани.

BitCask #5 Рекурсивный эскалатор

Разговор про Scala и Haskell с Оли Махасоевой

HEXLET MEETUPS

Онлайн-дискуссия: Место фреймворков в ФП [Хекслет] Алексей Пирогов, Александр Гранин

LambdaNsk

Идиоматичный функциональный код (слайды)
Линзы — комбинаторная манипуляция данными (слайды)
Дизайн крупных приложений на функциональных языках (слайды)

Лекции в 2ГИС

Лекция 1. Принципы и практики разработки ПО (слайды)
Лекция 2. Принцип подстановки Лисков (слайды)
Лекция 3. Закон Деметры (слайды)

Hinteractive Cast

Скринкаст работы над движком квестовых игр hinteractive в двух частях.

Hinteractive Cast 1
Hinteractive Cast 2

🠺 Проект hinterative

Innopolis HR Meetup

GitHub — зеркало разработчика (слайды)

ЧитГУ / ЗабГУ выступления, доклады, презентации

Профессиональная разработка в суровом enterprise (слайды)
О разработке десктопных приложений (слайды)