Lucas Sifoni cierra su blog exploratorio sobre Elixir por el avance de los LLM

El desarrollador Lucas Sifoni ha decidido poner fin a tres años y medio de artículos exploratorios sobre Elixir y la máquina virtual BEAM en su blog personal. El proyecto, que arrancó como una práctica al margen de su trabajo tras simular un telescopio en Elixir, le valió invitaciones a conferencias

Las bondades de Gleam: un recorrido por sus características más atractivas

Gleam, un lenguaje funcional que compila para BEAM (la máquina virtual de Erlang), incorpora una serie de pequeñas decisiones de diseño que simplifican el trabajo diario del desarrollador. Este artículo repasa cinco de sus características más llamativas, útiles tanto para quienes ya trabajan en la p

Capri: enlaces Gleam seguros para Khepri

Capri es una biblioteca de enlaces seguros por tipos para Khepri, el sistema de persistencia de Erlang. Su objetivo es ofrecer una capa tipada y atómica para definir repositorios, transformar datos entre versiones y crear proyecciones derivadas, manteniendo la validación de esquemas y la integridad

Gleam para programadores de Python: curso práctico completo

Gleam para programadores de Python es un curso práctico y progresivo diseñado para que desarrolladores familiarizados con Python aprendan Gleam, un lenguaje de programación funcional y tipado que compila a Erlang y JavaScript. El material está organizado en 22 lecciones que cubren desde los fundamen

Concurrencia, interactividad y mutabilidad: solo puedes elegir dos

En ingeniería de software existe un compromiso difícil de resolver: no se pueden mantener a la vez la concurrencia, la interactividad y la mutabilidad de los datos sin pagar un precio considerable. Cada una de estas propiedades resuelve un problema real. La concurrencia permite ejecutar varios hilos

Igropyr: servidor web en Chez Scheme con supervisores al estilo Erlang

Igropyr es un servidor web de código abierto escrito íntegramente en Chez Scheme —sin shims en C— que combina el modelo de actores de Erlang con el bucle de eventos de libuv. Su propuesta central es que los manejadores de peticiones no se defienden: cuando fallan, el proceso muere y un supervisor lo

Flow: lenguaje de programación con concurrencia basada en actores para C++11

Flow es el lenguaje de programación creado por el equipo de FoundationDB para introducir concurrencia basada en actores en C++11, dentro de los retos de ingeniería que afronta el proyecto: alto rendimiento por nodo, escalabilidad y tolerancia a fallos mediante simulación extensiva. Está implementado

El operador 'or' en guards de Elixir no es conmutativo

Los guards de Elixir permiten componer comprobaciones con los operadores booleanos `and` y `or`, pero su comportamiento difiere del esperado cuando se invierte el orden de las cláusulas. La entrada analiza un módulo de ejemplo con dos funciones, `Foo.a/1` y `Foo.b/1`, cuyas guardas son idénticas sal

Cómo un autor autodidacta pasó de Microsoft Word a Emacs

Un programador autodidacta relata el camino, plagado de decisiones torpes pero reveladoras, que lo llevó desde usar Microsoft Word para escribir PHP —porque no distinguía entre un editor de texto y un editor de texto enriquecido— hasta adoptar Emacs como su editor principal de código y texto, una he

Cómo mapear un clúster de Erlang con código que se propaga a sí mismo

El ingeniero de software Lucas Sifoni presenta una técnica para mapear la topología de un clúster de Erlang —incluso cuando las conexiones entre nodos son dispersas— mediante un módulo de código que se propaga a sí mismo. En un clúster de Erlang completamente conectado, cada nodo mantiene conexión c

Gleam 1.17.0 añade soporte para escripts en BEAM

Gleam ha publicado la versión 1.17.0 de su lenguaje de programación, que incorpora la orden `gleam export escript` para generar un único archivo ejecutable que contiene todo el código compilado de un programa en BEAM. Esta funcionalidad, análoga a los paquetes bundle de JavaScript para entornos como

Alerta: Vulnerabilidad pone en riesgo aplicaciones Erlang y Elixir

El Erlang Ecosystem Foundation (EEF) ha alertado sobre una vulnerabilidad crítica en el ecosistema BEAM que afecta a aplicaciones de Erlang y Elixir. El agotamiento de átomos, una clase de vulnerabilidad de denegación de servicio, representa el 35,8% de los CVEs publicados por la CNA del EEF, convir

Erlang/OTP 29.0 introduce atributos unsafe y criptografía post-cuántica

Erlang/OTP 29.0 ha sido lanzado como nueva versión mayor del lenguaje de programación funcional concurrente desarrollado por Ericsson. Entre las principales novedades destaca la incorporación de atributos 'unsafe' para marcar funciones como no seguras, con advertencias automático del compilador. El

