The Lua Workshop 2014 will be held
in Moscow, Russia,
on September 13–14, 2014.
As in previous workshops
the main goal of the workshop is to allow the Lua
to get together and meet in person and talk about
the Lua language, its uses, and its implementation.
The workshop is open to everyone interested in Lua.
There is no registration fee but participants are required to
because space is limited.
Arrangements for lunches, coffee-breaks, and dinners depend on the number of attendees and will be announced later.
The spoken language of the workshop is English.
Translation of talks to Russian is not planned
translation of the after-talk questions from Russian-speaking attendees will be provided.
Please make your own
if you need help or have special requirements.
Registrations are now closed.
We shall have
a plenary talk by
(Lua's chief architect)
and several contributed talks.
There will also be plenty of time for getting together and chatting about Lua.
If you'd like to speak at the workshop,
please send a tentative title and a short abstract to the
with your registration.
The final program is shown below but it is still subject to last-minute changes.
The workshop will be held at
Mail.Ru Group office building
Leningradsky prospekt 39, corp. 79
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 workshop 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.
The workshop 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. You may use this service to find out approximate travel times from your hotel.
The workshop is organized by
and the sponsors below.
The organizers can be contacted at
- Sergey Lalov (Spiral Code Studio)
- Min-Jung Yoo (EPFL)
- Michel Martens (openredis)
- Vadim Zborovskii (SRC RF TRINITI)
- Volodymyr Bezobiuk (ITP Soft)
- Roberto Ierusalimschy (PUC-Rio)
- Alexander Gladysh (LogicEditor)
- Alexander Altshuler (LogicEditor)
- Yuriy Metelev (Mail.Ru Group)
- Dmitry Shveenkov (Mail.Ru Group)
- Alexander Panfilov (Mail.Ru Group)
- Aleksey Ischenko (Mail.Ru Group)
- Dmitry Isaikin (Mail.Ru Group)
- Ilyas Guseynov (Mail.Ru Group)
- Anvar Allagulov (IPONWEB)
- Mikhail Rotfort (Mail.Ru Group)
- Denis Belyaev (Mail.Ru Group)
- Konstantin Osipov (tarantool.org)
- Pavel Klepinin (Mail.Ru Group)
- Nikita Krivosheev (Mail.Ru Group)
- Valery Sorokin (RDtex)
- Ilya Martynov (IPONWEB)
- Ivan Remen (Mail.Ru Group)
- Kirill Dolgopolov (8bit Group)
- Mons Anderson (Mail.Ru Group)
- Serge Velikanov (8bit Group)
- Dmitry Kotelnikov (IPONWEB)
- Natalya Savenkova
- Igor Sysoev (NGINX)
- Andrey Sinitsyn (Ratengoods.com)
- Vladimir Iofik (IPONWEB)
- Maxim Pugachev (IPONWEB)
- Aleksey Akulovich (Embria)
- Marsel Taipov (IPONWEB)
- Semen Lobov
- Veniamin Gvozdikov (CloudLab)
- Dinar Sabitov (Mail.Ru Group)
- Alexey Melnichuk (IntelCom-TG)
- Alexey Voskov (Lomonosov Moscow State University)
- Vladimir Evrasenkov (IPONWEB)
- Renaud Kern (Teti)
- Dmitry Smal (Mail.Ru Group)
- Ivan Panchenko (Mail.Ru Group)
- Dmitry Kargin (SyboTech)
- Abbas Majeed (Swenggco Software)
- Anriett Gladysh (LogicEditor)
- Vladislav Golubev (LANBilling)
- Alexey Tokar (Delta Systems)
- Bibin Sergey (Digital Design)
- Stanislav Sviridenko (ZAO Argumenti i Fakti)
- Alexey Kornev (SSJ ltd)
- Pavel Shchedukhin (DeBIA Limited)
- Evgenii Manaev (WeLike)
- Vasily Kotov (PROFI)
- Taras Shapovalov (Bright Computing)
- Max Vorontsov (R-Style)
- Konstantin Burkalev (ZAO Gollard)
- Ivan Alekseev (Autonomous systems)
- Nikita Grishaev
- Nikolay Kim
- Misha Bashkirov (AT Consulting)
- Mikhail Epikhin (Yandex)
- Aleksander Balakshin (CowBell GameDev)
- Igor Ehrlich (IPONWEB)
- Lev Leontiev (IPONWEB)
- Eugene Bolotin (Yandex)
- Pyotr Besedovskiy (VNIIAS)
- Ilya Malinowskiy (LH lim)
- Yury Khalyavin (IPONWEB)
- Iliya Tikhonov
- Nikita Elagin (IPONWEB)
- Roman Bystritsky (Mobisoft LLC)
- Arman Musaev
- Filip Itskov (MedITGroup)
- Dmitry Krylov (IPONWEB)
- Alexey Kopytov (InfoTeCS)
- Dmitry Ryabokon (InfoTeCS)
- Evgenia Mushanov (Kronos-Inform)
- Koss Rayndson
- Vadim Babaev (Badoo)
- Ilja Belov (Eagle Dynamics)
- Nikita Selednikov (Z-Wave.Me)
- Sergey Tripolev (GTA-Multiplayer.com)
- Boris Ryutin
- Andrey Masunov (DB)
- Vitaliy Zolotorevskiy
- Aleksandr Pavlov (NetCracker)
- Alexander Zhabrev (Soinland)
- Sergey Perelygin
- Andrey Kirillov (Mail.Ru Group)
- David Davitlidze (Next-2)
- Vasilii Artemev (Wagado)
- Vladislav Levitskiy (MIS&S)
- Aydar Biktimirov (ABBYY)
- Anton Atomanenko (Qiwi)
- Dmitry Frantsev (Federal state unitary enterprise EZAN)
- Andrey Karpov (Federal state unitary enterprise EZAN)
- Iaroslav Popov (private web developer)
- Emelyanov Timofey (OOO)
- Andrey Melnikov (One Agile)
- Andrey Olishchuk (Intellectual Systems)
- Aleksey (TNL)
- Pëtr Myazin (Forward Exp Limited)
- Denis Rakcheyev
- Vladimir Stebunov (Agilefusion)
- Oleg Kravchuk (Amadeus Ukraine)
- Yulia Chistova
- Timur Kashafutdinov (Buka Development)
- Stas Schetinnikov (Mail.Ru Group)
- Sergey Morozov (Intervale, CJSC)
- Dmitry Kozlovtsev
- Sergey Nikitin (3Detection Labs)
- Igor Kukushkin (ASTDS)
- Artem Pleschenko
- Vitaly Chudovsky (ArconaGames)
- Ilya Soin (Soinland)
- Galanin Mikhail (Mail.Ru Group)
- Kopa-Ovdienko Vladimir (Game Insight)
- Petr Kovesnikov (Mail.Ru Group)
- Alexander Korepanov (IPONWEB)
- Petr Kohts (IPONWEB)
- Pavel Vinogradov (IPONWEB)
- Vasiliy Sabadazh (Ivideon)
- Alexander Sidyakin (Gollard)
- Andrew Irushkin (Cinimex)
- Artem Serebryakov (Mail.Ru Group)
- Natalia Serebryakova (MegaFon)
- Artem Gavrilov (labirint)
- Ilya Irkhin
- Ilya Azbel (IPONWEB)
- Sergey Gorbunov (Game Insight)
- Pavel Lakosnikov (Game Insight)
- Alexey Kopytov (Percona)
- Alexei Lyubimov (Neolant)
- Taras Remez (Telix)
- Andrey Bronin (Kaspersky Lab)
- Maxim Molchanov (Intellect telecom)
- Anatoly Kamchatnov (MTUCI)
- Pavel Safronov (Yandex)
- Kirill A. Shabordin (Synqera LLC)
- Allien Po (Zillion Whales)
- Eugene Shevkunov (IPONWEB)
- Alyona Bibina (Nival)
- Evgeny Proydakov (OOO Wicron)
- Ekaterina Kharitonova (Kaspersky Lab)
- Sergey Vasyunin (Slot Constructor LLC)
- Evgeny Bashurin (Southwest State University)
- Igor Ovchinnikov (IPONWEB)
- Ilya Brodsky (IPONWEB)
- Michael Meschansky (Mail.Ru Group)
- Mikhail Dmitriev (ZAO Infowatch)
- Alexey Fokin
- Alexander Zubkov (Lomonosov Moscow State University)
- Vladimir Lebedev (Sberbank, Russia)
- Maria Vorontsova (freelance)
- Ruslan Gustomyasov (adfox)
- Andrey Yashchenko (ITKCON.COM)
- Nikolay Zykov (TSNIImash)
- Enrico Colombini (freelance author)
- André Riesberg (Ing. Büro Riesberg GmbH and NOGS GmbH)
- Carsten Möllers (NOGS GmbH)
- Vasiliy Yanushevich (CloudTeam)
- Yuri Barbashov (CloudTeam)
- Sabyrzhan Tasbolatov (freelancer)
- Konstantin Novikov
- Nickolay Antsiferov
- Roman Dedenok (Kaspersky Lab)
- Ekaterina Ovcharenko (Kaspersky Lab)
- Kirill Zhuravlev (ShoppyBoom)
- Timir Nureev (Detectum)
- Vladimir Ageykin (Alunisol)
- Sergey Sobko (RosBusinessConsulting)
- Maurice Courtois
- Javier Guerra G. (Snabb GmbH)
- Gaspard Bucher (teti)
- Michael Liskov (Delin)
- Nguyen Tuan Vet (ZAO "Sinimeks Informatics")
- Vasily Gnoevoy (RTEC)
- Dmitriy Polyanin (Mail.Ru Group)
- Sergei Chernousov
- Evgeniy Mironov (Luxoft)
- Oleg Popenkov (Sinderium)
- Sergei Kiselev (Motorola Solutions)
- Olga Slepova (Delin)
- Nail Shiran (Sinderium)
- Artem Bernev (Multi Theft Auto Community)
- Andre Murbach Maidl (PUC-Rio)
- Nikolay Ryshkov (OAO PO TEK)
- Tomi Tavela
- Aapo Talvensaari (Talvensaari Solutions)
- Toudeka Kossi (ONG LUMIERE PLUS)
- Darwalls Kouakou Pele (ONG LUMIERE PLUS)
- Dovi Kwassi (ONG LUMIERE PLUS)
- Maria Dolgikh (Dubna University)
- Dmitry Potapov (LogicEditor)
- Vitaliy Zheleznov (LogicEditor)
- Vladimir Fedin (LogicEditor)
- Oksana Kozlova (LogicEditor)
- Vladimir Dronnikov (LogicEditor)
- Aleksandr Krivopustov (Delovye Linii)
- Simon Kataev (avito.ru)
- Michael Monashev (Beon.ru)
- Nikolay Meleshenko (Mail.Ru Group)
- Ilya Polev
- Dmitry Bezmelnitsin
- Hisham Muhammad (LuaRocks and PUC-Rio)
- Andrey Skryabin (PHORM)
- Mikhail Koltsov (PHORM)
- Vladislav Nezhdanov (IPONWEB)
- Kirill Dotcenko (Southwest State University)
- Igor Groshev (Total Bird Corp.)
- Shamil Saitov (ZAO InfoWatch)
- Alexander Rzhevskiy (Sportmaster)
- Vladislav Balashov
- Ilya Chesnokov (PerlJobs.Ru)
- Alexander Davydov (IPONWEB)
- Sergey Palitsyn (SyboTech)
- Ivan Beliy (Marmalade LLC)
- Oleg Stolonogov (IPONWEB)
- Dovjik Svetozar
- Aleksey Zakhozhiy (Mail.Ru Group)
- Nikolay Alekseev (Mail.Ru Group)
- Yuriy Vostrikov (Mail.Ru Group)
- Eugine Blikh (Mail.Ru, Tarantool)
- Sergey Yershov (Mail.Ru Group)
- Artem Gurevich (Mail.Ru Group)
- Alexander Laptev (GMCS)
- Yurii Sokolov (Mail.Ru Group)
- Oleg Tsarev (Mail.Ru Group)
- Roman Tsisyk (Mail.Ru Group)
- Nikolay Popesku (8bit Group)
- Evgeniy Shadrin (Mail.Ru Group)
- Eugene Soldatov (Mail.ru Group)
- Zlata Besedovskaya
- Michael Kuryshev
- Alexander Orlovskiy (sports.ru)
- Vasily Kulikov
Integers in Lua 5.3
In this talk we will discuss why and how Lua 5.3 will bring integer numbers.
What's new in LuaRocks
(LuaRocks and PUC-Rio)
This talk will discuss the latest developments in the world of
LuaRocks, the package manager for Lua modules. It will start by
introducing the LuaRocks tool, for those who are not familiar with it.
Then, I will present what has changed in this past year: the move to a
open repository, automation of the upload process and the latest
efforts in making the tool more flexible. A revision of the format for
specification files (rockspecs) has been long overdue, and in this
talk we'll discuss the changes needed to make the format fully
Lua as a script language for industrial process design and optimisation with energy integration
Currently we are developing an open source platform for Energy
Systems Integration for industrial processes using Lua. The purpose
of the project is to provide a generic modeling and optimization
platform for industrial process integration and their optimization
in terms of energy efficiencies and environmental issues. Already
at our laboratory, there was a platform, developed on MatLab, for
the purpose of Energy Integration. By developing a new generation
of Energy Systems Integration platform in Lua, we are targeting the
range of integration towards GIS Data integration and LCA issues.
The presentation will mainly concern our project content and also
our challenge in launching a new doctoral course in Lua.
LuaOsmose: a Lua based framework to design and analysis integrated energy system
This talk will focus on technical aspects of building a complete Lua framework for scientific users with no or few programming skills. We will cover the strengths of Lua in this project such as, small footprint, speed, painless DSL, quick prototyping, glue language with other system components. We will also discuss some of the weaknesses that we've encountered and how we solved them.
A metaprogramming compiler for interactive ebooks
The Medusa compiler takes a book source including Lua code, e.g. for puzzles or exercises, and generates a (possibly very large) set of immutable hyperlinked pages. This 'printed once and for all' set of pages mimicks a runtime program behaving like the original code; the author can thus give the impression of complex dynamic behaviour (similar to the logic in modern graphic adventure games) in a static ebook, printed book or static Web site. Some topics of the talk are:
- From ancient gamebooks to static ebooks: how to represent variables and state.
- Compiler structure and design choices; using Lua environments to efficiently handle page states.
Lua as the common language for the internet of things
(Ing. Büro Riesberg GmbH and NOGS GmbH)
The talk is about how to make smart objects really smart. It displays an
approach of dynamic coding as a communication principle.
The report proposes a new IoT framework, called Nogs, which does not
only help to simplify communication but also addresses various
challenges of embedded software development.
Lua in low-level programming
Javier Guerra Giraldez
Snabb Switch is an unusual project in many ways, over 90% written in Lua, it has very tight performance goals, it's own 10Gbit Ethernet driver, and deep collaboration with virtual machine networking. This talk first presents the niche, goals and overall structure of Snabb Switch, then shares some of the lessons learned to make most of LuaJIT: how the FFI makes low level programming possible, how the performance goals were met and where the dynamic nature of Lua was a challenge and where it wasn't.
lubyk, a set of Lua libraries for live arts
Using Lua for event scheduling, live coding, midi transformation,
3D simulation, OpenGL shaders, etc.
Typed Lua: an optional type system for Lua
Andre Murbach Maidl
Dynamically typed languages such as Lua trade flexibility
and ease of use for safety, while statically typed languages
prioritize the early detection of bugs, and provide a better
framework for structuring large programs.
The idea of optional typing is to combine the two approaches
in the same language: the programmer can begin the
development with dynamic types, and migrate to static types
as the program matures.
The challenge is to design a type system that feels natural
to the programmer that is used to programming in a
This talk presents the initial design of Typed Lua, an
optionally-typed extension to Lua, and through code examples
shows how Typed Lua handles some of the idioms that Lua
programmers are used to, bringing static type safety to these idioms.
Game development with Corona SDK and Lua
(Spiral Code Studio)
Lua is often used as an extension for games written in C/C++ or other
"lower level" language, however now some game engines allow developing
entirely in Lua. Corona SDK is one of such frameworks. This approach
has proven to be fast to develop, clean to read and easy to maintain
with almost no performance drawback. From this talk you will know more
about Lua usage for game development, how to write clean code and make
the best of Lua.
Lua as business logic language in high load application
This report covers our experience building custom HTTP web server used for
the delivery of internet advertising. The application design has as one
goals finding the right balance between high performance and ease of
development. To achieve this goal we are using Lua as a business logic
scripting language embedded into C++ application. The report tries to
explain how and why we use Lua and how the choice of Lua affects
architecture of the application.
This report is about various pitfalls somehow related to Lua. We know them firsthand because dozen of our developers use Lua to implement business logic. Even obvious traps may hit the wallet and the psyche. Additionally possible workarounds will be given.
The report will contain a list of peculiarities of the Lua, missed that you can get a bug. Mainly this will be well-known things, such as nil in the table or global variables. Everything I tell you is not a revelation. All this can be seen in the pages of documentation, on the internet or learn from your colleagues. But for many it's just knowledge, not experience. The most reliable way to learn not to make mistakes is to make every mistake at least once. Preferably with serious consequences -) And for most of the knowledge we really had to pay. So for us it is truly an experience. I will try to share our experience with you, and I hope that these traps will cost you less.
Lua binding for C++11
An open-source library that uses C++11-powered template metaprogramming to create low-overhead object-oriented Lua binding. It provides automatic stack management, natural-form expressions including calls and indexation, seamless value traversal, full support for multiple value returns and automatic function wrapping.
Homemade load balancing with nginx + Lua
Andrey Kononov and Anton Shcherbinin
How to consistently divert users to backends based on users' IP
addresses, cookies, phase of the Moon, you name it.
Sailor — a web MVC framework in Lua
(PUC-Rio and ENSTA Bretagne)
Lua's use in web tools, despite its great potential, is not yet
widespread. Having had
experience as a web programmer, and aiming to learn more about this language, I
started a marathon that produced an MVC framework completely written
in Lua, called Sailor.
This talk presents the beginnings of Sailor, a comparison with other
existing tools, the current
stage of Sailor's development today and intends to start a debate on
what we can do to
spread the idea of using Lua more in web development.
sailor at github.com
A little code goes a long way — cross-platform game development with Lua
Ivan Beliy will talk through the simple easy steps to
take a game written in Lua to a whole host of mobile devices with Marmalade
Quick. He will also delve into the extensibility available in Lua with open
source access to the Marmalade Ecosystem and overlap with the Cocos2D
Ecosystem, using live demos and examples.