{"id":15173,"date":"2023-05-03T10:02:18","date_gmt":"2023-05-03T10:02:18","guid":{"rendered":"https:\/\/bluetab.net\/?p=15173"},"modified":"2023-05-03T10:02:18","modified_gmt":"2023-05-03T10:02:18","slug":"bluetab-en-la-elixirconfeu-2023","status":"publish","type":"post","link":"https:\/\/bluetab.es\/en\/2023\/05\/bluetab-en-la-elixirconfeu-2023\/","title":{"rendered":"Bluetab en la ElixirConfEU 2023"},"content":{"rendered":"<p><strong>Lisboa 20 y 21 de Abril<\/strong><\/p>\n<h2>\u00bfQu\u00e9 es Elixir?<\/h2>\n<p>Elixir es un lenguaje de<b> programaci\u00f3n funcional<\/b> <b>de alto nivel<\/b>, dise\u00f1ado para crear aplicaciones escalables y distribuidas en sistemas concurrentes. Fue creado por el programador brasile\u00f1o <b>Jos\u00e9 Valim<\/b> en 2012 y se basa en la plataforma de Erlang\/OTP (BEAM), aprovechando su eficiencia y escalabilidad.<\/p>\n<p>Elixir se enfoca en la programaci\u00f3n funcional, lo que significa que se centra en la evaluaci\u00f3n de expresiones y la creaci\u00f3n de funciones en lugar de seguir un flujo de control de programa. Esto hace que Elixir sea <b>altamente expresivo, f\u00e1cil de leer y de escribir<\/b>, lo que lo hace adecuado para proyectos complejos y distribuidos.<\/p>\n<p>En este art\u00edculo os traemos un resumen de las charlas que hemos seleccionado y que adem\u00e1s enlazamos para que pod\u00e1is tener acceso a ellas. \u00a1Ya os adelantamos que para los fan\u00e1ticos de este lenguaje son una aut\u00e9ntica maravilla!<\/p>\n<h2>Elixir 1.15, tipado te\u00f3rico y ML con Livebooks<\/h2>\n<p>\t\thttps:\/\/www.youtube.com\/watch?v=xItzdrzY1Dc<\/p>\n<p>En la apertura del evento, el mism\u00edsimo creador de Elixir Jose Valim, abord\u00f3 principalmente tres \u00e1reas de inter\u00e9s:<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0* Tipado te\u00f3rico<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0* Mejora de la experiencia de desarrollo y aprendizaje del lenguaje<\/p>\n<p>\u00a0\u00a0\u00a0\u00a0* Machine Learning con Elixir<\/p>\n<p>A continuaci\u00f3n dio paso a los principales <b>cambios de la nueva versi\u00f3n 1.15<\/b> de Elixir, destacando la <b>mejora en los tiempos de compilaci\u00f3n y la integraci\u00f3n con Erlang\/OTP 26<\/b>, para luego proseguir a un asunto muy candente en la comunidad: <b>el tipado te\u00f3rico en Elixir<\/b>. La investigaci\u00f3n de un sistema de tipado que fuera coherente con la filosof\u00eda del lenguaje ha sido la tesis del Doctorando Guillaume Duboc, mentorada por Giuseppe Castagna y por Jos\u00e9 Valim. Los pr\u00f3ximos pasos para 2023 son empezar a implementar el sistema.<\/p>\n<p>El principal tema de la Keynote ha sido las <b>mejoras en las herramientas de desarrollador<\/b>, c\u00f3mo por ejemplo:<\/p>\n<ul>\n<li>`dbg\/2` &#8211; imprimir en detalle los pipes y crear breakpoint de debug en `iex`.<\/li>\n<li>`Mix.install2` &#8211; instalar dependencias en tiempo de ejecuci\u00f3n.<\/li>\n<li>`mix format` &#8211; mejoras en los plugins de las IDEs que permiten por ejemplo formatear c\u00f3digo `HEEx` embebido.<\/li>\n<li>`Compilation tracers` &#8211; nuevas formas de analizar la compilaci\u00f3n que permiten aprender en profundidad que se est\u00e1 haciendo &#8220;under the hood&#8221;.<\/li>\n<li>`Code.Fragment` &#8211; permite analizar c\u00f3digo incompleto (no compilable) para una mejor experiencia en las IDEs.<\/li>\n<\/ul>\n<p><b>C\u00f3mo gran novedad cabe destacar el gran avance de `Livebook`<\/b> una herramienta que se asemeja a los notebooks de Jupyter. Livebook es una aplicaci\u00f3n donde se puede documentar y ejecutar c\u00f3digo de forma interactiva, pero tiene una gran integraci\u00f3n con las peculiaridades de Elixir y es una gran herramienta para ense\u00f1ar las abstracciones del lenguaje y los procesos. Como dato, se han integrado en esta herramienta formas de visualizaci\u00f3n de los procesos concurrentes de Elixir, algo muy \u00fatil para comprender c\u00f3mo funcionan las tareas as\u00edncronas.<\/p>\n<p>Y por \u00faltimo, c\u00f3mo no pod\u00eda faltar, destacar los <b>\u00faltimos avances en las herramientas para Machine Learning<\/b> que se est\u00e1n desarrollando y que se explican en las siguientes charlas que compartimos:\u00a0<\/p>\n<p>Por valor de inter\u00e9s, podr\u00edamos mencionar todas las charlas. Sin embargo, para no extendernos en este art\u00edculo, queremos referenciar un par de charlas que sobresalieron y finalmente la esperada keynote de cierre de Chris McCord, el creador del framework Phoenix.<\/p>\n<h2>Ejecuta modelos de Hugging Face con Livebook<\/h2>\n<p>\t\thttps:\/\/www.youtube.com\/watch?v=VcOvNTxUaIo<\/p>\n<p>Jonatan Klosko es un joven muy activo en la comunidad de Elixir y ha sido uno de los creadores de <b>Livebook y Bumblebee<\/b>. Una herramienta que est\u00e1 cogiendo mucha tracci\u00f3n. En primera instancia parece una copia de los &#8220;Jupyter Notebooks&#8221; inicialmente creados para python pero que actualmente permite utilizar Kernels de varios lenguajes de programaci\u00f3n. Sin embargo, c\u00f3mo coment\u00f3 Jos\u00e9 Valim contestando a una pregunta despu\u00e9s de su keynote, tiene diferencias elementales que la hacen a medida para Elixir, c\u00f3mo por ejemplo la <b>completa inmutabilidad del estado<\/b>.<\/p>\n<p>Jonatan ha entrado al detalle sobre los \u00faltimos avances utilizando las SmartCells de IA y luego ha ense\u00f1ado *under the hood*, c\u00f3mo se utilizan los modelos de Hugging Face para acceder a una infinidad de modelos gratuitos pre-entrenados y sacar provecho de esa tecnolog\u00eda de punta con el m\u00ednimo esfuerzo.<\/p>\n<p>Ha sido curiosa la experiencia que ha compartido de que una de las partes m\u00e1s dif\u00edciles del proyecto ha sido hacer ingenier\u00eda inversa para interpretar los archivos `pickle` de `python`, que es el formato binario utilizado para almacenar la informaci\u00f3n sobre cada modelo, c\u00f3mo la forma de los par\u00e1metros de entrada y salida.<\/p>\n<p>Con todo ese trabajo hecho, <b>en pocos minutos es posible abrir un Livebook y ejecutar, por ejemplo, un modelo de lenguaje natural que complete m\u00e1scaras en una frase o hasta ejecutar el modelo de `stable diffusion` para generar im\u00e1genes a partir de frases<\/b>.<\/p>\n<h2>Recreando un meme con tecnolog\u00eda de punta<\/h2>\n<p>\t\thttps:\/\/www.youtube.com\/watch?v=GFxUgbfQ3w0<\/p>\n<p>Seguramente si has visto la serie &#8220;Sillicon Valley&#8221; te suene el nombre de esta charla ya que &#8220;Not Hotdog&#8221; es una app cuyo \u00e9xito subi\u00f3 exponencialmente tras aparecer en la sitcom.<\/p>\n<p>Evadne Wu es una ingeniera de software con experiencia en el desarrollo de aplicaciones m\u00f3viles y web.<\/p>\n<p>Wu expuso el desarrollo de la aplicaci\u00f3n utilizando un <b>modelo de aprendizaje autom\u00e1tico pre-entrenado<\/b> para identificar si una imagen contiene un hotdog o no. <b>Demostr\u00f3 c\u00f3mo se puede utilizar Elixir<\/b> y algunas bibliotecas de procesamiento de im\u00e1genes <b>para implementar un sistema de clasificaci\u00f3n basado en aprendizaje autom\u00e1tico<\/b>.<\/p>\n<p>Tambi\u00e9n ense\u00f1\u00f3 todo el pipeline de captura de v\u00eddeo y extracci\u00f3n de frames con WebRTC y Membrane. En la presentaci\u00f3n original que hab\u00eda preparado, utilizaba `YOLOv5` para la clasificaci\u00f3n de im\u00e1genes, pero con los recientes avances de \u2018Bumblebee Vision\u2019 se percat\u00f3 que lo pod\u00eda hacer completamente en Elixir con menos l\u00edneas de c\u00f3digo, dando c\u00f3mo resultado una<b> mejor respuesta en el an\u00e1lisis en tiempo real<\/b> junto con LiveView.<\/p>\n<h2>Un repaso de la trayectoria y futuro de LiveView<\/h2>\n<p>\t\thttps:\/\/www.youtube.com\/watch?v=BXPAsESHVEU<\/p>\n<p>Chris McCord es el creador de, probablemente <b>el m\u00e1s utilizado framework de Elixir, Phoenix<\/b>.<\/p>\n<p>En su charla, Chris empez\u00f3 contando la historia y las motivaciones detr\u00e1s de <b>LiveView, una tecnolog\u00eda para construir aplicaciones web interactivas en tiempo real utilizando Elixir y Phoenix<\/b>. La idea surgi\u00f3 c\u00f3mo una soluci\u00f3n para mejorar la experiencia del usuario y reducir la complejidad de las aplicaciones web, que requer\u00edan mucho c\u00f3digo JavaScript y APIs para lograr una interfaz de usuario rica. LiveView toma el template del usuario y env\u00eda HTML por WebSocket a trav\u00e9s de Phoenix Channels, lo que permite manejar el estado y las actualizaciones del usuario en tiempo real, utilizando una optimizaci\u00f3n \u00fanica llamada &#8216;live_eex&#8217;.<\/p>\n<p>Adem\u00e1s, Live View utiliza &#8220;lifecycle hooks&#8221; para componer diferentes eventos, y HEEx es el nuevo motor de plantillas que se utiliza para resolver los problemas que surgieron con el anterior motor de plantillas llamado &#8220;LEEx&#8221;. HEEx resuelve estos problemas al proporcionar bloques de construcci\u00f3n m\u00e1s peque\u00f1os y una sintaxis m\u00e1s limpia y clara.<\/p>\n<p>Tambi\u00e9n se menciona la implementaci\u00f3n de streams, una manera de optimizar las colecciones en el servidor para actualizar la informaci\u00f3n en el cliente sin necesidad de guardarla en memoria, lo que permite actualizaciones y eliminaciones de elementos en la interfaz de manera m\u00e1s din\u00e1mica y flexible. Adem\u00e1s, explican c\u00f3mo los streams ayudan a limitar el n\u00famero de elementos a renderizar en la interfaz, lo que mejora el rendimiento del navegador.<\/p>\n<p>En resumen, LiveView es una tecnolog\u00eda que permite construir aplicaciones web interactivas en tiempo real utilizando Elixir y Phoenix, que utiliza WebSocket para enviar HTML y manejar el estado y las actualizaciones del usuario. Adem\u00e1s, <b>HEEx y slots son una forma de crear interfaces de usuario modularizadas y streams optimiza las colecciones<\/b> para actualizar la informaci\u00f3n en el cliente sin necesidad de guardarla en memoria, mejorando significativamente el rendimiento de las aplicaciones en vivo y <b>permitiendo el desarrollo de caracter\u00edsticas m\u00e1s avanzadas<\/b> en LiveView.<\/p>\n<h2>En conclusi\u00f3n<\/h2>\n<p>La ElixirConf del 2023 ha sido un evento impresionante y gratificante para todos los asistentes. Hemos tenido la oportunidad de aprender de algunos de los mejores profesionales en la industria y compartir conocimientos y experiencias con otros miembros de la comunidad de Elixir.<\/p>\n<p>Nos fuimos de la ElixirConf llenos de inspiraci\u00f3n y entusiasmo por el futuro de Elixir y estamos ansiosos por aplicar todo lo que hemos aprendido en nuestros proyectos.\u00a0<\/p>\n<p>Desde aqu\u00ed, queremos agradecer a Bluetab por facilitarnos asistir a este evento.<\/p>\n<p>Para m\u00e1s informaci\u00f3n puedes visitar la web <a href=\"https:\/\/www.elixirconf.eu\">[ElixirConfEU 2023 Lisbon]<\/a><\/p>\n<h5>\u00bfQuieres saber m\u00e1s de lo que ofrecemos y ver otros casos de \u00e9xito?<\/h5>\n<p>\t\t\t<a href=\"\/\" role=\"button\"><br \/>\n\t\t\t\t\t\tDESCUBRE BLUETAB<br \/>\n\t\t\t\t\t<\/a><\/p>\n<p><b>SOLUCIONES, <\/b>SOMOS EXPERTOS<\/p>\n<p>\t\t\t\t\t<a href=\"\/soluciones\/data-strategy\/\"><\/p>\n<h5>DATA STRATEGY<\/h5>\n<p>\t\t\t\t\t\t<\/a><br \/>\n\t\t\t\t\t<a href=\"\/soluciones\/data-fabric\/\"><\/p>\n<h5>DATA FABRIC<\/h5>\n<p>\t\t\t\t\t\t<\/a><br \/>\n\t\t\t\t\t<a href=\"\/soluciones\/augmented-analytics\/\"><\/p>\n<h5>AUGMENTED ANALYTICS<\/h5>\n<p>\t\t\t\t\t\t<\/a><\/p>\n<p>Te puede interesar<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Lisboa 20 y 21 de Abril \u00bfQu\u00e9 es Elixir? Elixir es un lenguaje de programaci\u00f3n funcional de alto nivel, dise\u00f1ado para crear aplicaciones escalables y distribuidas en sistemas concurrentes. Fue creado por el programador brasile\u00f1o Jos\u00e9 Valim en 2012 y se basa en la plataforma de Erlang\/OTP (BEAM), aprovechando su eficiencia y escalabilidad. Elixir se [&hellip;]<\/p>\n","protected":false},"author":2,"featured_media":15174,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"elementor_header_footer","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[9],"tags":[],"class_list":["post-15173","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-tech"],"acf":[],"jetpack_featured_media_url":"","_links":{"self":[{"href":"https:\/\/bluetab.es\/en\/wp-json\/wp\/v2\/posts\/15173","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/bluetab.es\/en\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/bluetab.es\/en\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/bluetab.es\/en\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/bluetab.es\/en\/wp-json\/wp\/v2\/comments?post=15173"}],"version-history":[{"count":0,"href":"https:\/\/bluetab.es\/en\/wp-json\/wp\/v2\/posts\/15173\/revisions"}],"wp:attachment":[{"href":"https:\/\/bluetab.es\/en\/wp-json\/wp\/v2\/media?parent=15173"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/bluetab.es\/en\/wp-json\/wp\/v2\/categories?post=15173"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/bluetab.es\/en\/wp-json\/wp\/v2\/tags?post=15173"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}