Category: Desarrollo

Eval en Racket: Una herramienta poderosa, pero úsela con precaución

2025-05-30

Este artículo profundiza en las ventajas y desventajas de la función `eval` en lenguajes dinámicos, particularmente su uso en Racket. Utilizando analogías vívidas, el autor compara `eval` con el reenvío de instrucciones a otra persona, destacando cómo su uso aumenta la complejidad del programa y reduce la comprensibilidad debido a la traducción del lenguaje y las dependencias ambientales. Si bien reconoce que `eval` es a veces necesario, como cuando se interactúa con sistemas externos, el autor enfatiza la necesidad de un uso cauteloso y la definición clara del contexto. En Racket, el comportamiento de `eval` está fuertemente influenciado por el entorno de ejecución, lo que exige una gestión cuidadosa del espacio de nombres. En última instancia, `eval` es una herramienta poderosa, pero que requiere una aplicación cuidadosa y considerada.

Índices Puente del OrioleDB: Equilibrio entre Velocidad y Ecosistema

2025-05-30
Índices Puente del OrioleDB: Equilibrio entre Velocidad y Ecosistema

OrioleDB presenta índices puente, una solución ingeniosa para integrar el rico ecosistema de índices no B-tree de PostgreSQL (como GIN, GiST) mientras se mantiene su arquitectura MVCC y sin heap. Una columna virtual `iptr` y un índice puente ligero mapean los índices de PostgreSQL a la estructura interna de OrioleDB. Esto permite soporte para diversos tipos de índices. Si bien añade una pequeña sobrecarga a la consulta (una búsqueda adicional), este coste suele ser insignificante para índices complejos (por ejemplo, búsqueda ANN de pg_vector). Esta innovación permite a los usuarios aprovechar sus extensiones preferidas sin sacrificar el rendimiento.

Desarrollo

C++ Moderno: Dominando RAII (Adquisición de Recursos es Inicialización)

2025-05-30

Este artículo profundiza en RAII (Adquisición de Recursos es Inicialización) en C++ moderno. RAII vincula elegantemente la gestión de recursos a los ciclos de vida de los objetos, utilizando constructores para adquirir recursos y destructores para liberarlos, previniendo fugas. Usando un ejemplo de descriptor de archivo, demuestra el manejo seguro de archivos con RAII, explicando la 'regla de los tres', 'regla de los cinco' y 'regla de cero', y cómo evitar las trampas comunes. El artículo concluye resumiendo las ventajas y limitaciones de RAII y sugiriendo lecturas adicionales.

Cola sin bloqueo en C++: Una inmersión profunda en atómicos y ordenación de memoria

2025-05-30

Este artículo se adentra en las complejidades de los atómicos y el orden de memoria en C++, culminando en una implementación básica de una cola sin bloqueo. El autor explica meticulosamente la indivisibilidad de las operaciones atómicas y el impacto de los diferentes modelos de orden de memoria (relaxed, release-acquire, seq_cst) en la programación concurrente, utilizando ejemplos ilustrativos para demostrar cómo evitan las carreras de datos. Luego se intenta una cola sin bloqueo basada en una lista enlazada, detallando las operaciones de enqueue y dequeue. Sin embargo, el autor reconoce la falta de completitud de la implementación, específicamente su falla en abordar el problema ABA. El artículo es una guía completa adecuada para lectores con alguna experiencia en programación concurrente en C++.

Desarrollo Cola sin bloqueo

OpenBao Secret Manager introduce Namespaces para una seguridad y escalabilidad mejoradas

2025-05-30
OpenBao Secret Manager introduce Namespaces para una seguridad y escalabilidad mejoradas

OpenBao Secret Manager ha lanzado una potente función de Namespaces, que permite una multi-tenencia robusta y un aislamiento granular. Cada namespace funciona como una instancia independiente de OpenBao, con sus propias políticas, métodos de autenticación y motores de secretos. Esto mejora la seguridad, permitiendo que los equipos u organizaciones gestionen sus secretos de forma independiente y simplificando la gestión de las implementaciones a gran escala. Los planes futuros incluyen el uso de Namespaces para mejorar la escalabilidad horizontal de OpenBao, permitiendo el manejo eficiente de muchos recursos de acceso poco frecuente, sin necesidad de cargar todo el estado del sistema a la vez.

Servidor MCP en Bash: Ligero y sin sobrecarga

2025-05-30
Servidor MCP en Bash: Ligero y sin sobrecarga

