Прямая трансляция

О конференции

Конференция Lua in Moscow 2019 пройдёт в  Москве,  3 марта 2019г.

Цель конференции — собрать вместе Lua-сообщество, чтобы его представители могли встретиться лично и обсудить язык Lua, его использование и применения. Главным гостем и докладчиком конференции будет Роберто Иерусалимский, создатель языка Lua и профессор PUC-Rio.

Конференция открыта для всех, кто заинтересован в Lua. Регистрационного взноса нет, но участники должны зарегистрироваться заранее, поскольку количество мест ограничено.

Рабочим языком конференции является английский.

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

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

Свяжитесь с нами, если вам нужна помощь или если у вас есть какие-либо особые требования.

Место проведения

Конференция будет проводиться в офисе Mail.Ru Group по адресу:
Ленинградский проспект, дом 39 корпус 79


Программа конференции

Воскресенье, 3 марта 2019г.

Выдача бейджей
Large Conference Room

Roberto Ierusalimschy
Julien Desgats
Sergey Lerg
Michael Filonenko
Roberto Ierusalimschy
Круглый стол
Cinema Hall

Mons Anderson
Mons Anderson
Sergey Lerg


Roberto Ierusalimschy

  Why (and why not) Lua
Roberto Ierusalimschy PUC-Rio

The design of a programming language, as that of any other artifact, entails many tradeoffs involving conflicting requirements. Different languages solve these tradeoffs in different ways, making each more appropriate for some scenarios and less attractive for other settings.

Lua has its own set of goals, which guides its design. This set prioritizes embeddability, small size, simplicity, and portability. (There are other goals, too, such as performance and ease of use by non-professional programmers.)

In this talk, we will discuss the impact of this set of goals. We will see how these goals impact the language itself, how it impacts its uses, and how it impacts its suitability for different application domains.

Julien Desgats

Resty-threadpool: Reinventing Apache in nginx
Julien Desgats CloudFlare

Asynchronous event loops are a proven way to scale network servers, nginx (among many other successful products) use this technique at its core. However its performance depends on a key assumption: the business logic must not run for too long, otherwise the overall performance collapses quickly.

At Cloudflare[1], we rely heavily on OpenResty[2] (nginx+Lua+libraries) for our edge servers and ensuring a predictable performance is critical. Offloading some complex parts of the processing outside of the event loop is therefore necessary and was usually done by writing microservices. We tried another approach leveraging the nginx thread pool feature [3]. In this talk I will go in detail about the the challenges and results of taking core security features out of the event loop.

Yaroslav Dynnikov

Tarantool team’s experience with Lua developer tools
Yaroslav Dynnikov Mail.Ru Group

Every programming language has its own ecosystem, which is important for community wellbeing. Application development is not only about writing the code, but also about testing it, optimizing and sharing with others. Here in Tarantool we have many developers, who interact with Lua full-time.

I’m going to discuss different aspects of Lua development in our environment. How we write code comfortably with linting. What tools we use for debugging and testing. How we manage documentation and packaging conveniently. And, more importantly, what features we lack.

Sergey Lerg

  Shaders and Lua
Sergey Lerg Spiral Code Studio

It's not possible to write shaders in Lua, but it's possible to control them with Lua. I want to demonstrate how easy it is to make beautiful effects with the power of GLSL and Lua. Additionally I will provide useful tips and tricks of working with shaders in the Defold game engine.

Michael Filonenko

DSL compilation with DynASM
Michael Filonenko Mail.Ru Group

Dynasm is machine code generator for several architectures (x86, x86_64, etc). It contains two parts:
- machine code generator written on c
- and assembler preprocessor on lua.

Original preprocessor works only with c/assembler sources. And there is fork by luapower which can preprocess lua files with assembler code generators. There is case when we want to use logic from user-input. Let's research this toolset and make simple s-expression compilator. The main question is "How comfortable it is to make compilator for user input"
Maxim Bolshov

  Challenges of ‘pairs’ and ‘next’ JIT compilation
Maxim Bolshov IPONWEB

In IPONWEB we have our own Lua implementation. It was forked from LuaJIT 2.0 and inherited all its limitations. In particular, ‘pairs’ and ‘next’ functions were not supported by JIT compiler. However, on our Lua codebase this is a top-3 reason of trace compilation aborts, which imposes some trade-offs between code style and application performance.
In the talk I am going to:
* discuss what it means to make library function call JITable;
* explain implementation specifics of ‘pairs’ and ‘next’ in LuaJIT;
* tell about JIT limitations which makes ‘pairs’ and ‘next’ compilation a not so trivial task;
* demonstrate our progress in solving this task.

Roberto Ierusalimschy

Garbage Collection in Lua
Roberto Ierusalimschy PUC-Rio

In this talk, we discuss how the garbage collector in Lua has evolved, from a simple mark-and-sweep collector to an incremental collector and then to the new generational collector, to appear in Lua 5.4.

Mons Anderson

Tarantool usecases for rich applications
Mons Anderson Mail.ru Cloud Solutions

At first look, Tarantool is a database. And rather hard to see the whole potential of this product as an application server. I will tell and show how to unlock its potential: how to use the built-in LuaJIT server with sockets, fibers, channels, ffi and many more. How to make code to be reloadable on the fly. These themes will be discussed step by step on the example of building the queue server as a sample application.

Sergey Lerg

  Making a simple platformer with Defold
Sergey Lerg Spiral Code Studio

Platformers are a very popular game genre, some are simple, some are rather complex. In this workshop I will demonstrate how to make a basic platformer with the Defold game engine. Most tutorials on this topic tend to oversimplify things with handcrafted levels when they can be generated and with the usage of a physics engine when it's completely unnecessary.


Конференция организована Александром Гладышем при поддержке спонсоров. Председатель программного комитета конференции Lua in Moscow 2019 Антон Солдатов.


Свяжитесь с нами


Расскажите о конференции