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.
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.
Exception Patterns in Lua
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:
Simulation of complex systems
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)
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.
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
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
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
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
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
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
Daniel Silverstone, Simtec Electronics
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.
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.