Workshop Live

About Conference

The Lua in Moscow Conference 2017 will be held in
Moscow, Russia, on
March 5, 2017.

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.

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

The spoken language of the conference is Russian. Some talks will be presented in English, without translation. See the schedule.

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).

Travel

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.

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.

Abstracts

First-class functions (a.k.a. closures, lambdas, anonymous functions)
are a hallmark of functional languages, but they are a useful concept in
imperative languages, too.

In most imperative languages, however, first-class functions are an
advanced feature used by seasoned programmers. Lua, by contrast,
uses first-class functions as a building block of the language.
Lua programmers regularly benefit from diverse properties of its
functions for routine constructions such as exception handling, module
definitions, object-oriented programming, and iterators. Moreover,
first-class functions play a central role in the API between Lua and C.

In this talk, we will discuss how the mechanism of first-class
functions has impacted the design of Lua and will also glimpse at its
implementation.

Vanilla Lua interpreter (aka PUC-Rio Lua) is quite fast, and Lua as a
language is designed to be easily embeddable into other systems. But
sometimes there is still a need for an alternative language
implementation: For example, there may be strict business requirements
about performance. At first glance, Lua ecosystem provides means for
building custom implementations of the language: There is a Reference
Manual which covers the language, including libraries and APIs. There
are also test suites (both official and third-party) for evaluating
compliance.

However, while working on a custom Lua implementation, we have faced
certain problems which I'd like to discuss in this talk with the focus
on:

• Interpreting the Reference Manual and integrating the official test suite;
• Choosing among multiple third party validation suites;
• Ensuring compliance for APIs provided by the Lua standard libraries.

Using Lua as a language for fault-resistant distributed backend web-applicationsKonstantin OsipovTarantool

Tarantool - DBMS and high-load applications server, so it has
special requirements to language. Reliability and performance -
are main values but ease of use is very valued too.
Lua, more specifically LuaJIT 2.1 is our main application language
for today. Recently we added support also for Rust, Swift,
C and C++. We have unique experience of "using" Lua as constantly
investigating accidents and crashes from Tarantool users,
which occurs both in production and developments stages.
So we've got a quite complete picture of requirements for
ideal language for back-end.

So my talk will be dedicated to hypothetical requirements for
"ideal" language: - reliability: program must never end of
host process. - predictability: garbage collection and runtime
actions should be predictable for developer. - security -
language syntax should be safe in runtime. This concerns
usage of undeclared variables and also type system, specifically
behavior at division by 0 or at overflow.

Can Lua become such language?

The rocky road to mcodeJavier Guerra GiraldezCloudflare

LuaJIT can run Lua at amazing speeds, but it's often hard to know what
it really does and when, leading to mystification and cargo cults.
Here we follow step by step the journey from Lua source code to the
final machine code actually executed, using Loom as a visualization
and learning tool.

Today there are a plenty of tools for Internet-advertisement analysis –
Google Analytics, Yandex.Metrika etc. No less them for management and
automation of context-advertisements: R-broker, K50, Alytics etc.
These tools are good enough for their tasks. When development
of own toolset makes sense? How this toolset may look like, in what
sequence it should be created, what side projects may be useful?
Basing on self-experience, author will try to answer for these and
other questions.

Hard work of making native plugins for a crossplatform game engineSergey LergSpiral Code Studio

Lua is a beautiful language, it makes complex things easy. In
crossplatform game engines one Lua function can lead to hundreds of
lines of native code (C++/Java/Obj-C) which are hidden from the game
developer and let focus on the end product.

In this talk I show how I create native plugins for the Corona SDK
game engine, how different implementations of the same thing on
different platforms turn into beautiful uniform Lua API.

How to make Lua-developers life better and more pleasant?Artyom ZotovIPONWEB

IPONWEB develops cross-platform solutions for online advertising
market and offers it for clients via SAAS model. Business logic
is implemented in Lua so IPONWEB seeks and hires Lua developers.

Problem:
search on hh.ru for vacancies with Lua keyword returns near 700 CVs.
Compare it with results for other keywords: Perl: 9000 CVs,
Python: 14 000 CVs, PHP: 55 000 CVs.
On job market are very few developers with Lua experience.
IPONWEB business grows very rapidly in recent years and company need
to hire more and more new Lua-developers.
What should be done? Creation of ideal conditions for work and
professional development.
How we are doing it? This is what my presentation will be about :)

Organization

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