Привет!
2 декабря ждем всех, кто любит делать это функционально на третьей конференции FPConf — конференции о Haskell, Scala, Clojure, Elixir, Kotlin, F# и функциональных подходах в программировании фронтендов, бэкендов и чего угодно на чем угодно. Больше монад, лямбд, замыканий! Всем иммутабельность, друзья :)
Традиционно, приглашаем как опытных функциональщиков, так и тех, кто только хочет получить вдохновение и расширить горизонты.
Цена билета сейчас — 5000 рублей. Регистрация тут.
Что в программе:
Arnaud Spiwack, core-разработчик Coq Proof Assistant, старший архитектор в Tweag I/O
USING HASKELL TO GREAT EFFECT
It is beyond cliché, nowadays, to say that testing is really important. This is even more so in I/O intensive applications because so many things can go wrong. Unfortunately, testing I/O intensive applications is particularly hard. We have to mock all our files, data-bases, and so on. But even so, we're only scratching the surface: so many things can go wrong. How do we test for absence of deadlocks? Of races?
I came to the conclusion that Haskell's insistence on purity made it, paradoxically, one of the best languages to write I/O intensive programs. The reason for this is that Haskell makes it very easy to mock every single aspects of the I/O fabric, hence testing is more powerful. Up to checking for the absence of deadlocks and races. This talk will discuss the programming patterns which emerge from this point of view, and, of course, encourage you do use them in your programs.
Денис Шевченко, сооснователь сообщества ruHaskell, автор книги «О Haskell по-человечески», разработчик в IOHK.
CARDANO: HASKELL ИДЁТ В МИР КРИПТОВАЛЮТ
Шум и волнение вокруг темы криптовалют не смолкают. Интерес к этой теме растёт день ото дня, ведь технология блокчейн уже доказала свою новаторскую эффективность. На наших глазах появляются новые криптовалютные системы, всё более удобные и безопасные. Cardano SL — первая из таких систем, написанная на Haskell. Об её особенностях, перспективах и о том, почему всё-таки Haskell, и пойдёт речь в моём докладе.
Николай Рыжиков, технический лидер команды Health Samurai, активист питерского Ruby & Clojure сообществ и мета-сообщества Piter-united.
ПОЛНЫЙ СТЭК НА «ОДНОМ» ЯЗЫКЕ ИЛИ ИЗОМОРФИЗМ РИЧА ХИККИ
Вашему вниманию предлагается доклад про то, как возможно разрабатывать вдоль всего стэка от infrastructure до мобилок и верстки с CSS на одном языке — Clojure. Полайфкодим, б… я
Михаил Лиманский, разработчик на Scala в «Первый ОФД».
КАК Я ПЕРЕСТАЛ БОЯТЬСЯ ПРОГРАММИРОВАНИЯ НА ТИПАХ И ПОЛЮБИЛ БОБОВОЕ ПЮРЕ
Программируя на Scala, мы частенько используем разные библиотеки написанные на Java. Несмотря на то, что технически в этом нет проблемы, с идеологической точки зрения возникают разные трудности. Например, когда вы не хотите использовать мутабельные классы в вашем коде. Или при получении данных в виде JavaBeans из одной библиотеки, вам нужно использовать их в другой библиотеке, написанной на Scala и подразумевающей использование case class-ов. BeanPurée — это библиотека позволяющая уменьшить страдания от использования JavaBeans в Scala. Она позволяет не только автоматически преобразовывать бины в case class-ы и обратно, но в первую очередь является соединяющим звеном между миром Java и shapeless. Я постараюсь сделать небольшой экскурс в программирование на типах в Scala, расскажу как использовать shapeless и BeanPurée, а также покажу как оно работает изнутри.
Юрий Сыровецкий, хаскеллист в Лаборатории Касперского, активист сообщества RuHaskell, преподаватель в Московском Химическом Лицее и Юрий Логинов, ученик 11 класса Московского Химического Лицея, энтузиаст функционального программирования.
CRDT — КОРРЕКТНО РАСПРЕДЕЛЁННЫЕ ДАННЫЕ НА HASKELL
CRDT — инструмент надёжного хранения и синхронизации данных в распределённых системах. Конечно же, эту модель надо реализовать на самом надёжном языке программирования — Haskell! Мы расскажем, с какими проблемами столкнулись, как решали вопросы надёжности и доказательства корректности кода, основанного на классах типов.
Никита Соболев, партнер студии разработки wemake.services, писатель кода, организатор elixir-lang.moscow.
ПОТОКИ. OTP. ELIXIR
В разных языках программирования используются разные модели асинхронности. В Erlang и Elixir существует целый фреймворк для работы с асинхронностью — OTP. Поговорим про его устройство, замерим скорость работы, рассмотрим типичные use-cases. Дополним все графиками и метриками!
Антон Холомьёв, автор книги «Учебник по Haskell» и музыкальной бибилиотеки для Haskell: csound-expression.
ЯЗЫК KOTLIN — ОСТРОВ СОКРОВИЩ ДЛЯ ФП НА ANDROID
Если посмотреть на хронику конференций по ФП, то не трудно заметить, что главной темой докладов является WEB. Мобильная разработка обходится стороной. И неспроста! Функциональные языки корифеи с роскошным расходом памяти имоделью представления типичных для ФП конструкций плохо укладываются в ограничения мобильных приложений.
Но на небе ФП взошла новая звезда и свет её всё ярче! Мы поговорим о новом языке Kotlin и о том как применять его на Android. На примере живого рабочего кода мы посмотрим как делать это в функциональном стиле. Появление Kotlin может открыть двери в Android-разработку для многих любителей ФП и сделать это путешествие приятным и увлекательным.
* Язык Kotlin разработан русскими инженерами из JetBrains и назван в честь острова, на котором расположен город Кронштадт.
Дмитрий Волков, хаскеллист за деньги, формальный верификатор и Coq'олюб за идею. Слегка Rust'оман. Организатор школ GoTo.
HIGH-ASSURANCE EMBEDDED
Сейчас почти каждый носит в своём кармане более 40 млн строк кода только на C, ездит в машине, управляемой бортовым *компьютером*, живёт в доме, подача воды к которому регулируется SCADA или на удалении менее 400 км от АЭС.
Я расскажу, что может пойти и идёт не так, как с этим жить и какие технологии разработки ПО используются для того, чтобы делать самолёты, которые (из-за сбоя электроники) не падают, машины, которые останавливаются при нажатии на педаль тормоза и ракеты, которые взлетают: в частности, речь пойдёт о memory-safe языках в embedded (Rust) и program extraction из Haskell (Ivory) и Coq + runtime verification à la Agda.
Олег Нижников, Scala-разработчик в Tinkoff.ru.
БЕЗБОЛЕЗНЕННЫЙ FALLBACK CACHE НА SCALA
В крупных (или микросервисных) архитектурах у Backend'а есть свои Backend'ы. И, если какой-то сервис очень важный, он не всегда очень производительный. Как сделать так, чтобы ваша система продолжала отвечать, даже если важные источники информации перестали отвечать?
Рассказываю о нашем опыте в Tinkoff:
1. Как мы выбирали СУБД и на чём остановились.
2. Как поддерживать версионность форматов данных.
3. Как понять, что ваш сервис умер или ожил.
4. Как встроить cache, не переписывая приложения на Scala.
5. Итоги и замеры.
Алексей Пирогов, любознательный писатель на функциональных языках, рассказчик докладов и водитель самоката, Typeable.IO.
СКРИПТУЕМ И АВТОМАТИЗИРУЕМ БЕЗОПАСНО С HASKELL
Всем нам приходится автоматизировать рутинные задачи — кому-то сборку, кому-то резервное копирование или обработку и сбор логов. Часто для подобных задач используются динамически типизированные скриптовые языки, ведь писать скрипты на них так быстро и просто! Но написание безопасных и предсказуемо работающих скриптов требует определенной дисциплины.
Данный доклад покажет, что те же задачи, которые мы обычно решаем с помощью Bash/Python/(ваш вариант), можно решать и на Haskell, получая при этом
— большую безопасность и предсказуемость;
— кроссплатформенность (написанный однажды скрипт будет работать и в unix-подобных системах, и на Windows);
— ту же скорость и простоту разработки (типы писать не придется, не нужно будет даже ничего компилировать — если не хочется!)
Александр Вершилов, haskell-разработчик в Tweag I/O.
ПРОЕКТИРУЕМ SAAS РЕШЕНИЕ, ЗАПУСКАЮЩЕЕСЯ НА НОУТБУКЕ
Если Вы задумываетесь как проектировать приложение, так чтобы оно работало локально, на слабом ноутбуке или было бы горизонтально расширяемым облачным приложением. То почему бы не получить все сразу, используя один и тот же код? Компаниям очень важно уметь быстро подстраиваться под изменяющиеся требования. Мощные абстракции в Haskell позволяют легко написать приложение, которое может как работать в облачном откуржении, так и быть испольняемым файлом в Windows.
В докладе мы рассмотрим архитектурные решения, позволилвшие это сделать. Мы рассмотрим структуру кода и инструменты позволившие нам легко получать платформоспецифичные решения, а так же о различных проблемах с которыми мы встретились при реализации.
Павел Аргентов, практикующий fp-программист, любитель OCaml, разработчик в Evrone.
УЧИМСЯ ИГРАТЬ В UNIKERNEL
Unikernel — это фреймворк для разработки приложения, которое будет запускаться в некоторой среде виртуализации по принципу “один компьютер — один процесс”. В некотором роде это возврат из мира многозадачных многопользовательских ОС общего назначения в мир “прошивок”. В ином роде — это выход на тот уровень создания приложений, когда программа живёт в своей маленькой очень-быстро-загружаемой, взломали-ну-и-ладно, упала-ну-и-не-жалко капсуле. Приложение является само себе операционной системой с “микроядром” — тоненьким загрузчиком/монитором на манер старинной MS-DOS. Разработанная на OCaml MirageOS — едва ли не первый успешный проект полностью зрелой «library OS». Я знаю OCaml, и потому эксперимент именно с продуктом на этом языке показался мне наиболее безболезненным. В докладе я пробегусь по основным моментам создания Mirage-приложения на простом учебном примере.
Катерина Галкина разработчик в GetShop.TV, магистрант ВМК МГУ, принимает участие в преподавании практикума на LISP на ВМК МГУ.
НАШИ БАГИ ЗА ДВА ГОДА РАЗРАБОТКИ НА HASKELL
Наш бэкенд чуть менее, чем полностью, написан на Haskell. Большую часть потенциально фатальных ошибок находит за нас компилятор, но он не может спасти от всего. В своём докладе я расскажу, какие проблемы у нас возникали, почему это случалось и от каких серьёзных ошибок нас спасает Haskell.
Александр Чичигин, haskell-программист в Typeable.io. Занимался исследованиями в области формальной верификации в университете.
В ПОИСКАХ КОРРЕКТНЫХ ТРАНСФОРМАЦИЙ
Доклад для бывалых функциональных программистов, заинтересованных в формальной верификации программ. Поговорим про язык F*, refinement types, equational reasoning, program transformation, formal verification. Грабли и обходные манёвры. Вы узнаете несколько приёмов использования refinement types (или liquid types) для доказательства завершимости и эквивалентности функций на примере оптимизации алгоритма сортировки списка.
Сергей Ткаченко, фронтэнд разработчик, clojure интузиаст, организатор московского Clojure сообщества.
OOP FOR BRAVE AND TRUE
В последнее время очень часто поднимается тема битвы методологий ООП и ФП. Но на самом деле эти две методологии были созданы с одной и той же целью — избавиться от императивного (процедурного) стиля программирования. К сожалению, в какой то момент ООП методология осталась так до конца и не понятой. В этом докладе я попытаюсь пролить свет на то, что такое современный ООП код и как его использовать в таком функциональном языке, как Clojure. Этот доклад будет полезен не только Clojure разработчикам, но всем разработчикам, которые используют функциональные языки и, ошибочно считающие, ООП корнем всех зол.
Вадим Челышов, работает в hydrosphere.io, один из ведущих в подкасте scalalaz.ru.
ДЕЛАЕМ ПОЛЬЗОВАТЕЛЬСКИЙ API НА БАЗЕ SHAPELESS
Scala-разработчикам довольно редко приходится иметь дело с зависимыми типами, хотя приличный пласт библиотек, с которыми мы работаем каждый день, используют их под капотом.
Цель моего доклада — сделать так, чтобы PR коллеги с добавлением shapeless в зависимости проекта больше не вызывал у вас паники.
— рассмотрим неочевидные моменты
— узнаем, как понимать подобный код
— выясним, какую пользу можно получить от практического использования shapeless
— поймем, зачем стоит тащить его в свой проект.
Николай Кудасов, технический директор и ко-фаундер GetShop.TV, преподаватель курса Haskell на ВМК МГУ, Haskell-энтузиаст с 2010 года.
ФУНКЦИОНАЛЬНАЯ ВИРТУАЛЬНАЯ РЕАЛЬНОСТЬ: WEBVR + HASKELL
Виртуальная реальность доступнее, чем может показаться. При помощи Google Cardboard и WebVR каждый может создавать виртуальные миры. А с помощью GHCJS мы можем строить эти миры на Haskell, легко и безопасно! В этом докладе вы увидите, как начать разрабатывать под VR на Haskell, а также как взаимодействовать с существующими VR-компонентами. А именно, вы познакомитесь с WebVR фреймворком A-Frame и Miso, фронтенд-фреймворком на Haskell, похожим на Elm.
Никита Волков, эксперт по языку Haskell и автор множества open-source проектов для него.
НОВЫЙ HASQL: ПРОЩЕ И БЫСТРЕЕ
Доклад о самой быстрой библиотеке для интеграции с Postgres для Haskell от ее автора!
Спикеры уже вовсю готовятся, ждем только вас!
Что кроме докладов:
— Много профессионального общения с очень умными и интересными людьми.
— Вкусная еда.
— Огненное афтепати, чтобы неформально пообщаться с участниками и спикерами.
Присоединяйтесь!
Цена билета — 5000 рублей.
Зарегистрироваться можно тут.
Бонус — видео с FPConf 2015 и FPConf 2016.
Автор: Елена Могильникова