Lua Workshop 2006

registration · programme · venue · accommodation · organization · participants · abstracts

The workshop is over. See photos and videos taken by Henk Schaer and Asko Kauppi.

A Lua workshop will be held at the R&D site of Océ Technologies b.v., Venlo, The Netherlands on September 4-5, 2006.

The main goal of the workshop is to allow the Lua community (or at least part of it) to get together and meet in person and talk about the Lua language, its uses, and its implementation.

Another goal is to help spread the word about Lua to the industry and academia, taking advantage of the location of the workshop.

The workshop is open to everyone interested in Lua. There is no registration fee but participants are required to register.


We shall have a plenary talk by Roberto Ierusalimschy (Lua's chief architect), two roundtables on Lua (subjects to be determined) and several contributed talks. There will also be plenty of time for getting together and chatting about Lua. A tentative programme is below.

Mon Sep 4
9:00 Registration
9:25 A Word of Welcome
Roelof Hamberg, Océ Software Development
9:30 The Aranha Web App platform
Daniel Silverstone
10:00 Lua and the Palm OS
Matthew Burke
10:30 coffee break
11:00 The Evolution of Lua
Roberto Ierusalimschy
12:00 lunch
13:30 LuaTeX
Hans Hagen
14:00 Developing desktop solutions with Lua
Ashwin Hirschi
14:30 Open Platform for Personal Robotics
Dennis Taapken
15:00 Kepler/LuaForge next steps
André Carregal
15:30 coffee break
16:00 round table discussion
17:00 closing
17:30 buffet dinner
Tue Sep 5
9:00 Exception patterns in Lua
John Belmonte
9:45 MeLua - Lua for representing musical scores
Christof Schardt
10:00 Distributed programming in Lua
Noemi Rodriguez
10:30 coffee break
11:00 Simulation of complex systems
Wim Couwenberg
11:20 Websites with Lua - Lumikki web page creation tools
Asko Kauppi
12:00 lunch
13:30 Nancy
Reuben Thomas
13:35 Crazy Ivan Robot
Erik Hougaard
14:30 Building Smalltalk with Lua (A Smalltalk to Lua Translator)
Markus Fleck-Graffecancelled
15:00 Weave
Gavin Wraith
15:30 coffee break
16:00 round table discussion
17:00 closing


The workshop will be held at Océ's R&D department in Venlo, The Netherlands. The R&D buildings are indicated as location ‘F’ of the Océ Venlo site in the following directions. Enter gate 2/3 located in the Hakkesstraat and cross the parking lot. Head for the white building to the left. Enter the R&D building through the glass sliding doors. You will receive a badge at the reception desk in the hall. We will assemble in the restaurant. If you bring your own presentation equipment, we can test it before the workshop begins in the “auditorium.”

Please note: You are visiting a Research & Development site. The workshop takes place only at the ground floor of the main building (where you enter.) All other locations are strictly off-limits. We thank you for respecting this restriction.


For all of you who are staying in hotel Venlo: The easiest way to get to Océ from the hotel is on foot. See the map below. The entrance (gate 2/3) to Océ is situated in the Hakkesstraat (west) just before the end of the blue line. There is no sidewalk in the Hakkesstraat, please use the bicycle lane along its south edge.


Registration is closed.


Organized by Wim Couwenberg, Daniel Silverstone and the Lua team. The organizers can be contacted at

Sponsored by Océ


The people below have registered for the workshop so far. (If you have sent a registration and your name does not appear here in a couple of days, please let us know.)


Here are the abstracts and slides of the talks, in alphabetical order of the speakers.

Exception Patterns in Lua slides
John Belmonte

Users of the Lua programming language often aren't aware that it includes elements to support custom exceptions and common try/except constructs. This talk will present simple yet powerful examples of each, covering topics not addressed in Programming in Lua such as selective catching and re-raising of exceptions. It will also provide general pointers on how exceptions are best employed. Finally, some recommendations for improved exception support in Lua will be offered.

Lua and the Palm OS
Matthew Burke, St. Mary's College of Maryland slides

Kepler/LuaForge next steps
André Carregal, Fábrica Digital

The Kepler team is currently focusing on new features that will make things a lot easier for module and application developers. We will be presenting two of them on the workshop:

We will also present the plans for the new LuaForge site and its interaction with Rocks.

Simulation of complex systems slides
Wim Couwenberg, Océ Technologies b.v.

In a system that comprises several processor architectures, different OS'es, partly real-time and all strung together with relatively slow connections it is not always easy to predict system behaviour. Small changes in parameters can have big effects.

To easily play through scenarios a tiny simulation tool was developed in Lua. A miniature “complex environment” was created with coroutines taking the role of processes, coordinated by an event triggered scheduler. Based on this event framework system resources like processor, connections, semaphores, memory etc. were implemented. Since (almost) no actual time passes between events, this simulated environment quickly produces timing output to visualize all sorts of scenarios.

Building Smalltalk with Lua (A Smalltalk to Lua Translator) cancelled
Markus Fleck-Graffe

Traditionally, Smalltalk implementations have been rather heavyweight and not easily embeddable, usually coming with their own virtual machine and tightly integrated graphical user interface. In addition, most Smalltalk implementations have licensing issues that restrict embedding.

This talk will give a minimal introduction to the Smalltalk language, and present some initial strategies for implementing an embeddable Smalltalk system by dynamic translation to Lua.

LuaTeX slides
Hans Hagen, Pragma ADE

The pdfTeX development team is currently working on a major upgrade. The code base is cleaned up, the 8 memory constraints are widened to 24/32 bits, and internally utf-8 will be used. This opens the road to native support for open type fonts and more advanced support for the more demanding languages.

It was already decided to provide Lua as embedded scripting language on top of the TeX macro language. As it looks now, we will also use Lua as a glue language between new subsystems and the (also to be extended) TeX kernel. Moreover, we will provide callbacks to TeX's internals and thereby make it possible to do complex contextual analysis and manipulations.

In this presentation I will give an overview of where we stand now and where we're heading.

Developing desktop solutions with Lua slides
Ashwin Hirschi, Reflexis

Even though Lua is perhaps best known as a scripting language to extend and configure existing systems, it is more than capable enough to be the main ingredient if you're developing standalone applications.

In order to streamline development of its products, Reflexis created a Windows runtime that acts as a compact (approx. 200K) and flexible Lua host application. This system provides a platform that's easy to develop for, and is even easier to deploy.

In this talk we'll discuss some of the runtime's subsystems, the open-ended GUI facilities, the multi-threaded enviroments, the integrated profiler, auto-configuration & easy deployment, lessons learned, possible ways into the future, and - as time allows - more.

Crazy Ivan Robot
Erik Hougaard, E Foqus Denmark A/S

For the last seven years, a competitor in the Danish robotic race “DTU RoboCup” has been a Lua driven robot called ‘Crazy Ivan’. Crazy Ivan has won more than any other robot 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 and much more. Lua is used as the programming language for the robot's “brain” and all decisions are taken in Lua. Indeed some of the low level processing for the robot is handled within Lua while a very small C stub is used to interface with the hardware. On the day, Crazy Ivan will be running live on the floor while its “Master” Erik Hougaard will try to control the action. Anything can —and will— happen!

The Evolution of Lua slides
Roberto Ierusalimschy, PUC-Rio

In this presentation, we report on the birth and evolution of Lua. We discuss how Lua moved from its simple origins as a configuration language to a powerful (but still simple) language that now supports extensible semantics, anonymous functions, full lexical closures, proper tail calls, and coroutines.

Websites with Lua - Lumikki web page creation tools
Asko Kauppi, Nomovok

Lumikki uses Lua as an embeddable macro language within HTML coding, allowing build-time “templating” of web pages. Integration with tools s.a. ImageMagick allow for strong build-time image processing capabilities, too. Lumikki can be used either with standard HTML, or together with any web building techniques (CSS, JavaScript, PHP, Ajax, ...). The generated contents has no trace of Lua; and needs no extra server software to be viewed. As is the spirit of Lua, also Lumikki can easily be extended with page- or site-specific custom macros.

I am myself using Lumikki on a €95 NSLU2 personal web host, and running Lua therein. The plans are to further merge Lumikki with svn, so multiple persons can jointly develop a website, using svn for collision handling. An svn commit would automatically run Lumikki to regenerate the actually viewable contents. (svn integration is not yet implemented, but will be!)

Distributed programming in Lua slides
Noemi Rodriguez, PUC-Rio

In this talk we discuss how constructs present in Lua allow us to build high level distributed programming abstractions and combine them seamlessly. We also discuss our use of coroutines to support a concurrency model which avoids race conditions and the need for synchronization.

MeLua - Lua for representing musical scores
Christof Schardt

While working on my musical notation editor “PriMus” I developed a language called “Emil” (easy music input language). It is TeX-influenced and combines musical score capabilities with text typesetting and basic programming mechanisms. MeLua now is an attempt to marry Lua and Emil.

The Aranha Web App Platform slides
Daniel Silverstone, Simtec Electronics

Token filters slides
Daniel Silverstone, Simtec Electronics

Open Platform for Personal Robotics
Dennis Taapken, Philips Research

Philips Research has developed the iCat Research Platform, which makes it easy for researchers and universities all over the world to do research on robotics. One of the major parts of this platform is the software package called Open Platform for Personal Robotics™, OPPR. This software package provides solutions in four areas: architecture, connectivity, believability and intelligence. The last two areas are what makes a robot come to life. Within these areas Lua has taken a prominent position as an easy to use yet flexible and extensible scripting engine. Lua can be used in OPPR to describe robot behaviours, prototype algorithms, directly control the robots output (e.g. servos, lights), specify a configuration script and more. In this presentation we will present the following topics: what is OPPR, why did we choose lua, how did we integrate lua, where are we going with lua and our current findings on the lua environment.

Nancy slides
Reuben Thomas

The lazy person's web site maker. Nancy is a simple web site builder. It has just one construct: context-dependent file inclusion. With this single feature you can build pretty much any web site whose logical structure mirrors its URL layout, and which does not rely on dynamically computed content, out of fragments (of HTML, CSS, text, and whatever else you like) plus other files (images, audio &c.).

Gavin Wraith, Sussex University

Using Lua for creating large websites.

Last update: Fri May 26 09:08:02 -03 2017