Category: Desarrollo

arXivLabs: Proyectos experimentales con colaboradores de la comunidad

2025-05-17
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 adoptado 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 respetan. ¿Tiene una idea para un proyecto que agregue valor a la comunidad de arXiv? Obtenga más información sobre arXivLabs.

Desarrollo

Lanzamiento de Racket v8.17: Aumento del rendimiento y nuevas funciones

2025-05-17

¡La versión 8.17 del lenguaje de programación Racket ya está disponible! Esta versión incluye numerosas mejoras, como un paquete principal DrRacket más ligero, soporte para listas de árboles en Typed Racket, un gestor de paquetes mejorado, mayor precisión para las funciones numéricas y soporte para eventos de ratón en terminales Windows. Además, se han optimizado el cliente HTTP, el manejo de JSON y la biblioteca Redex. Esta actualización es un testimonio de la vibrante comunidad Racket, con contribuciones de muchos desarrolladores.

Desarrollo

Productividad de Bolsillo: Ejecutando un Escritorio Linux Completo en tu Teléfono

2025-05-17
Productividad de Bolsillo: Ejecutando un Escritorio Linux Completo en tu Teléfono

Para un viaje reciente de dos semanas, el autor construyó un entorno de escritorio Linux completo usando un Pixel 8 Pro, gafas AR Xreal Air 2 Pro y un teclado plegable. Ejecutando binarios arm64 en un chroot en Android, pudo usar herramientas de desarrollo como Neovim y Flutter, trabajando desde cafeterías, parques e incluso aviones. Si bien la configuración implicó algunas complejidades —rootear el teléfono y elegir la distribución Linux correcta (Void Linux fue la ganadora)—, esta estación de trabajo ultraportátil ofrece una libertad y flexibilidad incomparables, liberando a los desarrolladores de sus escritorios.

Mystical: Una Visualización de Círculo Mágico de PostScript

2025-05-17

Mystical es un lenguaje de programación novedoso que visualiza el código PostScript como estructuras de anillo similares a círculos mágicos. Los programas se organizan en anillos, que incluyen matrices ejecutables, matrices no ejecutables y diccionarios, cada uno con una representación visual única. Los operadores, variables y palabras clave se representan mediante sigilos (símbolos) combinados con texto dentro de los anillos. Mystical actualmente carece de un intérprete dedicado; la visualización requiere traducción manual a PostScript para su ejecución.

Desarrollo

Vulnerabilidad en GitHub Diff: Sustitución de caracteres Unicode

2025-05-17
Vulnerabilidad en GitHub Diff: Sustitución de caracteres Unicode

Un colaborador del proyecto curl, James Fuller, descubrió una vulnerabilidad en el visor de diferencias de GitHub. Actores maliciosos podrían sustituir caracteres ASCII por caracteres Unicode visualmente idénticos, alterando el código sin cambios aparentes. Esto podría llevar a la manipulación de URLs y otras consecuencias graves. Si bien el visor de diferencias de GitHub carecía de una advertencia, otras plataformas como Gitea señalaron dichos cambios. El proyecto curl respondió implementando comprobaciones de CI para detectar Unicode malicioso y limpió las secuencias UTF-8. Esto destaca la necesidad de medidas proactivas de seguridad de código para prevenir posibles ataques.

Bug de Pantalla Negra en Basilisk II: Una Odisea de Depuración de Doce Años

2025-05-17

Hace doce años, un error de pantalla negra en el emulador Basilisk II atormentaba a los usuarios en versiones más nuevas de Windows. El autor, mediante una depuración meticulosa, rastreó el problema a un sutil detalle de asignación de memoria: el orden de dos asignaciones de memoria en Windows causó que la ROM del emulador fallara al cargar. La solución implicó modificar el código de asignación de memoria, resolviendo este problema de larga data y mostrando habilidades de depuración y un profundo conocimiento del SO.

Desarrollo

CSS contrast-color(): Automatizando el Contraste de Colores para la Accesibilidad

2025-05-17
CSS contrast-color(): Automatizando el Contraste de Colores para la Accesibilidad

