Category: Desarrollo

GPU Kill: Herramienta CLI de gestión de GPU multiplataforma

2025-09-21
GPU Kill: Herramienta CLI de gestión de GPU multiplataforma

GPU Kill es una herramienta de línea de comandos para gestionar GPUs en sistemas NVIDIA, AMD, Intel y Apple Silicon. Supervisa, controla y protege tu infraestructura de GPU con facilidad. Las funciones incluyen monitorización en tiempo real del uso de la GPU, eliminación de procesos bloqueados, detección de mineros de criptomonedas y actividades sospechosas, aplicación de políticas para evitar el abuso de recursos, un panel web para la supervisión del clúster, gestión remota de GPUs en varios servidores e integración con asistente de IA. Admite Linux, macOS y Windows. Una interfaz de línea de comandos sencilla y un panel web proporcionan una gestión fácil de usar.

Desarrollo gestión de GPU

Minúsculo analizador JSON C99: Sin asignación, ~150 líneas

2025-09-21
Minúsculo analizador JSON C99: Sin asignación, ~150 líneas

Una biblioteca mínima de análisis JSON escrita en C99, con aproximadamente 150 líneas de código. Se caracteriza por la asignación cero para la eficiencia de la memoria y un estado simplificado. Los mensajes de error incluyen números de línea y columna precisos. El análisis de números y cadenas se deja al usuario, permitiendo la personalización con funciones como `strtod` y `atoi`. Un ejemplo simple muestra cómo cargar un rectángulo desde una cadena JSON en una estructura `Rect`. Este proyecto es software libre y sin restricciones, lanzado al dominio público.

Desarrollo asignación cero

arXivLabs: Proyectos Experimentales con Colaboradores de la Comunidad

2025-09-21
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 el sitio web. Las personas y organizaciones que trabajan con arXivLabs han adoptado 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. ¿Tiene una idea para un proyecto que agregue valor a la comunidad de arXiv? Obtenga más información sobre arXivLabs.

Desarrollo

Depuración DXGI de Microsoft: Mi juego en la lista negra accidentalmente

2025-09-21
Depuración DXGI de Microsoft: Mi juego en la lista negra accidentalmente

Al portar Space Station 14 a Windows ARM64, el desarrollador encontró un fallo extraño. La depuración reveló que el problema provenía de una optimización DXGI de Microsoft para juegos en ventana, forzando el modo "flip", causando excepciones de instrucción ilegal con GetDC() en circunstancias específicas (el ejecutable del juego llamado SS14.Loader.exe). Resultó ser un error en la optimización DXGI ARM64 de Microsoft, habilitado solo para nombres de juegos específicos, y Space Station 14 estaba desafortunadamente en esa lista. El desarrollador sospecha que este error pasó desapercibido debido al número limitado de juegos Windows ARM64 nativos. El problema se ha informado a Microsoft, y el soporte para Windows ARM64 se pospone temporalmente hasta que se solucione el error.

Vec: Un array dinámico rápido y seguro para C

2025-09-21
Vec: Un array dinámico rápido y seguro para C

Vec es un array dinámico genérico, rápido y seguro para C. Utiliza memoria contigua, crece geométricamente (×2) para operaciones push amortizadas O(1), y ofrece una API de estilo de método para una sensación orientada a objetos. La biblioteca prioriza la seguridad con protecciones contra desbordamiento, accesores con verificación de límites y un comportamiento bien definido para casos límite. Su diseño equilibra rendimiento y seguridad, proporcionando una interfaz limpia y eficiente.

Desarrollo

Seguridad de la cadena de suministro de software de código abierto: Medio siglo de desafíos

2025-09-21

Desde la revisión de seguridad del sistema Honeywell Multics de 1974, que destacaba las preocupaciones sobre las 'puertas traseras', hasta el ataque XZ de 2024 dirigido a sistemas Debian, la seguridad de la cadena de suministro de software de código abierto sigue siendo un problema persistente. Este artículo explora la complejidad del problema, que va más allá de los simples gráficos de dependencia, abarcando todas las etapas de construcción y distribución de software, incluidos los factores humanos. Se proponen soluciones como la autenticación de software, las compilaciones reproducibles, la detección y corrección rápidas de vulnerabilidades y el uso de lenguajes de programación más seguros. Fundamentalmente, se destaca la importancia de la financiación del desarrollo de código abierto, ya que la falta de financiación hace que los proyectos sean vulnerables a la toma de control maliciosa. El ataque XZ sirve como una clara advertencia: una 'ayuda gratuita' aparentemente inofensiva puede ocultar riesgos significativos.

