Lua Workshop 2012

registration · program · venue · accommodation · weather · organization · participants · abstracts · tweets · photos · videos

The Lua Workshop 2012 will be held at Verisign's headquarters in Reston, Virginia, on November 29–30, 2012.

As in previous workshops (2005, 2006, 2008, 2009, 2011), the main goal of the workshop 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 workshop is open to everyone interested in Lua. There is no registration fee but participants are required to register because space is limited.

Please make your own travel and accommodation arrangements. Contact us if you need help or have special requirements.


Registration is now closed. See the list of participants.


We shall have a plenary talk by Roberto Ierusalimschy (Lua's chief architect) and several contributed talks. There will also be plenty of time for getting together and chatting about Lua.

The final program is below (subject to last-minute changes).

There is a cafeteria in the building, right next to the workshop room. There are also 10–15 restaurants within a five minute walk of the Verisign headquarters for those who wish to eat somewhere else.

Thursday, Nov 29th

8:30 welcome and badge pickup
9:00 Textadept – Behind the Scenes
9:35 Gemini – An Open Source Library for Game Development on iOS Using Lua
James Norton
10:10 Lua Kernel Module 'Lunatik' modified for FreeBSD
Waitman Gobble cancelled
10:45 break
11:00 What is Next for Lua? A Personal Perspective
Roberto Ierusalimschy
12:10 lunch
2:05 picoDB: a no-SQL database tool for eLua
Tom Freund
2:40 Incrementally developing and implementing Hirschberg's longest common subseqence algorithm using Lua
Robin Snyder
3:15 Using Lua for Integration with a specialized IDE
Eliot Muir
3:50 break
4:20 Lua multi VM system for home automation
Filip Zawadiak
4:55 Crazy Ivan – Lua Driven Robots
Erik Hougaard
5:30 adjourn

Friday, Nov 30th

8:30 welcome and badge pickup
9:00 Building a Lua Based Platform (Luvit)
Tim Caswell
9:35 Small Team, Huge Game, and Lua
Brian Cronin
10:10 LuaFlow – An Open Source Lua OpenFlow controller
Raphael Amorim
10:45 break
11:00 Incrementally developing and implementing Hirschberg's longest common subseqence algorithm using Lua
Robin Snyder moved to thursday
11:35 Adding an Lua-based integrated character-based menu system into the SciTE editor
Robin Snyder
12:10 lunch
2:05 High performance applications utilizing real-time decision making
Francis Garvey and John Rodriguez
2:40 Integrating Lua for fun and profit: Vim's if_lua and PostgreSQL's PL/Lua
Luis Carvalho
3:15 break
3:45 Build your M2M application with Lua
Fabien Fleutot
4:20 Using Lua for Integration with a specialized IDE
Eliot Muir moved to thursday
4:55 open discussion video
5:30 adjourn


The workshop will be held at

Verisign's Worldwide Headquarters
12061 Bluemont Way, Reston, VA 20190
(703) 948-3200

See map and directions.

Attendees will probably fly into Dulles International Airport, which is 15 minutes away. There are two other airports fairly close (Reagan and Baltimore). Washington DC is 21 miles from Reston, VA.


The closest hotel to the venue, and the only one within walking distance, is the Hyatt Regency Reston. Rooms will be available to Lua Workshop attendees at the Verisign rate, which is $259/night. When making reservations, make sure to request the "Verisign rate".

There are several other hotels nearby (0.5 to 2 miles) with varying levels of rates. The list below is not exhaustive and the prices given are approximate:


The workshop is organized by John Rodriguez and the Lua team.

The organizers can be contacted at

Sponsored by


It will be cool in late November in Reston. Here is what to expect:



Textadept – Behind the Scenes slides video
Mitchell (

Textadept is a fast, minimalist, and ridiculously extensible cross-platform text editor for programmers. It is written in a combination of C and Lua. Textadept uses Lua to solve many interesting and complex problems encountered in text editor design, including syntax highlighting, syntax-based code completion, and scripting external C libraries and GUI components. This talk will focus on examining the internals of Textadept, from its innovative LPeg syntax highlighting engine to the embedded Lua scripting environment that provides nearly all of the editor's features. Come learn about Textadept and also about how you can use and extend it to fit your workflow.

Crazy Ivan – Lua Driven Robots video
Erik Hougaard (E Foqus Denmark)

For the last 11 years, a competitor in the Danish robotic race "DTU RoboCup" has been a Lua driven robot called 'Crazy Ivan'. Crazy Ivan is one of the most successful robots in the competition. The Crazy Ivan robot is designed to drive through a predefined race track and solve different tasks such as climbing stairs, passing a guillotine, playing golf and much more. Lua is used as the programming language for the robot's "brain" and all decisions are taken in Lua. This is the fourth incarnation of the robot, now vision based. During the presentation, Crazy Ivan will be running live on the floor while its "Master" will try to control the action. Anything can? and will? happen!

Gemini – An Open Source Library for Game Development on iOS Using Lua slides video
James Norton (Stoked Software)

Gemini is an open source library under development that provides functionality for scripting iOS games in Lua. This talk will introduce the features of Gemini including the high performance OpenGl ES 2.0 based graphics system with support for layers, lines, rectangles, ellipses, and sprites. The talk will also discuss the overall architecture of the library including support for events, rendering callbacks (callbacks registered by the user to render specific layers in non-Lua code), and the class hierarchy used in the library.

Lua Kernel Module 'Lunatik' modified for FreeBSD cancelled
Waitman Gobble

We shall explain the steps taken to modify the NetBSD kernel module, given an overview of functionality and some example uses.

picoDB: a no-SQL database tool for eLua slides video
Tom Freund (Digysol)

picoDB is a no-SQL pure Lua database tool that provides the ability to define metadata and access small databases that operate within the environment of high-end 32-bit microcontrollers using eLua.

Luerl, a Lua VM written in Erlang cancelled video
Henning Diedrich (Eonblast Corporation)

A talk about the new Lua VM Luerl and short briefing about Erlang, comparing embedding Lua in Erlang, using either Erlualib, or respectively Luerl, the new Lua VM programmed in Erlang by one of the creators of Erlang, Robert Virding. --- Using Lua as a logic scripting language within an Erlang server allows to leverage the power of Erlang's OTP for the server infrastructure while offering Lua's much more accessible syntax and agility for an easy to read implementation of business logic. The two languages can be married in different ways and the talk is to demonstrate the speed of Erlualib versus the flexibility and safety of Luerl. Henning is maintainer of Erlualib and contributor to Luerl.

LuaFlow – An Open Source Lua OpenFlow controller slides video
Raphael Amorim (Instituto Atlântico)

OpenFlow is based on an Ethernet switch, with an internal flow-table, and a standardized interface to add and remove flow entries. It's becoming incredibly popular and major players in the networking industry are adopting OpenFlow as a primary part of their strategy. HP, for instance, has announced this year that they have added OpenFlow support throughout their ProCurve switches family. Google also announced that they're using Openflow in their internal infrastructure. OpenFlow is a great concept, but its original design imposes excessive overheads. It can simplify network and traffic management in enterprise and data center environments, because it enables flow-level control over Ethernet switching and provides global visibility of the flows in the network. However, such fine-grained control and visibility comes with costs, when you lead with centered management. LuaFlow brings near-optimal traffic management, by effectively managing the performance of the network and minimizing the current load in the server. It also provides a consistent API for extension and flexibility for integrating with third-party tools. We give three examples where the controller is needed to manage traffic: network services load balancing and ID-based QoS using 802.1x authentication.

Lua multi VM system for home automation slides video
Filip Zawadiak (DOMIQ Sp. z o.o.)

Our home automation integration device is running on Lua based multi VM system. VMs are communicating using publish-subscribe channels, command queues and synchronous calls. Software is running on NET+OS by Digi, which bundles Thread-X RTOS and TRECK IP stack. Unique aspect is that VMs are directly controllable from CLI interface, which makes software development faster and forces component decoupling. By using Lua we squeezed entire home automation integration server inside ConnectME 9210 module with 8MB RAM and 4MB FLASH, which is slightly larger than RJ45 socket. We implemented auto GC speed tuning, solved memory fragmentation issues with TLSF heap.

Building a Lua Based Platform (Luvit) slides video
Tim Caswell (Cloud 9 IDE)

As an early contributor to Node.JS, Tim Caswell has seen many of the strengths and weaknesses of Google's V8 JavaScript engine. Luvit is a project born out of use-cases where V8 is not a good fit, but LuaJit (and stock Lua) are perfect. This talk will explain the journey from JavaScript to Lua and the pros and cons of each.

Small Team, Huge Game, and Lua slides video
Brian Cronin (Unknown Worlds Entertainment)

Natural Selection 2 is a sequel to a popular Half Life mod that has been in development for about 4 years. Lua has been used extensively throughout the project. All gameplay code in the project is written in Lua which provides some interesting advantages over a static language. I will go over the following topics:

What is Next for Lua? A Personal Perspective slides video
Roberto Ierusalimschy (, PUC-Rio)

Lua for Multi-Platform Mobile Development, But Not Like You Think cancelled
Matthew Burke (Elicere, Inc.)

There are a number of excellent ways of developing cross-platform apps in Lua. This talk won't cover any of them. Instead I will discuss several of the difficulties in building so-called native apps on multiple platforms and how you can use Lua to ease these difficulties. In particular, I will focus on Lua's strengths as a data description language and how you can use those strengths to keep your cross-platform development efforts DRY.

Incrementally developing and implementing Hirschberg's longest common subseqence algorithm using Lua slides video
Robin Snyder

The longest common subsequnce (LCS) problem is a dual problem of the shortest edit distance (SED) problem. The solution to these problems are used in open source file comparison tools such as WinMerge and DiffMerge. In 1974, Hirshberg published a reasonably space and time efficient solution to these problems. This talk will cover the incremental development and implementation of Hirshberg's algorithm in Lua, including trade-offs and design decisions along the way. The final algorithm implementation can be used for customized comparsion of files, or other applications, as needed.

Adding an Lua-based integrated character-based menu system into the SciTE editor slides video
Robin Snyder

The multi-platform open source SciTE editor provides support for interactive editor-based scripting using Lua and provides a standard but limited pull-down menu system into which some selected actions can be added. In order to mimic actions of the original Borland Sprint editor menu system, a general purpose multi-platform and extensible character-based menu system was added to SciTE using Lua scripting of the call tip feature of SciTE. Problems encountered and resolved during the process included QUERTY/Dvorak keyboard layout issues, context-sensitive help auto-location in the Lua source, and integrating support for the Lua-supported Logitech G-13 gaming keypad. Related issues involved custom lexing support via the Lua-based lexer.

High performance applications utilizing real-time decision making video
Francis Garvey and John Rodriguez (Verisign, Inc)

We will talk about how we made a high performance, multi-tenant, sandboxed, real time decision engine using Lua. Applications often have conflicting objectives which are difficult to meet. For example, we cannot allow one errant thread to affect any other thread, but we cannot have expensive resource monitoring of threads for CPU or memory usage. Yet we are able to do both with near zero cost. We will also describe what that high performance application is and how it works.

Integrating Lua for fun and profit: Vim's if_lua and PostgreSQL's PL/Lua video
Luis Carvalho (Boston University)

In the spirit of Lua being embeddable, small, and powerful, we present our efforts to tightly integrate Lua into two well-known and seemingly diverse programs: the Vi Improved (Vim) text editor, as a language interface (if_lua), and the PostgreSQL database, as a server-side procedural language (PL/Lua). We discuss how both projects manage to have a small footprint and a seamless interface while being effectively feature-complete. The talk will focus on interface design and implementation details, including strategies for efficient type conversion, sandboxing, and module integration. We illustrate both interfaces with many practical examples and conclude with directions for future work.

Build your M2M application with Lua slides video
Fabien Fleutot (Sierra Wireless)

We would like to follow up our presentations of last year Lua Workshop with an update on the project and an actual demo of building a simple M2M application. The demo will be articulated around three key components of our solution: We will show a complete live example based on a Raspberry Pi device connected to various actuators and sensors, running the embedded agent, administrated by the AirVantage services platform.

Using Lua for Integration with a specialized IDE slides video

This talk will focus how we used Lua as the language to build a domain specific IDE to address the integration market. Middleware covers a specific type of software programming that while simple algorithmically, has many challenges from data-transformation and configuration management perspective. Traditional solutions in this area make extensive use of mapping UI tools. Using Lua we solved this problem in a different manner by building a specialized IDE that has a high emphasis on visibility of the data flowing through the code in real time. The talk will focus on why we chose Lua for the task and what we found we could do given our focus on particular subset of software development problems.

Last update: Tue Nov 26 09:28:35 BRST 2013