La nueva función `contrast-color()` de CSS simplifica las elecciones de color seleccionando automáticamente texto negro o blanco para contrastar con un color de fondo determinado. Este artículo profundiza en su uso, compara los algoritmos WCAG 2.1 y APCA para el cálculo del contraste y explora cómo usar las consultas de medios `prefers-contrast` para una mejor accesibilidad. Si bien actualmente se limita al negro y blanco, las futuras iteraciones pueden ofrecer opciones más personalizables. La función simplifica el desarrollo y mejora la accessibilidad, especialmente al gestionar varios estados de color.

Rust 10 años: Una historia de comunidad e infraestructura

2025-05-17
Rust 10 años: Una historia de comunidad e infraestructura

En el décimo aniversario del lenguaje de programación Rust, el autor original, Graydon Hoare, reflexiona sobre su trayectoria. No es solo una historia de lenguaje de programación, sino una narrativa de una vasta comunidad construyendo y manteniendo infraestructura técnica compartida. El éxito de Rust se debe a la necesidad de una infraestructura robusta y a la inversión a largo plazo de organizaciones como Mozilla, junto con miles de voluntarios. Rust evolucionó de un prototipo simple a un lenguaje poderoso con un enorme ecosistema y amplias aplicaciones. El futuro requiere la atracción continua de talento, el mantenimiento de la estabilidad y la compatibilidad y la mejora adicional de la calidad.

Desarrollo

arXivLabs: Proyectos experimentales con colaboradores de la comunidad

2025-05-17
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 adoptado 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 respetan. ¿Tienes una idea para un proyecto que agregará valor a la comunidad de arXiv? Obtén más información sobre arXivLabs.

Desarrollo

OBNC: Un Compilador Oberon

2025-05-17

OBNC es un compilador para el lenguaje de programación Oberon de Niklaus Wirth, que implementa la versión final del lenguaje de 2016. Traduce el código fuente escrito en Oberon al lenguaje de programación C de bajo nivel. El código traducido se compila y enlaza luego utilizando el compilador y el enlazador C del sistema operativo host. El comando de compilación `obnc` realiza todas estas tareas y lleva un registro de qué archivos necesitan ser compilados o recompilados. El compilador se publica bajo la Licencia Pública General GNU, mientras que las bibliotecas se publican bajo la Licencia Pública Mozilla. Con la licencia Mozilla, un proyecto Oberon compilado con OBNC puede publicarse bajo cualquier licencia. El paquete fuente `obnc` contiene el compilador con una herramienta de compilación, un generador de documentación y una pequeña biblioteca básica de siete módulos definidos en las Pautas de Oakwood para Desarrolladores de Compiladores Oberon-2. También contiene una biblioteca (no estándar) llamada `ext` que amplía la biblioteca básica con módulos para acceder a argumentos de línea de comandos y variables de entorno, imprimir en la corriente de error estándar, convertir números a cadenas y viceversa, y para personalizar el manejador de excepciones. La biblioteca `ext` se distribuía anteriormente como un paquete separado, pero ahora se ha incluido en el paquete principal por conveniencia. OBNC está implementado en C y debería compilar en cualquier sistema operativo compatible con POSIX. Para compilar OBNC, también necesita el recolector de basura Boehm-Demers-Weiser GC. Se incluyen más instrucciones en el archivo README en el directorio raíz del paquete. Para usuarios de MS Windows, también hay una versión precompilada de OBNC con todas las dependencias incluidas (GC, SDL, Gawk y TCC). Nota: Los archivos de salida generados por la versión 0.15 o anterior de OBNC no son compatibles con OBNC 0.17. Si ha utilizado una versión anterior, sus módulos deben recompilarse; simplemente elimine el directorio .obnc generado en los directorios de sus módulos antes de usar la nueva versión.

Desarrollo

Iluminación y mapeo normal en tiempo real en la N64: Una impresionante hazaña de ingeniería inversa

2025-05-17

Este artículo detalla una técnica impresionante para lograr iluminación en tiempo real y mapeo normal en la Nintendo 64. Aprovechando inteligentemente las texturas de paleta y el sombreado del lado de la CPU, el autor elude las limitaciones de hardware de la N64 para lograr visuales sorprendentemente impresionantes. La técnica implica comprimir la información de difusa y normales en una paleta compartida y actualizar la paleta en tiempo de ejecución a través de la CPU para simular efectos de iluminación. Si bien el método tiene algunas limitaciones, como la falta de soporte para luces puntuales y sombras, su naturaleza innovadora es notable, abriendo nuevas posibilidades para la renderización gráfica en la plataforma N64.