Desarrollo

Los peligros de seguir órdenes: Un programador en el purgatorio de la programación funcional

2025-09-21

Un programador, después de que un compañero de trabajo se queja de su estilo de programación funcional, tiene prohibido usarlo por su gerente. Para mantener su trabajo, reescribe a regañadientes una función simple para listar compañeros de trabajo, usando programación imperativa. A pesar de sus mejores esfuerzos para evitar paradigmas funcionales, lucha por cumplir completamente, enfrentando más desafíos durante la revisión de código y, finalmente, necesita buscar orientación de su gerente. Esta anécdota humorística destaca lo absurdo de las decisiones técnicas arbitrarias en el lugar de trabajo.

Bluefin LTS y GDX: Comienza el Reinado de Achillobator

2025-09-21
Bluefin LTS y GDX: Comienza el Reinado de Achillobator

Después de nueve meses, Bluefin LTS (Soporte a Largo Plazo) y Bluefin GDX (Estación de Trabajo de IA) están disponibles. Bluefin LTS, construido sobre CentOS Stream 10, ofrece un escritorio GNOME 48 estable con soporte a largo plazo y una rama de habilitación de hardware opcional (lts-hwe) para kernels más nuevos. Bluefin GDX está dirigido a profesionales de IA/ML, integrando controladores Nvidia y CUDA, y colaborando con Red Hat en herramientas de IA/ML de código abierto. Ambos cuentan con una instalación mejorada y soporte de arranque seguro, con el objetivo de proporcionar una experiencia de escritorio estable y eficiente.

PostgreSQL 18 Beta: UUIDv7 mejora las claves primarias de la base de datos

2025-09-21
PostgreSQL 18 Beta: UUIDv7 mejora las claves primarias de la base de datos

Se ha lanzado PostgreSQL 18 Beta, y su característica más esperada es la compatibilidad nativa con UUIDv7. UUIDv7, una variante de UUID basada en marca de tiempo, resuelve los problemas de ordenación y localidad de índice inherentes a los UUID tradicionales utilizados como claves primarias de la base de datos. Ofrece una combinación convincente de identificadores globalmente únicos y ordenación temporal, lo que lo hace ideal para bases de datos distribuidas que necesitan alto rendimiento y escalabilidad. Otras mejoras de rendimiento en PostgreSQL 18 incluyen E/S asincrónica y optimizaciones de índice.

Desarrollo

Bug persistente en la Utilidad de Discos APFS de macOS: Una solución alternativa

2025-09-21
Bug persistente en la Utilidad de Discos APFS de macOS: Una solución alternativa

La Utilidad de Discos de macOS Monterey 12.0.1 sigue sufriendo un error persistente: la incapacidad de desmontar volúmenes o contenedores al reparar discos APFS. Este artículo proporciona soluciones alternativas, incluyendo el uso de la Utilidad de Discos en modo de recuperación o el uso directo de la herramienta de línea de comandos `fsck_apfs` para verificar y reparar volúmenes y contenedores APFS. El artículo detalla el uso de `fsck_apfs`, incluyendo las opciones de verificación y reparación, y el manejo de volúmenes encriptados.

Calibración: Luchando contra la Sobresimplificación y los Datos Escasos

2025-09-21
Calibración: Luchando contra la Sobresimplificación y los Datos Escasos

Este artículo aborda un problema común en la calibración de modelos: la regresión isotónica, debido a que el conjunto de datos de calibración es mucho menor que el conjunto de entrenamiento original, sobresimplifica la distribución de probabilidad, perdiendo las distinciones granulares del modelo. El artículo analiza este fenómeno de 'aplanamiento inducido por la escasez de datos' y propone varios métodos de diagnóstico para distinguir entre la simplificación justificable debido al ruido y la sobresimplificación debido a las limitaciones de datos. Finalmente, presenta el paquete Calibre, que, al relajar las restricciones isotónicas o usar modelos monótonos suaves, mantiene la precisión de la calibración mientras preserva la mayor parte posible del poder discriminatorio del modelo original.

