Хабрахабр

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

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

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

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

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

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

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

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

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

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

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

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

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

13:00 — 14:00 Обед

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

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

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

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

15:00 — 15:45 «Shaders and Lua / Шейдеры и Lua», Сергей Лерг, Spiral Code Studio

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

16:15 — 17:00 Кофе-брейк

17:00 — 17:45 «Intro to dynasm from luajit / Введение в dynasm из luajit», Михаил Филоненко, Mail.ru Group

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

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

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

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

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

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

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

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

19:00 — 19:45 «resty-threadpool: reinventing Apache in nginx / resty-threadpool: новое прочтение Apache в nginx», Julien Desgats, CloudFlare

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

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

19:15 — 20:00 Круглый стол со всеми докладчиками

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

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

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

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

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

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

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

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

Теги
Показать больше

Похожие статьи

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Кнопка «Наверх»
Закрыть