Este proyecto presenta un servidor ligero del Protocolo de Contexto del Modelo (MCP) implementado completamente en Bash, evitando la sobrecarga de entornos de ejecución más pesados como Node.js o Python. Ofrece soporte completo para JSON-RPC 2.0 y el protocolo MCP, descubrimiento dinámico de herramientas, configuración JSON y extensión fácil de herramientas personalizadas. Una interfaz simple de línea de comandos facilita su ejecución, con ejemplos que muestran cómo crear su propio servidor MCP (se muestra un servidor meteorológico). Si bien carece de procesamiento concurrente, gestión avanzada de memoria y respuestas en streaming, es suficiente para asistentes de IA y la ejecución de herramientas locales.

Desarrollo

El IRS publica Direct File como código abierto: un sistema gratuito de declaración de impuestos

2025-05-30
El IRS publica Direct File como código abierto: un sistema gratuito de declaración de impuestos

El IRS ha publicado Direct File como código abierto, un servicio gratuito de declaración de impuestos en línea. Utiliza un enfoque basado en entrevistas, funciona en varios dispositivos (móviles, de escritorio, etc.) y admite inglés y español. Direct File traduce la legislación tributaria en preguntas sencillas, generando formularios de impuestos estándar que se envían al IRS. Su núcleo es Fact Graph, un grafo de conocimiento basado en Scala que gestiona información incompleta. Direct File también facilita la declaración de impuestos estatales y locales permitiendo a los usuarios importar sus datos de declaración federal a herramientas de terceros. Desarrollado internamente por el IRS con el apoyo de USDS, GSA y otros socios, parte del código se excluyó debido a preocupaciones de privacidad y seguridad.

Desarrollo

Suma y resta más rápidas en CPUs modernas: Superando la propagación del acarreo

2025-05-30

Este artículo explora técnicas para acelerar la suma y resta de enteros grandes en CPUs modernas. Los métodos tradicionales, similares a la suma larga manual, procesan dígitos del menos significativo al más significativo, manejando los acarreos en serie. Esto limita el paralelismo. El artículo propone un enfoque inteligente: alterar el sistema numérico para retrasar la propagación del acarreo, realizándola de una sola vez para aprovechar el paralelismo de la CPU, aumentando significativamente la velocidad. La idea central implica dividir enteros grandes en partes más pequeñas, utilizando las instrucciones `add` y `adc` de x86 y empleando la representación radix-251 para minimizar las operaciones de acarreo, lo que resulta en una suma y resta más rápidas que los métodos tradicionales.

El lado oscuro de la generación de código asistida por IA: Un estudio de caso de Cursor

2025-05-30

Este artículo evalúa críticamente la eficacia de las herramientas de generación de código asistida por IA. Utilizando una sugerencia de modificación de código mostrada en la página principal del editor Cursor como estudio de caso, el autor demuestra cómo el código generado por IA no solo falla en mejorar la productividad, sino que también puede introducir errores e ineficiencias, como la validación de longitud inútil y la sanitización de cadenas cuestionable. El autor argumenta que una buena herramienta de IA debería identificar y evitar estos problemas, proporcionando a los programadores el contexto necesario para tomar decisiones informadas en lugar de simplemente ofrecer una solución potencialmente defectuosa. Las herramientas actuales de generación de código por IA, como se ejemplifica, no alcanzan este objetivo, lo que resulta en un impacto negativo en la productividad.

Desarrollo

Construye tu propio receptor AM con SDR práctico

2025-05-30

El Capítulo 4 de 'Practical SDR' te guía en la construcción de un receptor AM. Perfecto para aficionados, estudiantes que aprenden comunicaciones inalámbricas o ingenieros que crean prototipos de diseños de RF, este libro te enseña a construir receptores de radio virtuales, extraer audio de señales AM y FM reales, comprender la modulación de amplitud y dominar el muestreo IQ usando GNU Radio Companion. Aprenderás a manipular frecuencias de 1 MHz a 6 GHz, filtrar ruido, optimizar el rendimiento del SDR y demodular señales de radio reales. Este libro llena el vacío entre tutoriales y aplicaciones avanzadas, proporcionando una base para la comprensión de sistemas inalámbricos modernos. Algunos proyectos requieren hardware SDR, como un HackRF One y una antena.

Desarrollo

arXivLabs: Proyectos experimentales con colaboradores de la comunidad

2025-05-29
arXivLabs: Proyectos experimentales con colaboradores de la comunidad