Desarrollo

Meta lanza Pyrefly: un verificador de tipos Python en Rust

2025-05-17
Meta lanza Pyrefly: un verificador de tipos Python en Rust

Meta ha lanzado una versión alfa de Pyrefly, un verificador de tipos Python de código abierto y extensión IDE construida en Rust. Pyrefly tiene como objetivo mejorar la consistencia de tipos en el código Python, ayudando a detectar errores antes de la ejecución. Admite la integración con IDE y el uso de la línea de comandos, priorizando el rendimiento y la inferencia de tipos, funcionando de manera eficaz incluso en código no anotado. Evolucionando a partir del Pyre de Meta, Pyrefly busca ser un verificador de tipos más potente y extensible, colaborando con la comunidad de Python para mejorar el sistema de tipos de Python.

Desarrollo

NixOS: ¿La distribución Linux perfecta? Mi año de dolor y lecciones aprendidas

2025-05-17
NixOS: ¿La distribución Linux perfecta? Mi año de dolor y lecciones aprendidas

Me sedujo la promesa de NixOS de una perfecta reproducibilidad del sistema mediante una única configuración de código. Después de un año, lo abandoné. La curva de aprendizaje es pronunciada, la documentación es deficiente, los mensajes de error son opacos y hay innumerables maneras de hacer lo mismo. Si bien crea un sistema estable, pasé incontables horas lidiando con problemas como la compatibilidad con el dock Thunderbolt y la configuración de entornos de desarrollo en varias pilas de tecnología. Cambié a Bazzite y Bluefin (basados en Fedora Silverblue), que ofrecen una experiencia más amigable a través de Flatpak, Homebrew y Distrobox, manteniendo los beneficios de la inmutabilidad. NixOS sobresale en entornos de servidor donde la reproducibilidad es primordial, pero para el usuario de escritorio promedio, el alto costo de aprendizaje y la complejidad no valen la pena. La conclusión principal: a veces, 'no quiero preocuparme' es un enfoque perfectamente válido para la administración del sistema.

Dos Consejos Prácticos para un Código Eficiente

2025-05-17

Este artículo presenta dos consejos prácticos para mejorar la eficiencia del código: mover las condiciones `if` hacia arriba y los bucles `for` hacia abajo. Mover las condiciones `if` a la función llamador reduce la ramificación, simplifica el flujo de control y mejora la legibilidad. Mover los bucles `for` a donde se procesan los datos en lote aprovecha las ventajas del procesamiento por lotes, mejora el rendimiento y potencialmente desbloquea la vectorización. Estos dos consejos se complementan entre sí, mejorando eficazmente la eficiencia del código, especialmente cuando se manejan grandes cantidades de datos.

Desarrollo

Más de 75 Problemas Abiertos en Geometría Computacional

2025-05-17

El Proyecto de Problemas Abiertos es un sitio web que recopila más de 75 problemas sin resolver en geometría computacional y campos relacionados. Iniciado en 2001 con 30 problemas iniciales, ahora es un recurso completo categorizado por temas como cascos convexos, teoría de grafos y diagramas de Voronoi. Si bien ya no acepta nuevas presentaciones, el sitio web anima a las actualizaciones de los problemas existentes, especialmente aquellos resueltos (total o parcialmente), fomentando la colaboración y el avance en el campo.

Desarrollo problemas abiertos

Construyendo un hipervisor RISC-V en el sistema operativo Starina: De Hello World al arranque de Linux

2025-05-17
Construyendo un hipervisor RISC-V en el sistema operativo Starina: De Hello World al arranque de Linux

Esta publicación documenta el proceso del autor al construir un hipervisor ligero basado en la extensión RISC-V H dentro del sistema operativo Starina. Utilizando la emulación de la extensión RISC-V H de QEMU, el autor implementó incrementalmente la entrada al modo invitado, el manejo de llamadas al sistema, un simple programa Hello World y, finalmente, el arranque del kernel de Linux. Se superaron desafíos como la gestión de tablas de páginas, la configuración del árbol de dispositivos, el soporte del temporizador y el MMIO, con pasos y soluciones detalladas. La publicación concluye con un arranque exitoso de Linux en el hipervisor Starina.