Codificación con IA: Mejorador de Expertos, No Reemplazo

2025-09-21

El papel de la IA en la codificación está lejos de reemplazar a los programadores; en cambio, actúa como un impulsor de eficiencia para los desarrolladores senior. La IA sobresale en el código estándar, automatizando tareas repetitivas e iteración rápida, pero se queda corta en la revisión de código, el diseño de la arquitectura, la calidad del código y la seguridad. Por lo tanto, la combinación actualmente más eficaz es "desarrollador senior + IA", no la inicialmente imaginada "desarrollador junior + IA". Las mejores aplicaciones de la IA son en prototipado rápido, automatización de tareas rutinarias, trabajo multidisciplinar y pruebas de función simples. Aunque la IA tiene un potencial inmenso en la codificación, la revisión humana de su código generado sigue siendo crucial, y las expectativas deben estar alineadas con la realidad.

Desarrollo

El Auge de la Economía de Limpieza de Código de IA

2025-09-21

La adopción generalizada de la codificación asistida por IA ha traído consigo un desafío significativo: el desorden de la 'codificación vibe'. Si bien la IA genera código de manera eficiente, a menudo carece de solidez arquitectónica, consideraciones de seguridad y comprensión del contexto del sistema, lo que lleva a la necesidad de una extensa refactorización del código. Ha surgido una nueva profesión: el limpiador de código de IA, especializado en corregir código de baja calidad generado por IA y que cobra tarifas altas. Las investigaciones de mercado indican que la mayoría de los ingenieros de software empresariales utilizarán asistentes de código de IA para 2028, lo que indica una enorme oportunidad de crecimiento en el mercado de limpieza de código de IA. El futuro del desarrollo de software probablemente implicará que la IA se encargue de la implementación inicial, mientras que los humanos gestionan la arquitectura, las pruebas y la limpieza. Los ingenieros competentes en la limpieza de código de IA estarán muy solicitados.

Desarrollo

RNN aceleradas por GPU: Una implementación CUDA de minGRU y minLSTM

2025-09-21

Esta publicación de blog detalla un proyecto final para el curso CS179: Programación de GPU del Caltech, que verifica las afirmaciones del artículo de Feng et al., “Were RNNs All We Needed?”. El proyecto implementó modelos minGRU y minLSTM simplificados y un algoritmo de exploración paralela CUDA personalizado. Los resultados mostraron aceleraciones significativas de la GPU para secuencias largas, validando el hallazgo principal del artículo de que la recurrencia RNN se puede paralelizar. Sin embargo, para secuencias cortas, la sobrecarga de inicio del kernel CUDA anuló algunas ganancias de rendimiento. El perfil del kernel de la GPU reveló la capa de proyección final como el principal cuello de botella, lo que sugiere una mayor optimización mediante una única llamada cuBLAS GEMM.

Desarrollo

Abordando datos heterogéneos en un lenguaje de scripting para juegos estáticamente tipado

2025-09-21

El autor encontró dificultades al manejar datos heterogéneos mientras desarrollaba un lenguaje de scripting para juegos estáticamente tipado. El artículo explora varias soluciones usadas en diferentes lenguajes de programación, incluyendo nulo, tipos variantes, uniones sin etiquetar, tipos suma y subtipado. El autor finalmente elige un enfoque similar a los registros variantes en Pascal, equilibrando una sintaxis concisa con la verificación de tipos en tiempo de ejecución. Esto evita la complejidad de la tipificación de flujo, dando como resultado un lenguaje más comprensible y fácil de usar. Es un diseño inteligente que equilibra la seguridad de tipos estáticos con la facilidad de uso, proporcionando una solución de lenguaje de scripting más conveniente para el desarrollo de juegos.

Desarrollo

La inflación de bibliotecas que priorizan los casos límite: el infierno de dependencias de npm

2025-09-21

Este artículo examina la proliferación de bibliotecas sobrediseñadas en el ecosistema npm. Muchas bibliotecas priorizan el manejo de casos límite raros, lo que resulta en árboles de dependencias excesivamente granulares. El autor usa el ejemplo de `is-number`, que maneja varias entradas similares a números cuando la mayoría de las aplicaciones solo necesitan manejar el tipo `number`. La solución propuesta es que las bibliotecas se centren en los casos de uso comunes, haciendo suposiciones razonables sobre los tipos de entrada y dejando el manejo de los casos límite para los proyectos que los necesiten. Esto simplifica el código, mejora el rendimiento y reduce las dependencias innecesarias.

