Category: Desarrollo

WASM: ¿El asesino de contenedores?

2025-02-12
WASM: ¿El asesino de contenedores?

WebAssembly (WASM), con su capacidad de 'escribir una vez, ejecutar en cualquier lugar', está listo para reemplazar la tecnología de contenedores. El artículo argumenta que si bien los contenedores resolvieron muchos problemas en el desarrollo de software, se han vuelto engorrosos debido a herramientas complejas y acoplamiento estrecho. WASM ofrece una solución más ligera y rápida, especialmente cuando se combina con arquitecturas serverless como Cloudflare Workers. Si bien WASM actualmente carece de algunas interfaces de sistema, se está desarrollando rápidamente y está posicionado para convertirse en la solución principal. El artículo anima a los desarrolladores a aprender lenguajes compilados como Go o Rust para prepararse para la era de WASM.

Desarrollo Contenedores

Hoja de trucos de Jujutsu (jj): ¿Una alternativa a Git?

2025-02-12

Esta publicación presenta una hoja de trucos y una referencia para Jujutsu (jj), un sistema de control de versiones compatible con repositorios git. El autor considera que jj es más intuitivo que git y proporciona recursos de aprendizaje, incluyendo una referencia que describe el estado del repositorio y una hoja de trucos visual para las operaciones de edición comunes. Para principiantes, se recomienda leer primero un tutorial para evitar nociones preconcebidas de git. Ambos recursos son concisos e imprimibles para facilitar el aprendizaje.

Desarrollo

Ohm: Un Kit de Herramientas de Análisis Basado en PEG

2025-02-11

Ohm es un potente kit de herramientas de análisis que consta de una biblioteca y un lenguaje específico de dominio (DSL). Permite analizar formatos de archivo personalizados o crear rápidamente analizadores, intérpretes y compiladores para lenguajes de programación. El lenguaje Ohm se basa en Gramáticas de Expresiones de Análisis (PEG), una forma formal de describir la sintaxis similar a las expresiones regulares y las gramáticas libres de contexto. La biblioteca Ohm proporciona una interfaz JavaScript para crear analizadores, intérpretes y más a partir de las gramáticas que escribas.

Desarrollo analizador

Compilando Perl a WebAssembly: Una Tarea Hercúlea

2025-02-11
Compilando Perl a WebAssembly: Una Tarea Hercúlea

Al construir una startup, el autor se enfrentó a un desafío: la extracción de metadatos de archivos del lado del cliente. ExifTool, aunque potente, resultó difícil de compilar estáticamente e implementar en diferentes sistemas operativos debido a su naturaleza en Perl. Se intentaron varios enfoques, incluida la compilación estática de Perl, llevando finalmente a WebAssembly. El proceso estuvo lleno de desafíos, luchando contra el sistema de compilación de Perl, Emscripten y WASI, incluso requiriendo modificaciones en el código fuente de Perl. El autor logró construir con éxito una versión autocontenida de Perl en WebAssembly y ejecutar ExifTool, pero el proceso expuso una insuficiente compatibilidad con el manejo de excepciones en los entornos de ejecución de WebAssembly.

Desarrollo

Craftax: Un Benchmark de RL ultrarrápido basado en JAX para RL Abierto

2025-02-11
Craftax: Un Benchmark de RL ultrarrápido basado en JAX para RL Abierto

Craftax es un entorno de RL escrito completamente en JAX, que reimplementa y extiende significativamente la mecánica de juego de Crafter, inspirándose en juegos roguelike como NetHack. Compatible con la interfaz gymnax, se integra fácilmente con frameworks JAX como PureJaxRL y JaxUED. Aceptado como artículo destacado en ICML 2024, Craftax ofrece soporte para CPU y GPU/TPU, junto con tutoriales y líneas de base. Se proporcionan instrucciones de instalación y ejemplos de uso.

Desarrollo Entorno de Juego

Explosión de artículos sobre la evaluación de LLMs para la generación de código

2025-02-11
Explosión de artículos sobre la evaluación de LLMs para la generación de código

Una serie de preprints recientes en arXiv se centran en la evaluación de los modelos de lenguaje grandes (LLMs) para la generación de código. Estos artículos cubren varios aspectos, incluyendo LLMs resolviendo problemas reales de GitHub, generación de código autoinvocatoria, uso de APIs, análisis de estabilidad y evaluaciones a lo largo del ciclo de vida del desarrollo de software. Los investigadores han desarrollado varios benchmarks, como SWE-bench, HumanEval Pro, SEAL y DevEval, junto con métricas correspondientes, con el objetivo de una evaluación más completa de las capacidades de generación de código de los LLMs e impulsando el progreso en el campo.

