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

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

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

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

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

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

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

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

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

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


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

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

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

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

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.

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.

Vadim Zborovskii

Processing FEA data with Lua
Vadim Zborovskii SRC RF TRINITI

Software packages for finite element analysis (FEA) are known for variety and complexity of their data files. Files can contain mesh, problem statement as well as results of the simulation. Stock pre/postprocessors are designed for the most common use scenarios and sometimes don't have enough flexibility to handle certain tasks.

And then Lua comes to the rescue. In the talk we discuss three real life stories about nuclear fuel simulation when Lua works together with finite element software. The first one involves generation of a quality mesh to calculate node-to-node contact of two bodies. The second story deals with coupling of commercial FEA code with the in-house code for the thermomechanical analysis of a fuel rod. The third case is about preparing the input files and converting the result files for the free FEA code CalculiX.

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.

  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.

Michael Filonenko

Intro to dynasm from luajit
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.

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.

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.


Конференция организована Александром Гладышем при поддержке спонсоров.


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


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