Desarrollo

El Desafío Algorítmico de la Expansión Eficiente de Vocabulario

2025-09-21

Aprender un nuevo idioma de manera eficiente requiere expandir el vocabulario rápidamente. Este artículo explora el problema de seleccionar libros para maximizar la eficiencia del aprendizaje de vocabulario. Si bien seleccionar un solo libro es relativamente sencillo, elegir varios libros para cubrir más vocabulario se convierte en un problema NP-difícil, lo que significa que el tiempo de computación para soluciones exactas crece exponencialmente con el número de libros. Afortunadamente, este problema se encuadra en problemas submodulares, permitiendo el uso de algoritmos de aproximación para encontrar soluciones casi óptimas dentro de una determinada precisión. El artículo presenta algoritmos voraces y sus mejoras, y recomienda la eficiente biblioteca Python submodlib.

Un ingeniero de Microsoft y su encuentro con Raymond Chen: Preprocesadores y mensajes de error de BitLocker

2025-09-21
Un ingeniero de Microsoft y su encuentro con Raymond Chen: Preprocesadores y mensajes de error de BitLocker

En 2009, un joven ingeniero de BitLocker de Microsoft buscó una manera de referenciar valores constantes de C++ en archivos .mc para mejorar los mensajes de error de BitLocker. Recurrió a una lista de correo interna y recibió una respuesta concisa pero efectiva de Raymond Chen: usar el preprocesador. Sin embargo, por miedo a interrumpir el complejo sistema de compilación de Windows, el ingeniero finalmente abandonó el enfoque. Años después, reflexiona sobre esta experiencia, destacando las deficiencias en las herramientas internas de Microsoft y su propia aversión a los sistemas de compilación complejos.

Desarrollo

La caché de Bazel, la ejecución remota y la falta de coincidencia de la versión de glibc provocan un fallo en la producción

2025-09-21
La caché de Bazel, la ejecución remota y la falta de coincidencia de la versión de glibc provocan un fallo en la producción

Este artículo describe un fallo en la producción causado por la interacción entre la caché de Bazel, la ejecución remota y las diferentes versiones de glibc en diferentes entornos. Un desarrollador compila y prueba un cambio localmente, el CI aprovecha la caché para compilar una versión de lanzamiento, pero la implementación en producción falla debido a la ausencia de la versión 'GLIBC_2.28'. El artículo analiza cómo las discrepancias en la versión de glibc rompen la reproducibilidad de la compilación y presenta soluciones: un atajo rápido implica capturar las versiones locales y remotas de glibc, seleccionando la más alta para la cadena de herramientas de C++; una solución más robusta restringe las escrituras en la caché de acción, forzando las compilaciones a ejecutarse en ejecutores remotos; la solución definitiva utiliza sysroots, instalando varias versiones de glibc en todos los entornos y especificando explícitamente cuál usar. El artículo destaca la importancia de las compilaciones reproducibles, recomendando soluciones basadas en el contexto.

De Mononúcleo a Multinúcleo: La Evolución del Procesamiento Paralelo de macOS

2025-09-20
De Mononúcleo a Multinúcleo: La Evolución del Procesamiento Paralelo de macOS

El Mac original de 128K de 1984 contaba con un único procesador Motorola 68000 a 8 MHz, capaz de ejecutar solo una aplicación a la vez. Hoy en día, los Mac manejan cómodamente varias aplicaciones importantes de forma simultánea, junto con copias de seguridad de Time Machine y otras tareas en segundo plano. Este artículo narra esa evolución, desde los orígenes de la monotarea hasta la introducción de Switcher y MultiFinder, el salto a la multitarea preemptive y la multithreading en Mac OS X, y las optimizaciones de rendimiento aportadas por Grand Central Dispatch (GCD). El recorrido culmina en la gestión eficiente de hasta 32 núcleos de CPU, mostrando la búsqueda incesante de Apple por mejoras de rendimiento en macOS.

Resolviendo un rompecabezas de madera de 25 piezas con Haskell: Parte I

2025-09-20

