Программа конференции Lua in Moscow 2019

в 7:25, , рубрики: Lua, luajit, nginx, tarantool, Блог компании Mail.Ru Group, конференции, Программирование

Программа конференции Lua in Moscow 2019 - 1

Как мы сообщали в предыдущем анонсе, 3 марта (воскресенье) в офисе Mail.ru Group пройдёт третья международная конференция Lua in Moscow 2019.

Конференция будет проходить в 2 потока: доклады и семинары.

Все доклады и семинары будут на английском языке без синхронного перевода.

Доклады (переговорная #1)

image 10:30 Начало регистрации

Программа конференции Lua in Moscow 2019 - 3 11:00 — 11:45 «Why (and why not) Lua / Почему именно Lua (а почему нет)», Роберто Иерусалимский, PUC-Rio

При создании языка программирования противоречия в требованиях часто толкают авторов на компромиссные решения. Это обычное явление в мире разработки. В разных языках к компромиссу приходят по-разному, что и делает каждый язык более подходящим для одних сценариев и менее привлекательным для других.

Для языка Lua есть свой набор целей, определяющий направление проектирования. Приоритет здесь отдается встраиваемости, малому размеру, простоте и портируемости. Есть и другие цели, такие как производительность и простота использования непрофессиональными программистами.

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

Программа конференции Lua in Moscow 2019 - 4 12:00 — 12:45 «Tarantool team’s experience with Lua developer tools / Опыт работы команды Tarantool'а со средствами разработки на языке Lua», Ярослав Дынников, Mail.ru Group

У каждого языка программирования есть своя собственная экосистема, важная для благополучия сообщества. Разработка приложений — это не только написание кода, но и его тестирование, оптимизация и обмен информацией с другими людьми. В проекте Tarantool есть много разработчиков, которые каждый день работают с Lua.

В ходе доклада мы обсудим различные аспекты развития Lua в команде Tarantool:

  • Как разработчикам удобно писать код с линтингом?
  • Какие инструменты они используют для отладки и тестирования?
  • Как успешно готовят документацию и собирают пакеты?
  • И, что не менее важно, каких функций им пока не хватает?

Программа конференции Lua in Moscow 2019 - 5 13:00 — 14:00 Обед

Программа конференции Lua in Moscow 2019 - 6 14:00 — 14:45 «Processing FEA data with Lua / Обработка данных методом конечных элементов (FEA) с помощью Lua», Вадим Зборовский, ГНЦ РФ ТРИНИТИ

Программные пакеты для анализа методом конечных элементов (FEA) известны разнообразием и сложностью файлов данных. Файлы могут содержать сетку, постановку задачи, а также результаты моделирования. Серийные пред- и постпроцессоры предназначены для наиболее распространенных сценариев использования, и им иногда не хватает гибкости для решения определенных задач. В таких случаях на помощь приходит Lua.

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

В первой истории описывается создание качественной сетки для расчета межузлового контакта двух тел. Вторая история посвящена связи коммерческого кода FEA с внутренним кодом для термомеханического анализа тепловыделяющего элемента. В третьем случае речь пойдет о подготовке входных файлов и преобразовании файлов результатов для свободного кода FEA CalculiX.

Программа конференции Lua in Moscow 2019 - 715:00 — 15:45 «Shaders and Lua / Шейдеры и Lua», Сергей Лерг, Spiral Code Studio

Невозможно писать шейдеры на Lua, но можно управлять ими с помощью этого языка. Цель доклада — продемонстрировать, как можно с легкостью создать потрясающие эффекты с помощью GLSL и Lua. Кроме того, будут даны полезные советы и рекомендации по работе с шейдерами на игровом движке Defold.

Программа конференции Lua in Moscow 2019 - 8 16:15 — 17:00 Кофе-брейк

Программа конференции Lua in Moscow 2019 - 9 17:00 — 17:45 «Intro to dynasm from luajit / Введение в dynasm из luajit», Михаил Филоненко, Mail.ru Group

Dynasm — это генератор машинного кода для нескольких архитектур (x86, x86_64 и т.д.).
Он состоит из двух частей:

  • генератор машинного кода, написанный на C
  • и препроцессор ассемблера на Lua.

Оригинальный препроцессор работает только с исходниками на ассемблере или С.
Кроме того, есть форк от luapower, который может предварительно обрабатывать файлы Lua с помощью генераторов ассемблер-кода.

В некоторых случаях необходимо использовать логику из пользовательского ввода. Мы рассмотрим этот набор инструментов и создадим простой компилятор s-выражений.
Основной вопрос: «Насколько удобно создавать компилятор для пользовательского ввода».

Программа конференции Lua in Moscow 2019 - 10 18:00 — 18:45 «Challenges of ‘pairs’ and ‘next’ JIT compilation / Проблемы компиляции ‘pairs’ и ‘next’ в JIT», Максим Большов, IPONWEB

В IPONWEB используется собственная реализация Lua. Проект ответвили из LuaJIT 2.0 со всеми ограничениями. В частности, функции pairs и next не поддерживались компилятором JIT. Тем не менее, в нашей кодовой базе на Lua это входит в топ-3 причин прерывания компиляции трассировки, что приводит к вынужденным компромиссам между стилем кода и производительностью приложения.

В докладе планируется:

  • рассказать, что значит вызвать библиотечную функцию JITable;
  • объяснить специфику реализации pairs и next в LuaJIT;
  • рассказать об ограничениях JIT, которые делают компиляцию pairs и next нетривиальной задачей;
  • продемонстрировать ход решения этой задачи.

Программа конференции Lua in Moscow 2019 - 11 19:00 — 19:45 «resty-threadpool: reinventing Apache in nginx / resty-threadpool: новое прочтение Apache в nginx», Julien Desgats, CloudFlare

Асинхронные циклы событий — это проверенный способ масштабирования сетевых серверов. nginx (как и другие успешные продукты) в своей основе использует именно эту методику. Однако её производительность зависит от ключевого условия: бизнес-логика не должна отрабатываться слишком долго, иначе общая производительность быстро падает.

В Cloudflare в значительной степени полагаются на OpenResty (nginx + Lua + библиотеки) во всём, что касается пограничных серверов. При этом предсказуемая производительность имеет решающее значение. Для этого требуется выносить некоторые сложные части обработки из цикла обработки событий. Как правило, раньше это делалось путем написания микросервисов. В Cloudflare попробовали иной подход: использовать функцию пула потоков nginx. В докладе будет подробно рассказано о проблемах и результатах извлечения основных функций безопасности из цикла событий.

Программа конференции Lua in Moscow 2019 - 12 19:15 — 20:00 Круглый стол со всеми докладчиками

Семинары (кинозал)

Программа конференции Lua in Moscow 2019 - 13 14:00 — 15:45 «Tarantool use cases for rich applications / Варианты использования Tarantool'а для многофункциональных приложений», Владимир Перепелица, Mail.ru Group

На первый взгляд, Tarantool — это база данных. И довольно сложно увидеть весь потенциал этого продукта в качестве сервера приложений.

Семинар призван раскрыть эту часть возможностей Tarantool'а: как использовать встроенный сервер LuaJIT с сокетами, файберами, каналами, ffi и т.д.? Как сделать так, чтобы код можно было перезагружать на лету? Эти темы будут рассматриваться шаг за шагом на примере построения сервера очередей.

Программа конференции Lua in Moscow 2019 - 14 16:15 — 18:15 «Making a simple platformer with Defold / Создание простого платформера на Defold», Сергей Лерг, Spiral Code Studio

Платформеры — это очень популярный игровой жанр. Одни из них простые, другие довольно сложные. В рамках семинара я покажу, как создать базовый платформер на игровом движке Defold. Авторы большинства обучающих материалов по этой теме склонны всё упрощать и показывают создание уровней вручную, в то время как их можно генерировать автоматически, а также используют физический движок, когда это совершенно не нужно.

Вход бесплатный.
Регистрация обязательна.
Адрес: офис Mail.ru Group, Ленинградский пр., 39, стр. 79.

Ждём вас на Lua in Moscow 2019!

Автор: Елена Шебуняева

Источник


* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js