Desarrollo

Publisher: Servidor de Modelo Semántico de Código Abierto para Malloy

2025-05-17
Publisher: Servidor de Modelo Semántico de Código Abierto para Malloy

Publisher es un servidor de modelo semántico de código abierto basado en el lenguaje de datos Malloy. Permite crear modelos de datos semánticos enriquecidos, definiendo el significado, las relaciones y el contexto detrás de tus datos, y los expone a través de una interfaz de servidor. Aplicaciones, agentes de IA y usuarios pueden consultar datos de forma consistente y fiable, aprovechando la comprensión compartida definida en el modelo Malloy. Publisher resuelve el problema de las respuestas poco fiables cuando el significado de los datos no está claro. Utiliza consultas Malloy, compilándolas en SQL en segundo plano para ofrecer respuestas fiables sin redefinir el significado de los datos en cada herramienta. Se compone de tres componentes principales: un servidor, un SDK y una aplicación de referencia, compatible con varias bases de datos y aplicaciones de IA.

Desarrollo modelo semántico

Popcorn: Ejecutando Elixir en el navegador

2025-05-17

Popcorn es una biblioteca novedosa que permite la ejecución de código Elixir en navegadores web. Aprovechando el tiempo de ejecución AtomVM, ejecuta código Elixir compilado del lado del cliente, ofreciendo APIs para la interacción Elixir-JavaScript, serialización y comunicación, a la vez que garantiza la capacidad de respuesta del navegador. Actualmente en desarrollo, con una API inestable, presenta tres ejemplos en vivo: un REPL Elixir simple, tutoriales interactivos y una implementación del Juego de la Vida. Los desarrolladores pueden comenzar a usar Popcorn añadiéndolo como dependencia en su `mix.exs` y configurando los puntos de entrada JS y Elixir WASM. Conecta JS y Elixir mediante el paso de mensajes y permite la ejecución directa de JS desde Elixir. El lado Elixir usa el módulo `Popcorn.Wasm`, mientras que el lado JS usa la clase `Popcorn`.

Desarrollo

MCP: Adopción rápida, dolores de crecimiento y una llamada a la acción

2025-05-17
MCP: Adopción rápida, dolores de crecimiento y una llamada a la acción

Este artículo es una respuesta a una crítica del protocolo MCP, un estándar para llamar herramientas desde LLMs. El autor argumenta que la crítica se centra demasiado en los mecanismos de transporte (por ejemplo, WebSockets) mientras pasa por alto el valor central del MCP: la autenticación OAuth 2.0 y la capacidad de los LLMs para interactuar con el mundo real. Si bien reconoce problemas como la seguridad de las herramientas y la compatibilidad de los servidores multiinquilinos, el autor enfatiza la rápida adopción del MCP y los esfuerzos de la comunidad para abordar estos desafíos. El autor concluye con un llamado a la acción para que los desarrolladores participen en la configuración del futuro seguro y confiable del MCP.

Desarrollo

Un Catálogo de Nuevos Sistemas Operativos: Reinventando el Futuro de la Computación

2025-05-17
Un Catálogo de Nuevos Sistemas Operativos: Reinventando el Futuro de la Computación

Después del auge de los LLM, ha surgido una ola de creación de nuevos sistemas operativos. Este artículo cataloga varios de estos proyectos, incluyendo la pila de computación personal UXN/Varvara, el sistema operativo Nette.io orientado a la investigación web y sistemas basados en Lisp como Interim y ChrysaLisp. Estos proyectos demuestran enfoques innovadores para el diseño de SO, como la reinvención de la interfaz de escritorio de DesktopNeo y el diseño de SO basado en intenciones de MercuryOS. Estos esfuerzos representan exploraciones audaces del futuro de la computación, reavivando la pasión por la innovación en SO.

Desarrollo

Fahmatrix: Una alternativa ligera a Pandas para Java

2025-05-17
Fahmatrix: Una alternativa ligera a Pandas para Java