El autor recibió un rompecabezas 3D desafiante compuesto por 25 piezas de madera idénticas y, después de luchar por resolverlo manualmente, decidió aprovechar el poder del lenguaje de programación Haskell. Esta es la primera de una serie de dos partes que se centra en el modelado del problema. El autor modela el espacio como una cuadrícula 3D, utilizando vectores para representar las posiciones y definiendo estructuras de datos para una sola pieza y su disposición en el espacio. El artículo detalla cómo se utilizan el álgebra lineal y las características de Haskell para representar las rotaciones y las traslaciones de las piezas, generando una lista de candidatos de todas las disposiciones posibles. El artículo termina con un suspenso, dejando la solución de encontrar la disposición correcta entre los candidatos para la segunda parte.

Desarrollo Rompecabezas 3D

Aumento del rendimiento del kernel de Linux: secuencias reiniciables mejoradas

2025-09-20

La función de secuencias reiniciables del kernel de Linux, diseñada para aumentar el rendimiento en aplicaciones con subprocesos, ha visto un aumento en su uso junto con nuevas funciones del kernel. Sin embargo, esto ha revelado algunos problemas. El desarrollador Thomas Gleixner recientemente mejoró el código, abordando los cuellos de botella de rendimiento y los problemas históricos. Estos cambios mejoran significativamente la eficiencia, pero pueden requerir cambios de ABI en el espacio de usuario, lo que exige pruebas rigurosas para garantizar la compatibilidad.

Modelos LLM de Azure: Un Caso de Rendimiento Degradante

2025-09-20
Modelos LLM de Azure: Un Caso de Rendimiento Degradante

Un desarrollador que construye un producto utilizando modelos LLM y de audio de Azure descubrió una tendencia preocupante: los mismos modelos están empeorando progresivamente con el tiempo. Utilizando indicaciones y mensajes del sistema idénticos, la precisión de las respuestas de GPT-4o-mini y GPT-5-mini/nano ha disminuido significativamente. GPT-5, aunque inicialmente se esperaba que fuera superior, resultó más lento y menos preciso que el antiguo GPT-4o-mini. El desarrollador sospecha que Microsoft está degradando deliberadamente los modelos antiguos para impulsar a los usuarios hacia versiones más nuevas, menos fiables. Esta práctica perjudica la experiencia del usuario y puede llevar a los desarrolladores a buscar plataformas alternativas.

Purga masiva de paquetes NPM: Una llamada de atención para desarrolladores

2025-09-20
Purga masiva de paquetes NPM: Una llamada de atención para desarrolladores

Una cantidad significativa de paquetes npm se han eliminado del registro npm, afectando componentes y herramientas en varios frameworks como React, Angular y NativeScript. Los paquetes afectados van desde aquellos completamente eliminados hasta otros con versiones corregidas. Este evento sirve como recordatorio para los desarrolladores de la importancia del mantenimiento y la seguridad de las dependencias. Es crucial revisar las dependencias del proyecto y tomar las medidas necesarias para evitar interrupciones. Las razones para la eliminación pueden incluir vulnerabilidades de seguridad, problemas de mantenimiento u otros factores.

¿Por qué deberías abandonar GitHub para tu proyecto de código abierto?

2025-09-20

Este artículo expone los aspectos problemáticos del uso de GitHub, una plataforma propiedad de Microsoft. Destaca problemas como el control limitado del usuario, un modelo centralizado, el seguimiento de telemetría y el bloqueo del proveedor a través de funciones como GitHub Actions y Copilot. Más críticamente, detalla las asociaciones controvertidas de Microsoft con el gobierno de EE. UU. y el ejército israelí, incluido el suministro de servicios en la nube a ICE y tecnología de IA a las Fuerzas de Defensa de Israel, lo que provocó protestas internas de los empleados. El autor aboga por la migración de proyectos de código abierto a soluciones autohospedadas como Forgejo o Sourcehut para preservar el espíritu y la independencia del código abierto.

Desarrollo

El comité de C++ abandona la propuesta de subconjunto seguro en medio del debate sobre la seguridad de memoria

2025-09-20
El comité de C++ abandona la propuesta de subconjunto seguro en medio del debate sobre la seguridad de memoria