Desarrollo

arXivLabs: Proyectos experimentales con colaboradores de la comunidad

2025-02-11
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. Los individuos y las organizaciones que trabajan con arXivLabs han adoptado nuestros valores de apertura, comunidad, excelencia y privacidad de datos del usuario. arXiv está comprometido con estos valores y solo trabaja con socios que los respetan. ¿Tiene una idea para un proyecto que agregará valor a la comunidad de arXiv? Obtenga más información sobre arXivLabs.

Desarrollo

arXivLabs: Proyectos experimentales con colaboradores de la comunidad

2025-02-11
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 agregará valor a la comunidad de arXiv? Obtenga más información sobre arXivLabs.

Desarrollo

Superando las Limitaciones del Tiempo de Ejecución de WebAssembly: Asignación Asíncrona de ZeroPerl

2025-02-11
Superando las Limitaciones del Tiempo de Ejecución de WebAssembly: Asignación Asíncrona de ZeroPerl

Frustrado por la falta de soporte exnref en la mayoría de los tiempos de ejecución de WebAssembly, lo que hacía que ZeroPerl fuera inutilizable, el autor decidió solucionar el problema en lugar de quejarse. Aprovechando la función Asyncify de Binaryen, se implementó una alternativa a setjmp desde cero, evitando los problemas de compatibilidad de libsetjmp. Después de eliminar la biblioteca oficial, escribir código de ensamblaje y optimizar con wasm-opt, ZeroPerl ahora se ejecuta correctamente en Wasmer, Wasmtime y otros tiempos de ejecución de WebAssembly. Este avance proporciona un módulo Perl WebAssembly completamente aislado y autónomo.

Desarrollo

Legion Health: Atención Psiquiátrica Impulsada por IA – ¡Estamos Contratando!

2025-02-11
Legion Health: Atención Psiquiátrica Impulsada por IA – ¡Estamos Contratando!

Legion Health, respaldada por YC, está contratando ingenieros de back-end de alto nivel para construir un sistema de atención médica mental de próxima generación impulsado por IA. Este sistema utiliza IA para optimizar las operaciones, como la programación, la facturación y la interacción con los pacientes, no el diagnóstico. Los ingenieros diseñarán e implementarán un back-end altamente escalable, impulsado por eventos, utilizando Node.js, Supabase y AWS, manejando datos en tiempo real y asegurando el cumplimiento y la seguridad de HIPAA. Esta es una oportunidad desafiante e impactante para dar forma al futuro de la IA en la atención médica.

La guerra de más de 20 años contra las conexiones inseguras: Una retrospectiva de libcurl

2025-02-11
La guerra de más de 20 años contra las conexiones inseguras: Una retrospectiva de libcurl

Desde que curl comenzó a soportar SSL en 1998, la verificación de certificados predeterminada ha sido una piedra angular de la seguridad de la red. Sin embargo, los desarrolladores continúan deshabilitando esta verificación crucial, lo que lleva a vulnerabilidades generalizadas. Este artículo relata la evolución de libcurl, explora los peligros de deshabilitar la verificación y propone soluciones como mejoras en la API, documentación mejorada e informes de errores proactivos. La lucha por conexiones seguras es una batalla a largo plazo.

Sentry: Redefiniendo el Software Empresarial: El Enfoque Fortune 500.000

2025-02-11

Sentry, con más de 50.000 clientes de pago, desafía los modelos tradicionales de software empresarial. El autor argumenta que centrarse en construir un producto que todos los clientes quieran, a un precio razonable, y dirigirse al público de la "Fortune 500.000" es una estrategia superior al modelo heredado de centrarse únicamente en las grandes empresas. Este enfoque de crecimiento impulsado por el producto prioriza la creación de comunidad, la creación de marca y la experiencia del cliente con baja fricción en lugar de equipos de ventas masivos. El autor afirma que este modelo no solo es viable, sino también eficiente y medible, ofreciendo una nueva vía para las empresas de software empresarial.

(cra.mr)

Canonical presenta LTS de Kubernetes con soporte de 12 años

2025-02-11
Canonical presenta LTS de Kubernetes con soporte de 12 años

Canonical anunció un compromiso de mantenimiento y soporte de seguridad de 12 años para su versión LTS de Kubernetes 1.32. Este soporte a largo plazo cubre bare metal, nubes públicas, OpenStack, Canonical MicroCloud y VMware. El lanzamiento ofrece facilidad de instalación, operación y actualizaciones, integrando componentes de código abierto de primera línea para red, DNS, gateway, servidor de métricas, almacenamiento local, balanceador de carga y servicios de entrada. Las empresas pueden optar entre actualizaciones frecuentes (cada cuatro meses) o la versión LTS de 12 años para estabilidad. También ofrece conformidad con FedRAMP e integra con Ubuntu Pro para seguridad integral del stack de código abierto.