arXivLabs es un marco que permite a los colaboradores desarrollar y compartir nuevas funciones de arXiv directamente en nuestro sitio web. Tanto las personas como las organizaciones que trabajan con arXivLabs han abrazado y aceptado nuestros valores de apertura, comunidad, excelencia y privacidad de los datos de los usuarios. arXiv está comprometido con estos valores y solo trabaja con socios que los respalden. ¿Tienes una idea para un proyecto que agregue valor a la comunidad de arXiv? Obtén más información sobre arXivLabs.

Desarrollo

Stack Overflow: Luchando por la supervivencia en la era de la IA

2025-05-29
Stack Overflow: Luchando por la supervivencia en la era de la IA

Ante la caída del 90% en las visitas debido al auge de herramientas de IA como ChatGPT, Stack Overflow está experimentando una transformación significativa. Han relanzado las funciones de chat, están explorando servicios de consulta de expertos pagos y planean crear páginas de inicio personalizadas que agreguen videos, blogs, preguntas y respuestas, y más. Simultáneamente, Stack Overflow se está asociando con empresas de IA como OpenAI y Google, licenciando sus datos de alta calidad para el entrenamiento de modelos de IA e integrando sus datos en herramientas de IA. A pesar del desafío masivo, Stack Overflow se está diversificando y colaborando con la IA para encontrar nuevas oportunidades de crecimiento en la era de la inteligencia artificial.

Desarrollo

Llamando a Python desde C: Una Guía Práctica

2025-05-29
Llamando a Python desde C: Una Guía Práctica

Este artículo proporciona una guía práctica paso a paso sobre cómo llamar a funciones de Python desde código C. Comenzando por lo básico, cubre la configuración del entorno en Linux/Mac, incluyendo la inclusión del encabezado Python.h, la compilación del código C y el uso de Py_Initialize y Py_Finalize para inicializar y finalizar el intérprete de Python. Se detalla cómo cargar módulos de Python, obtener atributos de función, llamar a funciones (tanto sin parámetros como con parámetros) y limpiar la memoria. A través de ejemplos de código concretos, los lectores aprenden a integrar funciones de Python en programas C, permitiendo una interacción fluida entre código C y Python.

Ingenio Humano vs. LLMs: Depurando Conjuntos de Vectores Redis

2025-05-29

El desarrollador de Redis, antirez, relata una fascinante experiencia de depuración donde midió su ingenio contra Gemini 2.5 PRO, un gran modelo de lenguaje. Un complejo error en la implementación del conjunto de vectores (HNSW) de Redis, derivado de la corrupción de datos que lleva a enlaces de nodo inconsistentes, requería una solución más allá de un enfoque ingenuo O(N²). Si bien Gemini sugirió la búsqueda binaria, antirez finalmente ideó una solución creativa que involucra un acumulador XOR, refinada aún más mediante la incorporación de MurmurHash128 y una semilla aleatoria. Esta anécdota destaca el poder del pensamiento creativo humano al abordar problemas complejos, mostrando cómo los LLMs pueden ayudar, pero en última instancia, se quedan cortos de la ingenuidad humana en la generación de soluciones verdaderamente nuevas.

Desarrollo

Infisical está contratando: Construye el futuro de la infraestructura de seguridad de código abierto para la era de la IA

2025-05-29
Infisical está contratando: Construye el futuro de la infraestructura de seguridad de código abierto para la era de la IA

Infisical, la plataforma de infraestructura de seguridad de código abierto respaldada por Y Combinator, Google y Elad Gil, busca ingenieros full-stack excepcionales. Están construyendo la pila de infraestructura de seguridad de código abierto para la era de la IA, gestionando secretos, PKI interna, gestión de claves y flujos de trabajo SSH. El equipo cuenta con experiencia en empresas como Figma, AWS y Red Hat y ofrece una compensación y beneficios competitivos. Los candidatos ideales poseen un profundo conocimiento de JavaScript (React.js, Node.js, TypeScript), una sólida ética de trabajo y una pasión por aprender. Desarrollarás y mantendrás las funciones de la plataforma, expandirás las líneas de productos (Infisical PKI, SSH, KMS) y explorarás las aplicaciones de IA en seguridad. Únete a una misión para simplificar la seguridad para los desarrolladores, comenzando por la gestión de secretos.

Desarrollo

Nova: Un novedoso motor JavaScript escrito en Rust

2025-05-29