Erlang acelera conteos con los módulos :atomics y :counters

El artículo explora dos módulos de OTP ( Erlang/OTP y Elixir) diseñados para realizar conteos rápidos bypassing el modelo tradicional de procesos: :atomics y :counters. La mayoría de los lenguajes de programación comenzó con estructuras de datos mutables y rápidas y posteriormente añadieron caracter

Async: De C10K a async/await, la evolución de la concurrencia

Este artículo explora la evolución de las técnicas para manejar la concurrencia en sistemas informáticos, desde el problema original de C10K (manejar miles de conexiones simultáneas) hasta la adopción generalizada de `async/await`. Inicialmente, la solución fue el uso de hilos del sistema operativo,

MVP: El secreto de Erlang y el desarrollo ágil

El concepto de 'Programa Mínimo Viable' (MVP, por sus siglas en inglés) es una idea poderosa para el desarrollo de software, y este artículo explora su significado y beneficios a través de un ejemplo histórico de Erlang. Un MVP es, esencialmente, el programa más pequeño posible que resuelve un probl

Quickbeam: JavaScript ahora corre en Erlang/Elixir

Un nuevo proyecto llamado Quickbeam permite ejecutar JavaScript dentro del BEAM, la máquina virtual de Erlang/Elixir, abriendo nuevas posibilidades para el desarrollo de aplicaciones concurrentes y distribuidas. Quickbeam integra un entorno de ejecución de JavaScript, respaldado por Web APIs, un DOM

Crazierl alerta: riesgo de seguridad en su función 'cluster'

Crazierl, una plataforma que permite ejecutar un sistema operativo en un navegador web a través de emulación (v86), ha emitido advertencias de seguridad urgentes sobre su función de 'cluster distribuido' (dist cluster). La función, que permite a los usuarios conectar sus instancias de crazierl compa

Aislamiento en Erlang: ¿Solución o Limitación?

Este artículo explora las limitaciones del modelo de concurrencia basado en aislamiento, utilizando Erlang como ejemplo paradigmático. Erlang, conocido por su robustez y alta disponibilidad (como se evidencia en sistemas como WhatsApp), implementa un modelo de 'actores' donde cada proceso tiene su p

ia desafía a Unix: ¿un sistema obsoleto?

El auge de los agentes de inteligencia artificial está revelando una incompatibilidad fundamental con la arquitectura de Unix, según un análisis reciente. Unix, diseñado para un mundo de humanos interactuando con comandos o servicios automatizados, carece de un modelo nativo para procesos interactiv

Guía facilita creación de ejecutables para Gleam

Un desarrollador ha publicado una guía sobre cómo crear ejecutables para el lenguaje de programación funcional Gleam, el cual compila a Erlang y JavaScript. Gleam, aunque prometedor, carece de soporte nativo para la creación de ejecutables, lo que dificulta su distribución. La guía explora tres méto

Sistemas concurrentes: ¿por qué Erlang sigue siendo clave?

Este artículo de Variant Systems explora por qué los sistemas basados en procesos, como los que utiliza Erlang/Elixir (BEAM y OTP), siguen siendo relevantes y efectivos en la construcción de sistemas concurrentes y distribuidos, especialmente en el contexto de la inteligencia artificial y los agente

Elixir impulsa la IA: un nuevo contendiente emerge

Un reciente artículo destaca cómo el lenguaje de programación Elixir, construido sobre la máquina virtual BEAM (originalmente desarrollada por Erlang en 1986), está ganando terreno en el desarrollo de inteligencia artificial, desafiando los marcos tradicionales basados en Python. Un estudio de Tence

Fallo en WolfSSL: Problemas de Seguridad con TLS 1.3

Un investigador ha descubierto un fallo de seguridad en la biblioteca de cifrado WolfSSL que impide su correcta compatibilidad con clientes TLS 1.3. El problema radica en que WolfSSL no implementa el modo de compatibilidad con 'middleboxes' (dispositivos intermediarios que pueden alterar el tráfico)

Hologram: Elixir en el navegador avanza a gran paso

Un equipo de desarrolladores ha anunciado la versión 0.7.0 de Hologram, un proyecto que busca portar Elixir a JavaScript para ejecutar código Elixir directamente en el navegador. Esta nueva versión representa un hito significativo, aumentando la cobertura del runtime Erlang del 34% al 96% y la prepa

Programación Funcional: El Peligro de la Confianza Excesiva

El artículo de Ian Duncan critica la tendencia en la programación funcional (FP) a enfocarse excesivamente en la corrección local del código, lo que lleva a una falsa confianza en las propiedades del sistema en su conjunto. Argumenta que, independientemente del paradigma de programación, los desarro