Fahmatrix es una biblioteca Java moderna y ligera para trabajar con datos tabulares, inspirada en Pandas de Python y diseñada para simplificar la comprensión de datos en la JVM. Ofrece una API intuitiva para la lectura y vista previa de CSV, el filtrado de filas y la selección de columnas, y características futuras como agregaciones, agrupación y clasificación. Fahmatrix actualmente no tiene dependencias externas y se puede descargar como un archivo JAR desde GitHub o usar a través de Maven/Gradle (se agregará en futuras versiones). Las características principales incluyen cargar archivos CSV en DataFrames, imprimir datos, funciones head()/tail(), varias funciones de agregación, filtrado de filas y selección de columnas, groupBy y tablas dinámicas, exportación de datos e inferencia y conversión de tipos. Fahmatrix permite a los desarrolladores Java trabajar con datos tabulares de manera eficiente sin salir de la JVM.

Desarrollo

Home Assistant: La experiencia de un desarrollador de kernel con la automatización del hogar

2025-05-17

Un desarrollador de kernel comparte su experiencia de un año utilizando Home Assistant, un sistema de automatización del hogar de código abierto. El artículo analiza la salud del proyecto Home Assistant, equilibrando su modelo de negocio con su comunidad de código abierto, destacando su base activa de desarrolladores y la transición a la Open Home Foundation. La instalación, aunque oficialmente se recomienda un sistema operativo dedicado, resulta relativamente sencilla en sistemas Linux estándar, aunque requiere cierto conocimiento técnico. Home Assistant conecta varios dispositivos domésticos a través de integraciones, con calidad variable, pero ofreciendo una potente funcionalidad en general. Se abordan las cuestiones de seguridad, reconociendo los riesgos potenciales, pero observando la política de seguridad del proyecto y los mecanismos de auditoría que mitigan algunas vulnerabilidades. En definitiva, Home Assistant capacita a los usuarios con el control de su red doméstica y dispositivos, presentando una alternativa convincente a los servicios en la nube.

rapidhash: Función hash ultrarrápida, de alta calidad e independiente de plataforma

2025-05-17
rapidhash: Función hash ultrarrápida, de alta calidad e independiente de plataforma

rapidhash, el sucesor oficial de wyhash, es una función hash extremadamente rápida, de alta calidad e independiente de plataforma. Supera los 70 GB/s en CPUs Apple M4 y pasa todas las pruebas de SMHasher y SMHasher3. Optimizada para AMD64 y AArch64, es compatible con gcc, clang, icx y MSVC, sin depender de conjuntos de instrucciones específicos de la máquina. La probabilidad de colisión es excepcionalmente baja, acercándose al ideal teórico. Esto convierte a rapidhash en una opción superior para aplicaciones críticas de rendimiento.

Desarrollo

xtool: Sustituto multiplataforma de Xcode

2025-05-17
xtool: Sustituto multiplataforma de Xcode

xtool es una herramienta multiplataforma (Linux/WSL/macOS) que replica la funcionalidad principal de Xcode usando estándares abiertos. Crea e implementa aplicaciones iOS con SwiftPM sin necesidad de Xcode. Las características principales incluyen la creación de paquetes SwiftPM en aplicaciones iOS, la firma e instalación de aplicaciones y la interacción programática con los Servicios para Desarrolladores de Apple. También ofrece una biblioteca XKit para interactuar con los servicios de Apple y los dispositivos iOS en tus propias aplicaciones.

Desarrollo

El nuevo Panel de Comandos de Microsoft: Una versión mejorada de PowerToys Run

2025-05-17
El nuevo Panel de Comandos de Microsoft: Una versión mejorada de PowerToys Run

Microsoft ha lanzado silenciosamente el Command Palette, una aplicación de inicio renovada para Windows, que sucede a su PowerToys Run. Esta herramienta actualizada ofrece acceso rápido a comandos, aplicaciones y herramientas de desarrollo, incluyendo funcionalidad de búsqueda para aplicaciones, archivos y carpetas; cálculos; comandos del sistema; y capacidades de búsqueda web y en sitios web. Importantemente, el Command Palette cuenta con extensibilidad, permitiendo a los usuarios agregar comandos y funciones personalizadas, lo que lo convierte en una herramienta poderosa para desarrolladores y usuarios avanzados. La funcionalidad de Window Walker también está integrada para facilitar el cambio entre ventanas.