Nova es un motor JavaScript (ECMAScript) y WebAssembly escrito en Rust, siguiendo principios de diseño orientados a datos. Actualmente, es solo un experimento divertido para aprender y probar la viabilidad de dicho motor, pero bien podría convertirse en algo mucho mayor en el futuro. El motor todavía es muy limitado en sus capacidades, pasando solo alrededor del 70% del conjunto de pruebas test262. Sin embargo, el desarrollo está en curso y estamos mejorando rápidamente el motor. Si está interesado en el proyecto, consulte el repositorio de GitHub o únase a nuestro servidor Discord, donde reside el equipo principal y donde discutimos el desarrollo.

Desarrollo

Línea de comandos: Una guía para todos

2025-05-29
Línea de comandos: Una guía para todos

¡Domina la línea de comandos sin esfuerzo! Este manual proporciona una forma rápida y sencilla de dominar los comandos Unix/Linux, eliminando la necesidad de extensos manuales. Aprende terminales, shells, aplicaciones de línea de comandos y scripts de shell juntos, no por separado. Más de 100 sesiones de shell anotadas y ejemplos de código hacen que el aprendizaje sea divertido y eficaz. Actualizado en 2025, es la guía definitiva, en la que confían más de 5700 lectores. ¡Únete a ellos y mejora tus habilidades hoy!

Desarrollo

Construyendo un Maestro de Juego LLM Autónomo con Modelos Pequeños y Datos Sintéticos

2025-05-29
Construyendo un Maestro de Juego LLM Autónomo con Modelos Pequeños y Datos Sintéticos

Esta publicación detalla el proceso de creación de un Maestro de Juego LLM autónomo para juegos de rol de mesa (TTRPG). Inicialmente, el objetivo era un enfoque de agente, pero el autor optó por una estrategia ascendente para comprender mejor el desarrollo del modelo. Debido a recursos computacionales limitados, se eligió un modelo pequeño Qwen3, entrenado con el libro de reglas de Shadowdark RPG procesado mediante OCR en formato Markdown. Se creó un Shadowdark QA Bench para la evaluación, comparando varias métricas antes de decidirse por una coincidencia basada en palabras clave. Después del preentrenamiento y el aumento del conocimiento (creando varias reformulaciones del texto del libro de reglas), el modelo alcanzó una precisión del 60% en el benchmark, cumpliendo el objetivo del autor. El siguiente paso es el ajuste del asistente.

Desarrollo Datos Sintéticos

Aprendiendo C3: Un relato en tiempo real de mi experiencia

2025-05-29

Este artículo documenta la experiencia en tiempo real del autor al aprender el lenguaje de programación C3. C3 pretende mejorar C añadiendo características modernas como un sistema de módulos, sobrecarga de operadores y genéricos. El autor explora varios aspectos de C3, incluyendo bucles foreach, la palabra clave defer, structs, manejo de errores, programación por contrato y macros, culminando en la construcción de una calculadora básica. Si bien elogia características como los bucles foreach, defer y el sistema de manejo de errores, el autor también observa deficiencias como la gestión de paquetes incompleta y la compatibilidad con servidores de lenguaje. En general, el autor considera que C3 es un lenguaje prometedor que aún se encuentra en desarrollo.

Dominios Integrales Finitos y Cuerpos Finitos: ¿El Tamaño Determina la Estructura?

2025-05-29

Este artículo explora algunos resultados conocidos del álgebra abstracta sobre cuerpos y dominios integrales. Comienza definiendo un dominio integral y proporcionando ejemplos. El autor luego demuestra que todo cuerpo es un dominio integral, todo dominio integral finito es un cuerpo, pero los dominios integrales infinitos pueden o no ser cuerpos. Se dan dos demostraciones para el caso finito, destacando la interacción fascinante entre la finitud y la estructura algebraica.

RsyncUI: Interfaz gráfica para rsync en macOS

2025-05-29
RsyncUI: Interfaz gráfica para rsync en macOS

RsyncUI es una aplicación macOS basada en SwiftUI que proporciona una interfaz gráfica para la herramienta de línea de comandos rsync. Simplifica el uso de rsync permitiendo a los usuarios organizar tareas y configurar parámetros fácilmente. Compatible con macOS Sonoma y versiones posteriores, se puede instalar a través de Homebrew o mediante descarga directa. Es importante tener en cuenta que RsyncUI es solo una interfaz gráfica; la sincronización real la realiza rsync. Los usuarios pueden interrumpir tareas, pero deben permitir que se complete la limpieza antes de iniciar nuevas tareas.