Desarrollo

Por qué la tecnología 'aburrida' es realmente la mejor

2025-02-11
Por qué la tecnología 'aburrida' es realmente la mejor

Este artículo argumenta que la tecnología 'aburrida', ejemplificada por NetBSD, es superior en la administración de sistemas y la arquitectura. 'Aburrido' implica previsibilidad, reduciendo fallos inesperados y dolores de cabeza en el mantenimiento. La tecnología madura cuenta con una documentación exhaustiva, una comunidad activa y un historial probado, no solo la edad. Si bien la ubicuidad no es la medida de 'aburrimiento', las tecnologías maduras suelen ser más fáciles de entender y mantener, reduciendo así los costes y mejorando la fiabilidad. El autor concluye que el 'aburrimiento' de NetBSD es precisamente su mayor fortaleza.

Desarrollo

Quarto: Programación Literaria Más Allá de R Markdown

2025-02-11

Quarto, basado en Pandoc, eleva la programación literaria más allá de R Markdown. Integra perfectamente código (R, Python, Julia, etc.) con texto legible utilizando una sintaxis Markdown simple. Crea documentos enriquecidos con bloques de código ejecutables, figuras y tablas, fácilmente renderizados en varios formatos (HTML, PDF, etc.). Personaliza tu salida con funciones como el plegado de código y opciones de ejecución para un producto final pulido. Quarto ofrece un enfoque potente pero fácil de usar para crear documentos reproducibles y compartibles.

Desarrollo

Systemd arrancará directamente desde imágenes de disco descargadas vía HTTP

2025-02-11

El desarrollador principal de Systemd, Lennart Poettering, está añadiendo la capacidad de arrancar directamente desde una imagen de disco descargada vía HTTP dentro del disco RAM inicial (initrd) durante el proceso de arranque de Linux. Basándose en adiciones recientes a Systemd, esto permite descargar la imagen de disco raíz vía HTTP, adjuntarla a un dispositivo loopback y montarla. El objetivo es permitir que la UEFI apunte a una URL para cargar la Imagen de Kernel Unificada (UKI) e iniciar el sistema de archivos raíz. El caso de uso inmediato es simplificar las pruebas de dispositivos físicos, iniciando fácilmente nuevos sistemas de archivos raíz vía HTTP en cada arranque. La solicitud de extracción en curso incluye el código inicial para esto; las extensiones futuras pueden incluir soporte para NVMe-over-TCP.

Desarrollo arranque

Extend: Desata el Potencial de tu Teclado

2025-02-11

Extend es una poderosa mejora del diseño de teclado que mapea las teclas comunes de navegación y edición a la fila de inicio, aumentando la productividad. Mediante combinaciones de teclas inteligentes, puedes realizar fácilmente la edición de texto, la gestión de ventanas, las operaciones del navegador y mucho más, minimizando el uso del ratón. El artículo detalla el uso de Extend, los accesos directos y la configuración en varias plataformas, compartiendo técnicas avanzadas como el uso de Tap-Extend para acciones de una sola tecla. El autor compara Extend con la magia, transformando tu experiencia informática.

Desarrollo diseño de teclado

Una Inmersión Profunda en las Optimizaciones de Compilador de Asignación Única Estática (SSA)

2025-02-11
Una Inmersión Profunda en las Optimizaciones de Compilador de Asignación Única Estática (SSA)

Este artículo narra la evolución de décadas de las técnicas de optimización de compilador de Asignación Única Estática (SSA). Desde los artículos iniciales sobre movimiento de código y numeración de valor global, pasando por el trabajo seminal de Cytron sobre la minimización de instrucciones phi, hasta el enfoque de generación de una sola pasada de Brandis y Mössenböck y el Sea of Nodes IR de Click y Paleczny, el artículo rastrea varios artículos clave y discute sus fortalezas y debilidades. También aborda el trabajo de Appel sobre la relación entre la programación funcional y SSA, la eliminación iterativa de nodos phi de Aycock y Horspool y enfoques más recientes basados en interpretación abstracta. El artículo concluye con una lista de artículos y recursos adicionales, proporcionando una perspectiva más completa para los lectores interesados en aprender más sobre SSA.

Sugerencias del asignador Btrfs: Optimización del rendimiento del almacenamiento mixto

