Programa de conferencias Lua en Moscú 2019



Como informamos en el anuncio anterior , el 3 de marzo (domingo), la tercera conferencia internacional Lua en Moscú 2019 se llevará a cabo en la oficina del Grupo Mail.ru.

La conferencia se llevará a cabo en 2 transmisiones: informes y seminarios.

Todos los informes y seminarios serán en inglés sin traducción simultánea.


Informes (sala de reuniones n. ° 1)



imagen 10:30 Inicio del registro

11:00 - 11:45 "Por qué (y por qué no) Lua / Por qué Lua (y por qué no)", Roberto Jerusalén, PUC-Río

Al crear un lenguaje de programación, las contradicciones en los requisitos a menudo empujan a los autores a comprometer las soluciones. Este es un hecho común en el mundo del desarrollo. Diferentes idiomas llegan a un compromiso de diferentes maneras, lo que hace que cada idioma sea más adecuado para algunos escenarios y menos atractivo para otros.

Hay un conjunto de objetivos para el lenguaje Lua, que determina la dirección del diseño. Se da prioridad a la capacidad de inserción, tamaño pequeño, simplicidad y portabilidad. Hay otros objetivos, como el rendimiento y la facilidad de uso por parte de programadores no profesionales.

En el informe, discutiremos el impacto de este conjunto de objetivos. Veremos cómo estos objetivos afectan el lenguaje en sí, su uso, así como la posibilidad de su aplicación en varios campos.


12:00 - 12:45 "resty-threadpool: reinventando Apache en nginx / resty-threadpool: nueva lectura de Apache en nginx", Julien Desgats, CloudFlare

Los bucles asíncronos de eventos son una forma comprobada de escalar servidores de red. nginx (como otros productos exitosos) básicamente usa esta técnica en particular. Sin embargo, su rendimiento depende de una condición clave: la lógica empresarial no debe resolverse por mucho tiempo, de lo contrario, el rendimiento general cae rápidamente.

Cloudflare depende en gran medida de OpenResty ( bibliotecas nginx + Lua +) para todo lo relacionado con los servidores perimetrales. Al mismo tiempo, el rendimiento predecible es crítico. Esto requiere eliminar algunas de las partes de procesamiento complejas del bucle de eventos. Como regla, esto se hizo previamente escribiendo microservicios. Cloudflare intentó un enfoque diferente: use la función de grupo de subprocesos nginx . El informe describirá en detalle los problemas y resultados de extraer las funciones básicas de seguridad del ciclo de eventos.


13:00 - 14:00 Almuerzo

14:00 - 14:45 “Experiencia del equipo de Tarantool con herramientas de desarrollo de Lua / Experiencia del equipo de Tarantool con herramientas de desarrollo en el idioma de Lua”, Yaroslav Dynnikov, Grupo Mail.ru

Cada lenguaje de programación tiene su propio ecosistema, que es importante para el bienestar de la comunidad. El desarrollo de aplicaciones no es solo escribir código, sino también probarlo, optimizar y compartir información con otras personas. Hay muchos desarrolladores en el proyecto Tarantool que trabajan con Lua todos los días.

Durante la charla, discutiremos varios aspectos del desarrollo de Lua en el equipo de Tarantool:

  • ¿Qué tan conveniente es para los desarrolladores escribir código linted?
  • ¿Qué herramientas usan para depurar y probar?
  • ¿Cómo preparar con éxito la documentación y recoger paquetes?
  • Y, igual de importante, ¿qué características les faltan todavía?


15:00 - 15:45 “Shaders y Lua / Shaders y Lua”, Sergey Lerg, Spiral Code Studio

No es posible escribir sombreadores en Lua, pero puede controlarlos usando este lenguaje. El propósito del informe es demostrar cómo puede crear fácilmente efectos sorprendentes utilizando GLSL y Lua. Además, se darán consejos útiles y consejos sobre cómo trabajar con sombreadores en el motor del juego Defold.


15:45 - 16:15 Pausa para el café

16:15 - 17:00 "Introducción al dinamismo de luajit / Introducción al dinamismo de luajit", Mikhail Filonenko, Grupo Mail.ru

Dynasm es un generador de código de máquina para varias arquitecturas (x86, x86_64, etc.).
Consta de dos partes:

  • generador de código de máquina escrito en C
  • y preprocesador ensamblador en Lua.

El preprocesador original solo funciona con código fuente en ensamblador o C.
Además, hay una bifurcación de luapower que puede preprocesar archivos Lua utilizando generadores de código de ensamblador.

En algunos casos, es necesario usar la lógica de la entrada del usuario. Examinaremos este kit de herramientas y crearemos un compilador de s-expression simple.
La pregunta principal: "¿Qué tan conveniente es crear un compilador para la entrada del usuario".


17:15 - 18:00 “Desafíos de 'pares' y 'próxima' compilación JIT / Problemas de compilación 'pares' y 'próxima' en JIT", Maxim Bolshov, IPONWEB

IPONWEB usa su propia implementación de Lua. El proyecto fue bifurcado de LuaJIT 2.0 con todas las limitaciones. En particular, los pairs y las next funciones no fueron compatibles con el compilador JIT. Sin embargo, en nuestra base de código Lua, esta es una de las 3 razones principales para interrumpir la compilación de rastreo, lo que conduce a compensaciones forzadas entre el estilo del código y el rendimiento de la aplicación.

El informe planea:

  • para decir qué significa llamar a la función de biblioteca JITable ;
  • Explicar los detalles de la implementación de pairs y next en LuaJIT;
  • hablar sobre las limitaciones de JIT que hacen que compilar pairs y next tarea no trivial;
  • Demostrar el progreso de la solución de este problema.


18:15 - 19:00 “Recolección de basura en Lua”, Roberto Jerusalén, PUC-Río

Informe de bonificación de Roberto.


19:15 - 20:00 Mesa redonda con todos los oradores

Seminarios (sala de cine)



14:00 - 15:45 “Casos de uso de Tarantool para aplicaciones ricas / Casos de uso de Tarantool para aplicaciones multifuncionales”, Vladimir Perepelitsa, Grupo Mail.ru

A primera vista, Tarantool es una base de datos. Y es bastante difícil ver todo el potencial de este producto como servidor de aplicaciones.

El seminario está diseñado para revelar esta parte de las capacidades de Tarantool: ¿cómo usar el servidor LuaJIT incorporado con sockets, fibras, canales, ffi, etc.? ¿Cómo hacer que el código se vuelva a cargar sobre la marcha? Estos temas se examinarán paso a paso en el ejemplo de creación de un servidor de cola.


16:15 - 18:15 "Haciendo un juego de plataformas simple con Defold", Sergey Lerg, Spiral Code Studio

Platformers es un género de juego muy popular. Algunos de ellos son simples, otros son bastante complejos. En el marco del seminario, mostraré cómo crear un juego de plataformas básico en el motor del juego Defold. Los autores de la mayoría de los materiales de capacitación sobre este tema tienden a simplificar todo y muestran la creación de niveles manualmente, mientras que pueden generarse automáticamente, y también usan un motor físico cuando no es necesario.


La entrada es gratuita.
Se requiere registro .
Dirección: oficina de Mail.ru Group, Leningradsky pr., 39, p. 79.

¡Te esperamos en Lua en Moscú 2019!

Source: https://habr.com/ru/post/441364/


All Articles