Desarrollo

EdaMagit: Magit para VSCode – Optimiza tu flujo de trabajo Git

2025-05-29
EdaMagit: Magit para VSCode – Optimiza tu flujo de trabajo Git

EdaMagit lleva la potencia y eficiencia de Magit a VSCode. Esta interfaz Git basada en teclado te permite gestionar tus repositorios con facilidad, ofreciendo acceso rápido al estado, operaciones de archivos, ramificación, confirmación, fusión y mucho más. Incluso incluye soporte para Forge para ver solicitudes de extracción y problemas. Las atajos de teclado altamente personalizables te permiten adaptar la experiencia a tus preferencias, incluyendo la imitación de estilos Evil-Magit/Spacemacs. Aunque algunas funciones aún están en desarrollo, EdaMagit ofrece una alternativa convincente para aumentar tu productividad Git en VSCode.

Desarrollo

NATS casi abandona CNCF, generando debate sobre la sostenibilidad del código abierto

2025-05-29
NATS casi abandona CNCF, generando debate sobre la sostenibilidad del código abierto

Synadia, la empresa detrás del sistema de mensajería de código abierto NATS, amenazó brevemente con retirarlo de la CNCF y cambiar a una licencia no de código abierto, generando preocupaciones sobre la viabilidad a largo plazo de los proyectos de código abierto. Si bien un acuerdo de última hora hizo que Synadia transfiriera la marca registrada a la Linux Foundation y mantuviera NATS de código abierto, el incidente destacó las tensiones entre las fundaciones de código abierto y las empresas contribuyentes. La disputa reveló vulnerabilidades en el marco actual, subrayando la necesidad de una gestión de activos más clara y salvaguardias más sólidas para proteger los proyectos de código abierto de amenazas futuras similares. La controversia también generó debates sobre el papel de las fundaciones en el mantenimiento de la estabilidad y la confianza en la comunidad de código abierto.

Desarrollo

typed-ffmpeg: Una interfaz moderna de FFmpeg en Python

2025-05-29
typed-ffmpeg: Una interfaz moderna de FFmpeg en Python

typed-ffmpeg proporciona una interfaz moderna y en Python para FFmpeg, ofreciendo un amplio soporte para filtros complejos con tipado y documentación detalladas. Construido con la biblioteca estándar de Python, simplifica la construcción de gráficos de filtros, cuenta con autocompletado de IDE e incluye serialización JSON de gráficos de filtros, validación automática de FFmpeg y visualización de gráficos. Los desarrollos futuros incluyen soporte para más versiones de FFmpeg y una cobertura de filtros expandida. Este proyecto, inicialmente inspirado en GPT-3, finalmente utilizó métodos tradicionales de generación de código, ayudados significativamente por GitHub Copilot.

Desarrollo

Ejecutar código C# directamente sin archivos de proyecto: .NET 10 Preview 4

2025-05-29
Ejecutar código C# directamente sin archivos de proyecto: .NET 10 Preview 4

.NET 10 Preview 4 presenta una característica innovadora: ahora puedes ejecutar archivos C# directamente usando `dotnet run app.cs` — ¡sin necesidad de archivo de proyecto ni configuración! Esto reduce significativamente la barrera de entrada para C#, haciéndolo ideal para aprendizaje, creación de prototipos o scripts rápidos. Aprovecha las potentes directivas a nivel de archivo, como `#:package`, `#:sdk` y `#:property`, para gestionar paquetes NuGet, SDK y propiedades MSBuild directamente en tu archivo .cs, manteniendo la compatibilidad con los conceptos existentes de MSBuild. Incluso cuando tu script crece hasta convertirse en una aplicación completa, la conversión a una aplicación basada en proyectos es perfecta. Este flujo de trabajo simplificado facilita la experiencia de desarrollo C#, haciéndolo increíblemente accesible y conveniente para utilidades de CLI, scripts de automatización y mucho más.

El Auge y la Caída (¿y el Renacimiento?) de la Base de Datos HTAP

2025-05-29
El Auge y la Caída (¿y el Renacimiento?) de la Base de Datos HTAP

