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

Idempotencia en APIs: los casos extremos que complican su implementación

Los desafíos reales de la idempotencia en APIs van más allá delsimple uso de claves de idempotencia. Aunque el patrón básico (agregar una clave, almacenar la respuesta y replay en reintentos) funciona para el camino feliz, la complejidad surge cuando la segunda solicitud llega en diferentes estados:

Go: la alternativa simple para el desarrollo backend

Un artículo en blainsmith.com aboga por el uso del lenguaje de programación Go para simplificar el desarrollo backend. El autor critica la complejidad creciente de los proyectos backend modernos, a menudo construidos con múltiples herramientas y frameworks, argumentando que Go ofrece una alternativa

Python: Microsoft presenta 'bocpy' para concurrencia sin bloqueos

Microsoft ha lanzado 'bocpy', una nueva biblioteca para Python que introduce un paradigma de concurrencia llamado 'Behavior-Oriented Concurrency' (BOC). BOC elimina la necesidad de bloqueos (locks) tradicionales, previniendo así los problemas de interbloqueo (deadlocks) mediante un sistema de 'owner

Java: Visualiza tu aprendizaje con este gráfico interactivo

El "100DaysOfJava Knowledge Graph" es una herramienta interactiva que visualiza el contenido de una serie de publicaciones de blog centradas en el aprendizaje y la exploración de Java. Imagina que has seguido un curso intensivo de Java, con cientos de conceptos interconectados. Intentar recordar y c

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,

Rust ahora en GPU: VectorWare anuncia avance

VectorWare ha anunciado un hito significativo en el desarrollo de la programación de GPU: la capacidad de utilizar los hilos estándar de Rust (std::thread) directamente en la GPU. Esto representa un avance crucial hacia su visión de crear una empresa de software nativa para GPU que permita a los des

go-bt: Nueva biblioteca simplifica la IA en Go

Un nuevo desarrollador de Go, llamado `go-bt`, simplifica la automatización y la lógica de la IA mediante el uso de árboles de comportamiento. Esta biblioteca, creada por Rvitorper y disponible en GitHub, ofrece una alternativa a los bucles `time.Sleep` o `while` tradicionales, utilizando un modelo

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

Bases de datos: Nueva técnica optimiza el control de datos

El artículo explora una nueva técnica llamada 'Serial Safety Net' (SSN) para lograr el control de concurrencia serializable en bases de datos sin sacrificar el rendimiento, un problema común en sistemas modernos con múltiples núcleos. Tradicionalmente, para garantizar la serializabilidad (que las tr

Fallece Tony Hoare, pionero de la informática

El reconocido informático británico Tony Hoare falleció el jueves 5 de marzo, según confirmó Jonathan Bowen. Hoare, de gran influencia en el campo de la computación, es conocido por sus contribuciones fundamentales a la programación estructurada y la teoría de concurrencia. Su obra 'Structured Progr

FrankenSQLite: Base de Datos Más Rápida y Segura

FrankenSQLite es un nuevo motor de base de datos escrito en Rust que busca revolucionar la forma en que SQLite maneja la concurrencia y la seguridad. A diferencia de SQLite, que serializa las escrituras a través de un único escritor WAL, FrankenSQLite permite ocho escritores en paralelo, eliminando

CPNs: Herramienta para IA y Apps Distribuidas

Este artículo explora el uso de Redes de Petri Coloreadas (CPNs) como una herramienta prometedora para desarrollar aplicaciones distribuidas concurrentes, especialmente en el contexto de la inteligencia artificial generativa (LLMs) y el desarrollo de software. El objetivo principal es mejorar la ver