Mail.ru Group corporate blog
Programming
Lua
Conferences
February 26

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



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

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

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


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



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

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

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

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

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


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

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

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


13:00 — 14:00 Обед

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

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

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

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


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

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


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

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

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

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

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

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


17:15 — 18:00 «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 нетривиальной задачей;
  • продемонстрировать ход решения этой задачи.


18:15 — 19:00 «Garbage collection in Lua / Сборка мусора в Lua», Роберто Иерусалимский, PUC-Rio

Бонусный доклад от Роберто.


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!

+24
1.9k 6
Comments 8
Top of the day