The Lua Workshop 2012 will be held
at Verisign's headquarters in Reston, Virginia,
on November 29–30, 2012.
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.
Please make your own
if you need help or have special requirements.
Registration is now closed.
See the list of
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.
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.
The workshop will be held at
Verisign's Worldwide Headquarters
12061 Bluemont Way, Reston, VA 20190
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,
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
The organizers can be contacted at
It will be cool in late November in Reston.
what to expect:
Average high 58F, 14C
Average low 35F, 2C
3 inches, 86 mm of rain
- Erik Hougaard (E Foqus Denmark)
- Waitman Gobble
- Tom Freund (Digysol)
- Henning Diedrich (Eonblast Corporation)
- Robert Phillips (DIRECTV)
- Louis Mamakos (TransSys Internetworking)
- Douglas J. Davenport (Walchem Corporation)
- Lawrence Furnival (Teachers College, Columbia University)
- Denis Phillips (Verisign, Inc)
- Raphael Amorim (Instituto Atlântico)
- Renato Aguiar (Instituto Atlântico)
- Andrew Starks (Tightrope Media Systems)
- Ross Andrews (SafeKick)
- Rikin Patel (Terremark)
- Andy Lynn
- Filip Zawadiak (DOMIQ Sp. z o.o.)
- Hadriel Kaplan (Acme Packet)
- Tim Caswell (Cloud 9 IDE)
- Stephen M. Herwig (U.S. Department of Defense)
- Brian Cronin (Unknown Worlds Entertainment)
- Roberto Ierusalimschy (Lua.org, PUC-Rio)
- Matthew Burke (Elicere, Inc.)
- Bhanu Mullapudi (PlayMySurvey.com)
- Holger Kruse (Qualys)
- Ray Tiley (Tightrope Media Systems)
- Robin Snyder
- Kenneth Timmer
- John Rodriguez (Verisign, Inc)
- Francis Garvey (Verisign, Inc)
- Paul C. Grantz (Computer Sciences Corp. (aka. "CSC"))
- Fernando Becerra
- Omari Sanders (eSolutions360, LLC)
- Patrick Donnelly (University of Notre Dame)
- Etan Reisner (Tenable Network Security, Inc.)
- Tomasz Kosiak (DAC System)
- Luis Carvalho (Boston University)
- Daniel Moniz (Unified Research)
- Fabien Fleutot (Sierra Wireless)
- Cuero Bugot (Sierra Wireless)
- Joachim Johansen (University of Delaware)
- Jim Sughrue (IBM)
- James Callahan (ChatID)
- Leo Razoumov (AT&T Labs Research)
- Kiran Sharma (Ballston Tech)
- Evan Wies
- Kenneth Happel (Medical Strategic Planning)
- Roy Dobbins
- Aaron Bader (SwiftTrip, LLC)
- Robert Pham (CSC)
- Ignacio Burgueño (inConcert)
- Michael Horty (Verisign, Inc)
- Michael Patrone (Verisign, Inc)
- Aaron Payne (Verisign, Inc)
- Michael Druker (INTERFACEWARE)
- Eliot Muir (INTERFACEWARE)
- Siva Kandaswamy
- Roberto Guimaraes (Verisign, Inc)
- Datila Carvalho (Boston University)
- Rafiki Cai (Computer Science Dept., University of San Francisco)
- Krzysztof Kowalczyk
- James Sun (Agile Media Ventures, LLC)
- David Favro (Meta-Dynamic Solutions)
- Joseph Wallace (Simventions, Inc)
- Jorge D. Paley (GenStar)
- Helio Rodrigues (YellowBrix)
- Ankur Kumar (RichNusGeeks)
- Guille Carlos (Bitpop LLC)
- Brad Jorsch (Wikimedia Foundation)
- Ahmad Nassiri (Verisign, Inc)
- Srinivas Nangunuri (Verisign, Inc)
Textadept – Behind the Scenes
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
(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
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
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
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
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
LuaFlow – An Open Source Lua OpenFlow controller
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
Lua multi VM system for home automation
(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)
(Cloud 9 IDE)
As an early contributor to Node.JS, Tim Caswell has seen many of the
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
Small Team, Huge Game, and Lua
(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
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:
- Object oriented programming without a class hierarchy through the use of
mixins in Lua
- The Decoda Lua IDE and debugger
- Detailed script error messages combined with a simple viewer tool allows
us to see a snapshot of the environment when the error occurred
- User submitted Lua code mods, bug fixes, and optimizations
What is Next for Lua? A Personal Perspective
Lua for Multi-Platform Mobile Development, But Not Like You Think
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
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
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
Francis Garvey and John Rodriguez
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
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
Build your M2M application with Lua
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:
- a complete tool suite supporting advanced Lua developments, currently released as an open source project: Koneki.
- an embedded agent, mostly written in Lua, providing M2M oriented APIs that makes application development super easy. This will be released in the forthcoming open source Mihini project.
- our service platform that provides a clean front end to administrate your fleet.
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
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