2025-02-11
Sugerencias del asignador Btrfs: Optimización del rendimiento del almacenamiento mixto

Btrfs ahora cuenta con sugerencias del asignador, que permiten a los usuarios especificar dispositivos para la asignación de metadatos y datos, optimizando el rendimiento en configuraciones de almacenamiento mixto (por ejemplo, SSD y HDD). Al priorizar SSD más rápidos para metadatos y HDD más lentos para datos, los usuarios pueden mejorar la capacidad de respuesta del sistema de archivos y la eficiencia del almacenamiento. Esto requiere un kernel parcheado y configuración de línea de comandos. Una configuración incorrecta puede provocar errores de falta de espacio; se recomienda un monitoreo cuidadoso.

Basecamp Abraza la Imprecisión en la Gestión de Proyectos

2025-02-11
Basecamp Abraza la Imprecisión en la Gestión de Proyectos

Basecamp cuestiona la obsesión por los números precisos en la gestión de proyectos, abogando por abrazar la ambigüedad y la subjetividad. El artículo critica la búsqueda de cifras exactas que ignoran las realidades del proyecto, argumentando que "63% completado" no tiene sentido, mientras que "esperar la finalización el próximo martes" es más realista. Las nuevas características de Basecamp, como Hill Charts y Move The Needle, permiten a los usuarios representar visualmente el progreso del proyecto utilizando marcadores gráficos intuitivos, enfatizando el juicio subjetivo en lugar de los cálculos mecánicos. El artículo afirma que, en el trabajo creativo, la subjetividad y la productividad no son adversarias, sino aliadas. Basecamp continuará refinando su enfoque para reflejar la realidad con mayor precisión.

Desarrollo subjetividad

Huevos de Pascua y la Alegría del Desarrollo de Software

2025-02-11
Huevos de Pascua y la Alegría del Desarrollo de Software

Un equipo de desarrollo inyectó diversión en la creación de su nuevo producto, Tapestry, incorporando varios huevos de Pascua. Comenzando con un spinner fidget giratorio en la insignia beta y evolucionando hacia un icono de aplicación dinámico y personalizado “disco” basado en la retroalimentación del usuario, el equipo involucró a los usuarios con sorpresas divertidas. Estas no fueron meras adiciones; se integraron hábilmente en los procesos de prueba y corrección de errores. El artículo muestra el humor y la creatividad del equipo, ilustrando cómo infundir alegría en cada etapa del desarrollo de software.

Desarrollo huevos de pascua

Resolviendo Sudoku en tmux: Un Proyecto de Compilador Python Loco

2025-02-11
Resolviendo Sudoku en tmux: Un Proyecto de Compilador Python Loco

Tras su proyecto anterior de compilar Python para que se ejecute en tmux, el autor ha creado ahora un solucionador de Sudoku completamente dentro de tmux. Sin usar matrices o cadenas, aprovecha inteligentemente las variables y los enlaces de teclado de tmux, mapeando cada celda de Sudoku a una opción de tmux. El solucionador fuerza bruta todas las posibilidades, lo que resulta en una eficiencia extremadamente baja. Sin embargo, el proyecto muestra las sorprendentes capacidades de tmux y el ingenio del autor, un testimonio del espíritu hacker.

Desarrollo

Dagger Cloud v3: Reescribiendo el frontend en Go y WebAssembly para un rendimiento superior

2025-02-11
Dagger Cloud v3: Reescribiendo el frontend en Go y WebAssembly para un rendimiento superior

El equipo de Dagger reescribió su interfaz web Dagger Cloud de React a una versión v3 usando Go y WebAssembly. Esto se hizo para unificar dos bases de código de la IU (terminal y web), aumentando la velocidad de desarrollo y el rendimiento. A pesar de la naturaleza no convencional de la combinación de Go y WebAssembly, utilizando el framework Go-app y optimizaciones significativas de memoria, lograron construir una interfaz de usuario más rápida, más fluida y consistente, que refleja su IU de terminal. El proyecto destaca los desafíos y oportunidades de usar Go y WebAssembly, como los límites de memoria y la falta de bibliotecas de componentes disponibles. En última instancia, Dagger Cloud v3 ofreció mejoras de rendimiento y mayor eficiencia para el equipo.

Desarrollo Desarrollo frontend

nocc: Un compilador C++ distribuido para compilaciones ultrarrápidas

2025-02-11
nocc: Un compilador C++ distribuido para compilaciones ultrarrápidas

