
Como se anunció en la
publicación anterior , el 3 de marzo (el primer domingo de marzo) la oficina de Mail.ru Group en Moscú organizará la tercera conferencia internacional de Lua, Lua en Moscú 2019. Vea los detalles de la programación debajo del corte.
La conferencia incluirá dos pistas paralelas: charlas y talleres.
Todas las charlas y talleres se entregarán en inglés, sin interpretación simultánea al ruso.
Charlas (sala de conferencias # 1)
10:30 Recogida de la insignia
11:00 - 11:45 “Por qué (y por qué no) Lua”, Roberto Ierusalimschy, PUC-RioEl diseño de un lenguaje de programación, como el de cualquier otro artefacto, implica muchas compensaciones que implican requisitos en conflicto. Diferentes idiomas resuelven estas compensaciones de diferentes maneras, haciendo que cada uno sea más apropiado para algunos escenarios y menos atractivo para otros entornos.
Lua tiene sus propios objetivos, que guían su diseño. Este conjunto prioriza la capacidad de inserción, el tamaño pequeño, la simplicidad y la portabilidad. (También hay otros objetivos, como el rendimiento y la facilidad de uso por parte de programadores no profesionales).
En esta charla, discutiremos el impacto de este conjunto de objetivos. Veremos cómo estos objetivos afectan el lenguaje en sí, cómo afecta sus usos y cómo afecta su idoneidad para diferentes dominios de aplicación.
12:00 - 12:45 "resty-threadpool: reinventando Apache en nginx", Julien Desgats, CloudFlareLos bucles de eventos asincrónicos son una forma comprobada de escalar servidores de red, nginx (entre muchos otros productos exitosos) utiliza esta técnica en su núcleo. Sin embargo, su rendimiento depende de una suposición clave: la lógica empresarial no debe ejecutarse durante demasiado tiempo, de lo contrario, el rendimiento general se colapsa rápidamente.
En Cloudflare , confiamos en gran medida en OpenResty ( bibliotecas nginx + Lua +) para nuestros servidores perimetrales y garantizar un rendimiento predecible es fundamental. Por lo tanto, la descarga de algunas partes complejas del procesamiento fuera del bucle de eventos es necesaria y generalmente se realizó escribiendo microservicios. Intentamos otro enfoque aprovechando la característica del grupo de subprocesos nginx . En esta charla, detallaré los desafíos y los resultados de sacar las funciones de seguridad centrales del bucle de eventos.
13:00 - 14:00 Almuerzo
14:00 - 14:45 "La experiencia del equipo de Tarantool con las herramientas de desarrollo de Lua", Yaroslav Dynnikov, Grupo Mail.ruCada lenguaje de programación tiene su propio ecosistema, que es importante para el bienestar de la comunidad. El desarrollo de aplicaciones no se trata solo de escribir el código, sino también de probarlo, optimizarlo y compartirlo con otros. Aquí en Tarantool tenemos muchos desarrolladores que interactúan con Lua a tiempo completo.
Voy a discutir diferentes aspectos del desarrollo de Lua en nuestro entorno:
- Cómo escribimos código cómodamente con linting.
- Qué herramientas utilizamos para depurar y probar.
- Cómo gestionamos la documentación y el embalaje convenientemente.
- Y, lo que es más importante, qué características nos faltan.
15:00 - 15:45 "Shaders y Lua", Sergey Lerg, Spiral Code StudioNo es posible escribir sombreadores en Lua, pero es posible controlarlos con Lua. Quiero demostrar lo fácil que es crear hermosos efectos con el poder de GLSL y Lua. Además, proporcionaré consejos y trucos útiles para trabajar con sombreadores en el motor de juego Defold.
15:45 - 16:15 Pausa para el café
16:15 - 17:00 "Introducción al dinamismo de luajit", Michael Filonenko, Grupo Mail.ruDynasm es un generador de código de máquina para varias arquitecturas (x86, x86_64, etc.). Contiene dos partes:
- generador de código de máquina escrito en C,
- y preprocesador ensamblador en Lua.
El preprocesador original solo funciona con fuentes C / Assembler. Y hay una bifurcación de luapower que puede preprocesar archivos Lua con generadores de código Assembler. Hay un caso en el que queremos usar la lógica de la entrada del usuario. Investiguemos este conjunto de herramientas y creemos un simple compilador de s-expression.
La pregunta principal es "Qué tan cómodo es hacer un compilador para la entrada del usuario".
17:15 - 18:00 "Desafíos de 'pares' y 'próxima' compilación JIT", Maxim Bolshov, IPONWEBEn IPONWEB, tenemos nuestra propia implementación de Lua. Fue bifurcado de LuaJIT 2.0 y heredó todas sus 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 por las que la compilación de seguimiento se anula, lo que impone algunas compensaciones entre el estilo del código y el rendimiento de la aplicación. En esta charla voy a:
- discutir lo que significa hacer que la función de biblioteca llame a
JITable
; - explicará los detalles de implementación de
pairs
y next
en LuaJIT; - hablar sobre las limitaciones de JIT que hacen que los
pairs
y la next
compilación sean una tarea no tan trivial; - Demostrar nuestro progreso en la resolución de esta tarea.
18:15 - 19:00 “Recolección de basura en Lua”, Roberto Ierusalimschy, PUC-RioUna charla extra de Roberto.
19:15 - 20:00 Mesa redonda con todos los oradoresTalleres (sala de cine)
14:00 - 15:45 "Casos de uso de Tarantool para aplicaciones ricas", Mons Anderson, Mail.ru GroupA primera vista, Tarantool es una base de datos. Y es bastante difícil ver todo el potencial de este producto como un servidor de aplicaciones.
Te ayudaré a desbloquear este potencial: cómo usar el servidor LuaJIT incorporado con sockets, fibras, canales, ffi y muchos más. Cómo hacer que el código sea recargable sobre la marcha. Estos temas se analizarán paso a paso en el ejemplo de creación del servidor de colas como una aplicación de muestra.
16:15 - 18:15 "Haciendo un juego de plataformas simple con Defold", Sergey Lerg, Spiral Code StudioLos juegos de plataformas son un género de juego muy popular, algunos son simples, otros son bastante complejos. En este taller demostraré cómo hacer un juego de plataformas básico con el motor de juego Defold. La mayoría de los tutoriales sobre este tema tienden a simplificar demasiado las cosas con niveles artesanales cuando se pueden generar y con el uso de un motor de física cuando es completamente innecesario.
La entrada es gratuita, pero no olvide
registrarse .
Ubicación: Mail.ru Group office, Moscú, Leningradsky prospekt 39, bld. 79)
¡Esperamos conocerte en Lua en Moscú 2019!