El comité de estándares de C++ rechazó una propuesta detallada para un subconjunto rigurosamente seguro del lenguaje, a pesar de las continuas preocupaciones sobre la seguridad de memoria. El coautor Sean Baxter atribuye el rechazo a la impopularidad del modelo de seguridad de Rust en el comité, favoreciendo el enfoque de 'Perfiles' en su lugar. Si bien los Perfiles cuentan con el apoyo de figuras como Bjarne Stroustrup, su viabilidad es cuestionada, pudiendo no incluirse en C++26. La decisión genera controversia, y los desarrolladores sugieren que cambiar a Rust u otras alternativas de lenguajes más seguros, como el proyecto experimental Carbon de Google, podría ser una solución superior.

Desarrollo

Restricciones de la Unidad de Servicio Systemd: Una Causa Común de Fallos en el Inicio de Daemons

2025-09-20

Un problema clásico para los administradores de sistemas Linux es que un daemon falle al iniciarse normalmente, pero funcione correctamente cuando se ejecuta manualmente como root. Las causas tradicionales incluyen variables de entorno $PATH incompletas, SELinux y AppArmor. Cada vez más, las restricciones de la unidad de servicio systemd (documentadas en systemd.exec) son las culpables. Las directivas como ProtectHome y PrivateTmp pueden causar errores crípticos de "permiso denegado" o "archivo no encontrado", o incluso fallos indirectos como el bloqueo de consultas DNS. Eliminar las restricciones del archivo .service del daemon puede ayudar a diagnosticar el problema, pero los daemons futuros pueden depender de estas restricciones, complicando la resolución de problemas.

Desarrollo

Llamadas al sistema: El costo oculto del rendimiento

2025-09-20
Llamadas al sistema: El costo oculto del rendimiento

Este artículo profundiza en la sobrecarga de rendimiento de las llamadas al sistema de Linux, revelando que es mucho más que una simple llamada a función del kernel. Las llamadas al sistema interrumpen las optimizaciones de microarquitectura de la CPU, como la canalización de instrucciones y la predicción de saltos, lo que lleva a pérdidas de rendimiento que superan con creces lo que es aparente en el código fuente. El artículo analiza el código del kernel, explica el impacto en el rendimiento de varias mitigaciones de software y hardware, y ofrece estrategias de optimización, como el uso de vDSO, el almacenamiento en caché de valores, la optimización de E/S, las operaciones por lotes y el traslado de trabajo al kernel para reducir la frecuencia de las llamadas al sistema y mejorar el rendimiento del software.

Desarrollo

Biblioteca de funciones de suavizado Bézier cúbicas en C++: Velocidad excepcional

2025-09-20

Este artículo presenta una biblioteca C++20 de un solo encabezado que representa curvas Bézier cúbicas directamente como funciones de suavizado, lo que resulta en mejoras de rendimiento en la animación. Implementada utilizando la clase de plantilla `EasingCubicBezier`, la biblioteca ofrece modos PRECISE (alta precisión) y FAST (alto rendimiento). Las pruebas de referencia demuestran que este enfoque supera al algoritmo de Blender y a las soluciones numéricas basadas en el método de Newton-Raphson, ofreciendo una velocidad y estabilidad superiores, especialmente para sistemas de animación en tiempo real. Esto se debe a que evita la sobrecarga asociada a la resolución de ecuaciones polinómicas cúbicas en tiempo de ejecución.

Desarrollo

GitHub Actions: Fin del Soporte para Node.js 20 y Migración a Node.js 24

2025-09-20
GitHub Actions: Fin del Soporte para Node.js 20 y Migración a Node.js 24

GitHub Actions anuncia el fin del soporte para Node.js 20 en abril de 2026 y planea migrar todas las acciones a Node.js 24 en otoño de 2025. La versión más reciente del ejecutor de GitHub ya admite Node.js 24, y los usuarios pueden probarlo con anticipación configurando una variable de entorno. A partir del 4 de marzo de 2026, Node.js 24 será la versión predeterminada. Los usuarios pueden continuar usando Node.js 20 temporalmente configurando una variable de entorno hasta su eliminación completa en verano. Tenga en cuenta que Node.js 24 es incompatible con macOS 13.4 y versiones anteriores, y no admite ejecutores autohospedados con arquitectura ARM32.

Desarrollo
1 2 4 6 7 8 9 214 215