Desarrollo

Home Assistant: El camino de un desarrollador de kernel hacia la libertad del hogar inteligente

2025-05-17

Un desarrollador de kernel relata su experiencia utilizando Home Assistant, un sistema de automatización del hogar de código abierto, para gestionar su hogar inteligente. El artículo detalla cómo Home Assistant resolvió problemas del mundo real: reemplazar un sistema de monitorización de paneles solares defectuoso tras la quiebra de SunPower, crear sensores virtuales para calcular el consumo de energía del hogar utilizando 'Helpers', controlar localmente las bombas de calor Mitsubishi sin depender de la nube y utilizar un monitor de energía Refoss para rastrear con precisión el uso de energía de los electrodomésticos y diagnosticar problemas. Home Assistant ofrece un control completo, pero requiere una curva de aprendizaje técnica.

Desarrollo

Rustls: Mejoras de rendimiento significativas en la implementación TLS con seguridad de memoria

2025-05-16
Rustls: Mejoras de rendimiento significativas en la implementación TLS con seguridad de memoria

Rustls, una implementación TLS con seguridad de memoria que prioriza el rendimiento, ha lanzado mejoras significativas de rendimiento. Al optimizar los mecanismos de reanudación de sesión —específicamente, reemplazando los mutex para reducir la contención en los handshakes de conexión de servidor concurrentes y disminuyendo el número de tickets de reanudación sin estado enviados de forma predeterminada— Rustls 0.23.17 demuestra un rendimiento significativamente mejorado en servidores multinúcleo, logrando una escalabilidad casi lineal. La latencia del servidor para el manejo principal del handshake TLS es aproximadamente 2 veces menor que OpenSSL en los benchmarks. Esto convierte a Rustls en una solución TLS altamente competitiva, aportando conexiones más seguras y eficientes a Internet.

Desarrollo

Construyendo un agente de edición de código en 94 líneas de Ruby

2025-05-16

Este artículo desafía la dificultad percibida de construir un agente de edición de código, mostrando uno totalmente funcional construido en solo 94 líneas de Ruby usando la gema RubyLLM. El agente aprovecha un Modelo de Lenguaje Grande (LLM) y tres herramientas: leer archivo, listar archivos y editar archivo, para realizar tareas de edición de código. El autor detalla la implementación de cada herramienta y demuestra las capacidades del agente construyendo un juego de Buscaminas ASCII. Se agrega una herramienta de ejecución de comandos shell para mejorar la funcionalidad, lo que resulta en un agente de edición de código que se autoprueba.

Desarrollo

Solidis: Un cliente RESP Redis de alto rendimiento, diseñado con principios SOLID

2025-05-16
Solidis: Un cliente RESP Redis de alto rendimiento, diseñado con principios SOLID

Solidis es un cliente RESP moderno construido con principios SOLID, cero dependencias y rendimiento de nivel empresarial. Admite los protocolos RESP2 y RESP3 y está optimizado para aplicaciones JavaScript/TypeScript modernas. Solidis ofrece dos implementaciones de cliente: un cliente básico para un tamaño de paquete mínimo y un cliente con funciones con comandos precargados. También admite funciones avanzadas como transacciones, canalizaciones, pub/sub, reconexión automática, seguridad de tipo robusta y extensibilidad.

Desarrollo

Google Closure Library Resucitado: Salvando la Estabilidad de ClojureScript

2025-05-16

La estabilidad de Google Closure Library (GCL) comenzó a declinar alrededor de 2019, y Google finalmente dejó de mantenerla en agosto pasado. Un equipo ha bifurcado GCL para mantener el ecosistema de ClojureScript, revirtiendo varios cambios que rompían la compatibilidad y alineándolo con la última versión de Google Closure Compiler. Esto restaura la funcionalidad de muchas bibliotecas antiguas de ClojureScript y proporciona una base sólida para ClojureScript en varios contextos de JavaScript más allá de los navegadores. Ofrece una solución potente e independiente del framework para tareas como la manipulación del DOM, la internacionalización y la animación, sin inflar el artefacto JavaScript final.

Desarrollo
1 2 85 86 87 89 91 92 93 214 215