About Conference


The Lua in Moscow Conference 2019 will be held in  Moscow, Russia, on  March 3, 2019.

The main goal of the conference is to allow the Lua community to get together and meet in person and talk about the Lua language, its uses, and its implementation. The conference is open to everyone interested in Lua.The chief guest and speaker of the conference is Roberto Ierusalimschy, the creator of Lua language and Associate Professor of Computer Science at PUC-Rio

There is no registration fee but participants are required to register because space is limited.

The spoken language of the conference is English.

There will be free coffee available between talks. There would be a canteen open during the lunch break, where attendees would be able to have a lunch (paid separately).

Please make your own visa, travel and accommodation arrangements.

Contact us if you need help or have special requirements.

Venue


The conference will be held at
Mail.Ru Group office building
Leningradsky prospekt 39, corp. 79
Moscow

Visa

Make sure to check whether you need a visa to enter Russia.

Getting a visa may take some time. It is better to start early. Way to Russia seems to be a good guide on getting visas. (That guide and visa company are not endorsed by the organizers.)

Invitation letters for the conference attendees and speakers are available from the organizers, upon request. Please allow for some time to get them made.

Travel

There are three international airports in Moscow. Depending on where you are, there are good chances that you'll be able to arrange a direct flight.

If your flight arrives from (approximately) 04:00 AM to 00:00 AM, the best way to get to the city is to take a fast and comfortable Aeroexpress express train (trains from 05:00 AM to 01:00 AM, depending on the airport). Please double-check the schedule.

If you arrive at night, the best way is to arrange a taxi. Please use the official airport taxi service. Avoid private drivers. You may also use online or mobile taxi services, like Wheely, GetTaxi, or Yandex.Taxi (but using Economic class cars with Yandex.Taxi is not recommended).

Your hotel may also provide an airport transfer service, free of charge in some hotels. Make sure to ask them.

Once in the city, the best way to get around is by the extensive Moscow Subway network. Car traffic in Moscow can be very congested, especially on business days. If you rent a car or hire a taxi, you may spend a significant time in a traffic jam. At night and on weekends, the traffic is usually bearable, but keep in mind that suburban traffic (for instance, to and from an airport) is often very bad on weekends with good weather.

Accommodation

There are a great many hotels and hostels to pick from in Moscow. Use a service like booking.com to find one you like.

The conference venue is within five minutes of walk from the Moscow subway station named "Aeroport" (even though there is no actual airport there). The Moscow subway network is extensive and reliable (and very beautiful) and usually not too jammed with passengers on weekends.

FAQ


Make sure to check whether you need a visa to enter Russia. Getting a visa may take some time. It is better to start early. Way to Russia seems to be a good guide on getting visas. (That guide and visa company are not endorsed by the organizers.)
Invitation letters for the conference attendees and speakers are available from the organizers, upon request. Please allow for some time to get them made.

There are three international airports in Moscow. Depending on where you are, there are good chances that you'll be able to arrange a direct flight.

If your flight arrives from (approximately) 04:00 AM to 00:00 AM, the best way to get to the city is to take a fast and comfortable Aeroexpress express train (trains from 05:00 AM to 01:00 AM, depending on the airport). Please double-check the schedule.

If you arrive at night, the best way is to arrange a taxi. Please use the official airport taxi service. Avoid private drivers. You may also use online or mobile taxi services, like Wheely, GetTaxi, or Yandex.Taxi (but using Economic class cars with Yandex.Taxi is not recommended).

Your hotel may also provide an airport transfer service, free of charge in some hotels. Make sure to ask them.

Once in the city, the best way to get around is by the extensive Moscow Subway network. Car traffic in Moscow can be very congested, especially on business days. If you rent a car or hire a taxi, you may spend a significant time in a traffic jam. At night and on weekends, the traffic is usually bearable, but keep in mind that suburban traffic (for instance, to and from an airport) is often very bad on weekends with good weather.
There are a great many hotels and hostels to pick from in Moscow. Use a service like booking.com to find one you like. Check hotels Aerostar, Aeropolis, Ibis Dynamo, as they are close to the conference site.
The spoken language of the conference is English.

Registration


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

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


10:30—11:00
Badge pick-up
Lobby
Talks
Large Conference Room

11:00—11:45
Roberto Ierusalimschy
13:00—14:00
Lunch
14:00—14:45
Vadim Zborovskii
15:00—15:45
Sergey Lerg
15:45—16:15
Coffee Break
16:15—17:00
Michael Filonenko
18:15—19:00
Julien Desgats
19:15—20:00
Round table
Workshops
Cinema Hall

14:00—15:45
Mons Anderson
16:15—18:15
Sergey Lerg

Abstracts


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.

Organization


The conference is organized by Alexander Gladysh and the sponsors below.

Sponsored by


Contact Us

 agladysh@lua.moscow

Share

#luainmoscow19