nocc es un compilador C++ distribuido diseñado para acelerar drásticamente la compilación, especialmente para proyectos grandes en pipelines de CI/CD y entornos de desarrollo colaborativos. Al distribuir las tareas de compilación a máquinas remotas y aprovechar cachés remotas compartidas, nocc evita compilaciones redundantes. Desarrollado en VK.com para acelerar la compilación de KPHP, obtuvo una aceleración de 2 a 9 veces con respecto a su solución anterior. Fácilmente integrable en sistemas de compilación existentes, nocc también admite encabezados precompilados para obtener mayores ganancias de rendimiento.

Nuevos scriptlets personalizados de Brave Browser: toma el control de tu experiencia de navegación

2025-02-11
Nuevos scriptlets personalizados de Brave Browser: toma el control de tu experiencia de navegación

Brave Browser versión 1.75 presenta 'scriptlets personalizados' para usuarios de escritorio, permitiendo a los usuarios avanzados inyectar su propio JavaScript en sitios web para una personalización profunda. Similar a Tampermonkey y Greasemonkey, esta función permite a los usuarios crear scripts que modifican la funcionalidad del sitio web. Inicialmente desarrollado para la depuración del bloqueador de anuncios de Brave, su valor llevó a su lanzamiento. Los scriptlets personalizados mejoran la privacidad, la seguridad y la usabilidad al bloquear rastreadores, personalizar la apariencia y mejorar la accesibilidad. Sin embargo, se recomienda precaución, ya que los scripts no confiables representan riesgos. La función se encuentra en `brave://settings/shields/filters` y requiere activar el 'Modo desarrollador'.

Desarrollo

Resurrección de Xvesa: Un servidor X diminuto vuelve a la vida

2025-02-11
Resurrección de Xvesa: Un servidor X diminuto vuelve a la vida

Xvesa, un servidor X ligero, ha resucitado de las profundidades del historial de git. El equipo decidió mantenerlo con Xfbdev, priorizando la corrección de errores, las mejoras de seguridad y nuevas funciones ocasionales, ya que los servidores TinyX son mucho más pequeños que Xorg. Se eligió la versión 1.2.0 en lugar de la 1.3.0 debido a problemas de entrada en esta última. El diseño enfatiza el minimalismo y la funcionalidad completa, omitiendo xkb, xinput, xinerama y gl. La escucha TCP está desactivada por defecto y el framebuffer shadow está activado. La licencia es GPLv3.

Desarrollo

Argumentos de palabra clave independientes del orden en C++26 usando reflexión

2025-02-11

Esta publicación de blog explora la implementación de argumentos de palabra clave independientes del orden para C++ utilizando las características de reflexión propuestas para C++26. El autor descubrió esta técnica mientras experimentaba con la reflexión y la comparte como una demostración convincente del poder de estas características. La publicación contrasta este enfoque con soluciones anteriores menos elegantes, incluyendo inicializadores designados y objetos auxiliares. El núcleo de la publicación detalla cómo utilizar la reflexión para lograr argumentos de palabra clave independientes del orden y opcionales, proporcionando ejemplos de código completos y explicaciones. Esto incluye el manejo de capturas de expresiones lambda y la extensión de la biblioteca fmt para capacidades de formateo mejoradas.

Animaciones de desplazamiento suaves: despídete del desplazamiento entrecortado

2025-02-10
Animaciones de desplazamiento suaves: despídete del desplazamiento entrecortado

¿Cansado de animaciones de desplazamiento entrecortadas? ¡La nueva especificación de Animaciones controladas por desplazamiento ya está aquí! Se integra con las APIs Web Animations y CSS Animations, permitiendo animaciones de desplazamiento suaves que se ejecutan fuera del hilo principal. Crea efectos impresionantes como fondos de paralaje, indicadores de progreso de lectura y revelación de imágenes con un código mínimo. El artículo incluye numerosas demostraciones y un curso en vídeo para ayudarte a empezar a crear experiencias increíbles controladas por desplazamiento.

Arquitecturas de aplicaciones en tiempo real: Una comparación de Poke/Pull, Push State, Push Ops y Event Sourcing

2025-02-10

Este artículo explora cuatro patrones principales para construir aplicaciones en tiempo real: Poke/Pull, Push State, Push Ops y Event Sourcing. Poke/Pull es fácil de integrar, pero sufre problemas de dispersión; Push State envía el estado directamente, pero lucha con actualizaciones de estado a gran escala; Push Ops envía operaciones en lugar del estado completo, lo que es más eficiente; Event Sourcing envía eventos, requiriendo lógica del lado del cliente. El artículo también compara diferentes métodos de transporte (WebSockets, SSE, etc.) y sus desafíos en sistemas horizontalmente escalados, destacando el papel de Pub/Sub.

1 2 163 164 165 167 169 170 171 214 215