Esta entrada de blog narra el recorrido de la base de datos HTAP (Procesamiento Analítico Transaccional Híbrido). Desde la década de 1970, cuando una sola base de datos manejaba todas las transacciones y análisis, hasta el aislamiento de la carga de trabajo de la década de 1980, la división de la arquitectura de almacenamiento de la década de 1990 y el auge de NewSQL y los almacenes de datos en la nube de la década de 2010, las bases de datos HTAP tenían una gran promesa. Sin embargo, desafíos como la dificultad de reemplazar los sistemas OLTP existentes, el hecho de que la mayoría de las cargas de trabajo no necesitan OLTP distribuido, las arquitecturas nativas de la nube que favorecen el almacenamiento compartido en lugar del almacenamiento sin compartir y los incentivos de equipo desalineados, llevaron al fracaso del HTAP para lograr una adopción generalizada. Hoy en día, la pila de datos está cambiando hacia arquitecturas de data lake modulares, logrando la funcionalidad HTAP mediante la composición en lugar de la consolidación de bases de datos. Esto marca el fin de las bases de datos HTAP como una base de datos independiente, pero su espíritu vive en la arquitectura de data lake.

Desarrollo

Microsoft Presenta Plataforma de Orquestación de Actualizaciones de Windows y Copia de Seguridad Empresarial

2025-05-29
Microsoft Presenta Plataforma de Orquestación de Actualizaciones de Windows y Copia de Seguridad Empresarial

Microsoft ha lanzado una vista previa privada de una plataforma de orquestación de actualizaciones de Windows 11 diseñada para simplificar las actualizaciones de aplicaciones, proporcionando programación centralizada y solución de problemas. Los desarrolladores pueden registrar la lógica de actualización a través de las API de WinRT y PowerShell, admitiendo aplicaciones MSIX/APPX y Win32. Simultáneamente, está disponible una vista previa pública limitada de Windows Backup for Organizations, que permite la copia de seguridad y la restauración de la configuración de los dispositivos Windows 10 y 11, facilitando las migraciones empresariales a Windows 11 y mitigando las amenazas de malware. Sin embargo, el servicio tiene requisitos específicos de dispositivo y entorno.

Renderizado Realista de Césped: De los Principios a la Implementación en Godot

2025-05-29

Esta es la primera parte de una serie de varias partes sobre el renderizado realista de césped. Comienza explorando las propiedades visuales del césped real, como su brillo, translucidez y auto-sombreado. Luego se presentan varios métodos para simular césped en gráficos 3D en tiempo real, incluyendo texturizado, mapeo normal y el uso de carteles y geometría completa para las hojas de césped. El artículo concluye observando que las GPU modernas pueden manejar el renderizado de césped con geometría completa y previsualiza la siguiente entrega, que detallará cómo implementar césped con geometría completa en Godot.

Desarrollo

MMBasic en Raspberry Pi Pico: Un potente sistema BASIC embebido

2025-05-29

El firmware PicoMite proporciona un sistema operativo completo para el Raspberry Pi Pico y Pico 2, con un intérprete compatible con Microsoft BASIC y un amplio soporte de hardware, incluyendo paneles LCD táctiles, tarjetas SD, WiFi/internet y mucho más. Usando MMBasic, puedes adquirir fácilmente datos de varios sensores a través de protocolos I2C o SPI, guardar datos en una tarjeta SD, mostrar información en pantallas LCD a color, medir voltajes, detectar entradas digitales y controlar pines de salida para controlar luces, relés, etc. El firmware PicoMite es totalmente gratuito para descargar y usar, ofreciendo varias versiones para diferentes aplicaciones, como controladores embebidos, computadoras autónomas y controladores conectados a WiFi/internet. Su facilidad de uso y su rápido ciclo de desarrollo lo hacen ideal para el desarrollo de IoT y sistemas embebidos.

Desarrollo

Desbloqueo del rendimiento de Ruby Ractor: Eliminación de la contención de variables de clase

2025-05-28

Esta publicación profundiza en un cuello de botella de rendimiento en los Ractors de Ruby al tratar con variables de instancia de clase. El bloqueo global del intérprete causa una degradación significativa del rendimiento cuando varios Ractors acceden concurrentemente a estas variables. El autor analiza meticulosamente la implementación subyacente de las variables de instancia de clase y propone una solución utilizando la delegación de objetos para eliminar la contención de bloqueo, lo que resulta en una mejora de rendimiento de casi tres veces en microbenchmarks. Esta solución también corrige inesperadamente un error y una regresión de rendimiento introducidos por la nueva función de Espacio de nombres.

Desarrollo
1 2 73 74 75 77 79 80 81 214 215