Category: Desarrollo

Doble de cuerpo: Un truco de productividad para el enfoque y la finalización de tareas

2025-03-29

El doble de cuerpo es una técnica de productividad que está ganando popularidad, especialmente entre las personas con TDAH. Implica trabajar junto a otra persona, física o virtualmente, para mejorar el enfoque y la finalización de tareas. La presencia del 'doble de cuerpo' actúa como un motivador externo, reduciendo las distracciones y fomentando un sentimiento de responsabilidad. Si bien los estudios a largo plazo son limitados, la evidencia anecdótica y las opiniones de expertos sugieren su eficacia como un enfoque complementario a la medicación y útil para personas con otras afecciones como el autismo o la ansiedad.

Desarrollo

RTABench: Un nuevo benchmark para aplicaciones de análisis en tiempo real

2025-03-29
RTABench: Un nuevo benchmark para aplicaciones de análisis en tiempo real

Los benchmarks de análisis tradicionales a menudo pasan por alto las necesidades de las aplicaciones en tiempo real, como generar información rápida y específica para usuarios, dispositivos o transacciones específicos. RTABench aborda esta brecha proporcionando un benchmark que refleja con precisión el análisis en tiempo real dentro de las aplicaciones, utilizando un esquema normalizado, tamaños de conjuntos de datos realistas y consultas que coinciden con los patrones de uso del mundo real. Incluye 33 consultas que cubren consultas de eventos sin procesar, filtrado selectivo, uniones de varias tablas y consultas preagregadas para evaluar el rendimiento de la base de datos en esquemas normalizados, filtrado selectivo y vistas materializadas incrementales. RTABench admite varias bases de datos y agradece las contribuciones de la comunidad para ampliar su soporte de bases de datos y optimizaciones.

vramfs: Convierte tu VRAM de GPU en un sistema de archivos

2025-03-29
vramfs: Convierte tu VRAM de GPU en un sistema de archivos

vramfs es una utilidad que utiliza la biblioteca FUSE para crear un sistema de archivos en la VRAM de tu GPU. Similar a un ramdisk, pero usando memoria de video, no es para uso intensivo, pero funciona sorprendentemente bien en GPUs de consumo con 4 GB o más de VRAM. El desarrollador logró velocidades de lectura de ~2,4 GB/s y de escritura de 2,0 GB/s, aproximadamente 1/3 de un ramdisk. Utiliza OpenCL para la gestión de memoria y FUSE para un desarrollo simplificado. Las mejoras futuras apuntan a alcanzar los límites de ancho de banda PCI-e.

Desarrollo Sistema de archivos

Aprende gramática japonesa con TypeScript: Presentamos Typed Japanese

2025-03-29
Aprende gramática japonesa con TypeScript: Presentamos Typed Japanese

Typed Japanese es una biblioteca de TypeScript de nivel de tipo que permite expresar oraciones completas en japonés utilizando el sistema de tipos. Crea un lenguaje específico de dominio (DSL) basado en reglas gramaticales japonesas, permitiendo escribir y verificar lenguaje natural gramaticalmente correcto usando el compilador de TypeScript. El proyecto también explora un formato intermedio para IA en el aprendizaje de idiomas, potencialmente reemplazando JSON con una representación verificada por tipo para mayor precisión. Admite varias conjugaciones de verbos y adjetivos, construcción de frases y oraciones, con el objetivo de crear un sistema de tipos para aprender y verificar la gramática japonesa. Si bien aún se encuentra en etapas iniciales y depende de reglas generadas por LLM, ofrece un enfoque único para el aprendizaje de idiomas y la verificación gramatical.

Convertir LaTeX a HTML accesible: Un estudio de caso

2025-03-29
Convertir LaTeX a HTML accesible: Un estudio de caso

LaTeX, si bien es excelente para producir documentos de alta calidad, presenta problemas de accesibilidad debido a su salida en PDF. Este artículo explora la conversión de LaTeX a HTML para mejorar la accesibilidad. Se comparan alternativas a LaTeX (Pressbooks, PreTeXt, Markdown) y se centran en las herramientas de conversión LaTeXML y BookML. Un estudio de caso que detalla la conversión de un libro de texto abierto de lógica destaca los desafíos y trucos, como el manejo de fórmulas matemáticas, texto alternativo para imágenes y compatibilidad con lectores de pantalla. La experiencia del autor demuestra el proceso de creación de un libro de texto en línea más accesible, equilibrando las necesidades de varias tecnologías de asistencia.

Desarrollo

Microsoft parchea la forma de omitir el inicio de sesión de la cuenta de Microsoft en Windows 11

2025-03-29
Microsoft parchea la forma de omitir el inicio de sesión de la cuenta de Microsoft en Windows 11

La última versión preliminar del canal Dev de Windows 11 elimina el script bypassnro.cmd, que anteriormente permitía a los usuarios eludir el requisito obligatorio de inicio de sesión de la cuenta de Microsoft. Microsoft afirma que este cambio mejora la seguridad y garantiza que todos los usuarios inicien sesión con una cuenta de Microsoft mientras están en línea. Esto causará inconvenientes a los usuarios que prefieren la configuración sin conexión o las cuentas locales, aunque las cuentas de Microsoft ofrecen beneficios como el acceso fácil a las suscripciones y la sincronización de datos. Las cuentas locales, sin embargo, reducen las notificaciones y las ofertas adicionales.

Desarrollo Cuenta Microsoft

El Fin de las Discusiones sobre Microservicios: Un Debate Arquitectónico Inútil

2025-03-29
El Fin de las Discusiones sobre Microservicios: Un Debate Arquitectónico Inútil

El autor relata su frustración con los debates interminables sobre microservicios durante una reunión de revisión de arquitectura. Argumenta que la falta de una definición clara, la desconexión de los objetivos de negocio y la negligencia de los cambios organizacionales hacen que estas discusiones sean improductivas. Muchas discusiones sobre microservicios son, en realidad, sobre el deseo de tecnología de vanguardia en lugar de resolver problemas del mundo real. El autor propone abandonar las discusiones abstractas sobre microservicios y centrarse en desafíos concretos, como implementaciones de funciones más rápidas, reducción de acoplamiento y resolución de cuellos de botella. Los microservicios solo funcionan cuando la estructura y los procesos organizacionales los respaldan; de lo contrario, solo añaden complejidad.

Desarrollo

Descubiertas Explotaciones Críticas de Bypass de Espacio de Nombres de Usuario de Ubuntu

2025-03-29
Descubiertas Explotaciones Críticas de Bypass de Espacio de Nombres de Usuario de Ubuntu

Investigadores de Qualys han descubierto tres bypasses críticos de seguridad en las restricciones de espacio de nombres de usuario no privilegiados de Ubuntu 23.10 y 24.04. Estos bypasses, que aprovechan la herramienta aa-exec, el shell busybox y la técnica LD_PRELOAD, permiten a los atacantes locales crear espacios de nombres de usuario con privilegios administrativos completos, explotando potencialmente vulnerabilidades del kernel. Canonical reconoce estos como limitaciones de su defensa AppArmor, no como vulnerabilidades, y recomienda pasos de endurecimiento administrativo, como habilitar kernel.apparmor_restrict_unprivileged_unconfined=1 para mitigar los riesgos.

Desarrollo

bknd: Backend ligero y completo para desarrollo de aplicaciones simplificado

2025-03-29
bknd: Backend ligero y completo para desarrollo de aplicaciones simplificado

bknd simplifica el desarrollo de aplicaciones proporcionando un backend totalmente funcional para la gestión de bases de datos, la autenticación, los medios y los flujos de trabajo. Construido sobre estándares web, es ligero y se puede implementar en casi cualquier lugar, incluso dentro de su framework de elección. ¡No más implementación de múltiples servicios separados! Ofrece una API REST, un SDK de React y elementos de React para componentes de autenticación y multimedia, junto con una interfaz de usuario de administrador fácil de usar. Si bien todavía está en desarrollo activo (pre-v1.0.0), la compatibilidad total con versiones anteriores aún no está garantizada.

Desarrollo desarrollo backend

Windows 11 Insider Preview Build 26200.5516: Búsqueda semántica mejorada y más

2025-03-29
Windows 11 Insider Preview Build 26200.5516: Búsqueda semántica mejorada y más

La última versión preliminar de Windows 11 Insider, la Build 26200.5516, incluye una gran cantidad de mejoras para el canal Dev. Lo más destacado es la búsqueda de Windows mejorada para PC Copilot+ con procesadores AMD e Intel. Con la indexación semántica, los usuarios ahora pueden buscar usando lenguaje natural, como "puente al atardecer", para encontrar documentos, fotos y configuraciones, incluso sin conexión. También se incluyen una nueva función de resumen del habla del Narrador para revisar y copiar el contenido hablado; una interfaz de usuario mejorada para reinicios inesperados; el atajo de teclado Win+C y la función de presionar para hablar para Copilot; mejoras en Click to Do; y funciones de uso compartido de Windows mejoradas. Varios problemas conocidos están programados para su corrección en futuras actualizaciones.

La extensión de Grammarly rompe el diseño del sitio web con un conflicto de CSS

2025-03-29
La extensión de Grammarly rompe el diseño del sitio web con un conflicto de CSS

Un creador de sitios web descubrió que la extensión del navegador Grammarly estaba rompiendo el diseño de su sitio web. Grammarly inyecta una hoja de estilo que anula los estilos del propio sitio web, en particular al usar la misma propiedad personalizada `--rem`, lo que hace que el sistema de tipografía fluida del sitio web funcione mal. El autor solucionó el problema utilizando un observador de mutaciones y la propiedad personalizada `--🤡`, e instó a Grammarly a mejorar el diseño de su extensión para evitar conflictos con los estilos de otros sitios web.

Inmersión Profunda: Trazando la Llamada al Sistema `write()` en OpenBSD

2025-03-29

Este artículo profundiza en la implementación a bajo nivel de la llamada al sistema `write()` en OpenBSD. Comenzando con la llamada `write()` en el espacio de usuario, rastrea el recorrido de los datos a través del kernel, detallando la ruta completa desde la llamada al sistema hasta que los datos se escriben en un disco duro NVMe. El artículo revela una cadena de llamadas a funciones del kernel, incluyendo `mi_syscall`, `sys_write`, `dofilewritev`, `vn_write`, `ffs_write`, `uiomove`, `bdwrite`, `syncer`, `bwrite`, `ufs_strategy`, `spec_strategy`, `sdstrategy` y, finalmente, el controlador NVMe. Ilustra la transformación y transmisión de datos a través de diferentes niveles de abstracción, destacando detalles técnicos clave como los mecanismos de caché y las transferencias DMA.

Desarrollo Llamada al Sistema

Construyendo un motor de búsqueda encriptado multiplataforma: abordando el almacenamiento en el navegador

2025-03-29
Construyendo un motor de búsqueda encriptado multiplataforma: abordando el almacenamiento en el navegador

Este artículo aborda el primer obstáculo en la construcción de un motor de búsqueda encriptado multiplataforma: el almacenamiento de datos seguro y eficiente del lado del navegador. El autor compara LocalStorage, IndexedDB y la API del Sistema de Archivos, eligiendo finalmente la API del Sistema de Archivos por su interfaz similar a un sistema de archivos, mejor rendimiento y consistencia con otras plataformas. El artículo detalla el uso de Rust y web-sys para interactuar con la API del Sistema de Archivos e implementa una capa de encriptación AES-GCM para seguridad. Finalmente, se crea un trait unificado `File` para gestionar archivos encriptados y no encriptados.

Seguimiento de Cambios de Código con Git Hooks: Un Enfoque Basado en Datos para el Desarrollo

2025-03-29

Este artículo presenta un método para rastrear el tiempo de modificación del código utilizando ganchos de Git para proporcionar una medida más objetiva de la eficiencia del desarrollo. Al registrar el tiempo desde la creación de la rama hasta su fusión, excluyendo el tiempo de reflexión, ofrece un reflejo más claro del tiempo de codificación real. Este enfoque ayuda a los equipos a identificar y resolver ineficiencias en el mantenimiento del código, como tiempos de mantenimiento excesivamente largos para ciertos componentes, o ganancias de eficiencia con herramientas de IA. El objetivo final es optimizar el proceso de desarrollo, reducir la entropía y aumentar la productividad del equipo mediante información basada en datos en lugar de estimaciones subjetivas.

Desarrollo ganchos de Git

Servidor de Lenguaje Postgres: Una Potente Herramienta SQL para Desarrolladores

2025-03-29
Servidor de Lenguaje Postgres: Una Potente Herramienta SQL para Desarrolladores

Este proyecto ofrece una cadena de herramientas completa para el desarrollo de Postgres, construida sobre el analizador propio de Postgres (libpg_query) para garantizar una compatibilidad de sintaxis del 100 %. Utilizando una arquitectura cliente-servidor con un diseño independiente del transporte, proporciona acceso a través de LSP, CLI, API HTTP y WebAssembly. Las funciones actuales incluyen autocompletado, resaltado de sintaxis, comprobación de tipos (utilizando información de EXPLAIN) y un linter. El desarrollo futuro se centra en mejorar estas funciones principales y construir una infraestructura robusta. ¡Se agradecen las contribuciones!

Desarrollo

Más allá de la OOP: La evolución de la subtipificación en los lenguajes de programación

2025-03-29

Este artículo explora el papel crucial de la subtipificación en el diseño de lenguajes de programación. El autor, basándose en su experiencia en el desarrollo de varios lenguajes de programación, explica que la subtipificación no se limita a la herencia de clases en la programación orientada a objetos, sino que es un concepto mucho más fundamental: el tipo X es un subtipo del tipo Y si un valor del tipo X puede usarse dondequiera que se espere un valor del tipo Y. El artículo explica claramente por qué la subtipificación es crucial incluso en lenguajes de bajo nivel orientados al rendimiento, permitiendo que el compilador compruebe estáticamente valores nulos, alias y otros problemas, mejorando así la fiabilidad del código y, en última instancia, impulsando la evolución de los lenguajes de programación.

Desarrollo subtipificación

Máquina virtual BEAM de Elixir: Espera ocupada: ¿Optimización o consumo excesivo de recursos?

2025-03-29

Las pruebas de comparación entre Go, Elixir y Node.js revelaron que Elixir (en la VM BEAM) mostraba un alto uso de la CPU a pesar de una excelente capacidad de respuesta. ¿El culpable? La espera ocupada, una optimización de BEAM que maximiza la capacidad de respuesta. Si bien esto lleva a un uso de la CPU engañoso informado por el sistema operativo, habilitar la espera ocupada es beneficioso para las cargas de trabajo HTTP en hardware dedicado. Sin embargo, se recomienda deshabilitarla en sistemas que comparten núcleos con otro software o instancias de rendimiento de ráfagas en la nube para evitar el impacto en otros procesos. Las pruebas no mostraron ninguna diferencia de rendimiento con la espera ocupada deshabilitada para las solicitudes HTTP.

Desarrollo

arXivLabs: Proyectos experimentales con colaboradores de la comunidad

2025-03-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. Las personas y 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 agregue valor a la comunidad de arXiv? Obtén más información sobre arXivLabs.

Desarrollo

Pruebas sin Mocks: Un Enfoque Novedoso para Pruebas Unitarias

2025-03-29

Este artículo presenta un enfoque novedoso para las pruebas unitarias que elimina la necesidad de mocks y spies, dando como resultado pruebas rápidas, confiables y fáciles de mantener. La idea central consiste en combinar pruebas basadas en el estado con una nueva técnica de infraestructura llamada "Nullables". Los Nullables no son dobles de prueba; son código de producción con un interruptor "apagado", lo que permite que las pruebas se ejecuten sin depender de sistemas externos o del estado. Si bien requiere modificaciones en el código de producción, este enfoque evita muchos inconvenientes de los métodos tradicionales, como pruebas inestables y refactorización difícil, y ofrece ganancias significativas de rendimiento. El artículo explica a fondo los patrones y técnicas involucrados, incluidas las Pruebas Estrechas, las Pruebas Basadas en el Estado y las Pruebas Sociables Superpuestas, proporcionando numerosos ejemplos de código y diversos casos de uso, lo que lo hace ideal para que los desarrolladores aprendan e implementen.

Desarrollo

Cómo autohospedar un servidor TURN de código abierto casi gratuito en la nube de Oracle

2025-03-28
Cómo autohospedar un servidor TURN de código abierto casi gratuito en la nube de Oracle

Esta guía detalla cómo configurar un servidor TURN de código abierto casi gratuito en el nivel gratuito de Oracle Cloud, ofreciendo una alternativa a las implementaciones de WebRTC que dependen de servicios de terceros. Se explica paso a paso la creación de subredes, listas de seguridad, configuraciones de instancias, la instalación de Nginx, Certbot, un servidor PeerJS y un servidor Coturn. La guía cubre la configuración de las reglas de iptables y el uso de coturn-credential-api para la autenticación, proporcionando un control completo sobre la comunicación WebRTC y mejorando la privacidad y la seguridad al evitar la dependencia de proveedores grandes como Google.

Desarrollo nube de Oracle

Swiftly 1.0: Simplifica la gestión del conjunto de herramientas de Swift

2025-03-28
Swiftly 1.0: Simplifica la gestión del conjunto de herramientas de Swift

¡Swiftly 1.0 se ha lanzado oficialmente! Este gestor de versiones de Swift simplifica la instalación, gestión y actualización de tu conjunto de herramientas de Swift. Admite macOS y varias distribuciones de Linux, permitiendo a los desarrolladores instalar fácilmente diferentes versiones de Swift y usar Swift fuera de Xcode. Escrito en Swift y con actualización automática, Swiftly admite versiones estables, instantáneas nocturnas y versiones anteriores, permitiendo cambiar fácilmente entre ellas. Un archivo `.swift-version` facilita la consistencia de la versión en todo el equipo. Swiftly hace que el desarrollo de Swift sea más conveniente y eficiente.

Multiplicación de matrices FP32 optimizada en GPU AMD RDNA3: Superando a rocBLAS en un 60%

2025-03-28
Multiplicación de matrices FP32 optimizada en GPU AMD RDNA3: Superando a rocBLAS en un 60%

Esta publicación detalla el proceso de optimización para crear un kernel de multiplicación de matrices FP32 para GPUs AMD RDNA3 que supera a rocBLAS en un 60%. El autor refina iterativamente ocho kernels, comenzando con una implementación ingenua y avanzando hacia optimizaciones a nivel de ISA. Las técnicas incluyen el uso de LDS tiling, register tiling, double buffering de memoria global, optimización de la utilización de LDS y, finalmente, optimización de la utilización de VALU a nivel de ISA y desenrollado de bucles. El kernel final supera a rocBLAS, alcanzando casi 50 TFLOPS.

La Fundación FreeBSD proporciona portátiles Framework para mejorar la experiencia del usuario

2025-03-28

La Fundación FreeBSD proporcionó portátiles Framework a desarrolladores para mejorar la experiencia de FreeBSD en portátiles. Un desarrollador documentó su proceso de instalación y configuración de FreeBSD 14.2, incluyendo la instalación del sistema operativo, la configuración de controladores gráficos y los desafíos encontrados, como la instalación del bisel de la pantalla y problemas de compatibilidad con el escritorio Wayland. Si bien ejecutar KDE Plasma 6 en Wayland presentó obstáculos, esto proporciona información valiosa para mejorar la experiencia de escritorio de FreeBSD.

Desarrollo Portátil Framework

SignalBot: Seguridad, Funciones y Uso Gratuito

2025-03-28

SignalBot, un bot de notificaciones gratuito basado en Signal, utiliza fuertes medidas de seguridad y no almacena mensajes ni metadatos; sin embargo, se desaconseja el uso de datos confidenciales. Ofrece una API webhook genérica que admite texto sin formato y emojis (con soporte para Markdown próximamente) para notificaciones individuales o grupales. ¿Necesitas formatos de notificación personalizados o integraciones específicas? ¡Ponte en contacto con el desarrollador!

Hexi: Una biblioteca C++23 ligera para el manejo seguro de datos binarios

2025-03-28
Hexi: Una biblioteca C++23 ligera para el manejo seguro de datos binarios

Hexi es una biblioteca C++23 ligera, solo con encabezados, para manejar datos binarios de fuentes arbitrarias (principalmente datos de red) de forma segura. Se encuentra entre copiar bytes manualmente desde búferes de red y bibliotecas de serialización completas. Diseñada para la facilidad de uso, la seguridad al tratar con datos no confiables, la flexibilidad y una sobrecarga mínima, Hexi admite contenedores personalizados (incluidos los contenedores no contiguos), el manejo de excepciones y la verificación de límites. Las características adicionales incluyen tipos de búfer para archivos binarios, búferes estáticos/dinámicos y un asignador de bloques de subprocesos locales.

Desarrollo Datos Binarios

Análisis de los cuellos de botella de E/S de disco en las canalizaciones de CI de GitHub

2025-03-28
Análisis de los cuellos de botella de E/S de disco en las canalizaciones de CI de GitHub

Este artículo investiga los cuellos de botella de E/S de disco a menudo pasados por alto en las canalizaciones de CI de GitHub. Utilizando herramientas como iostat y fio, el autor monitoriza y prueba el rendimiento del disco en diferentes runners, descubriendo limitaciones de ancho de banda en el runner ubuntu-22.04 predeterminado que dificultan la instalación de dependencias. El análisis profundiza en el impacto de la descarga de caché, la extracción y numerosos archivos pequeños en la E/S de disco. El artículo recomienda el uso de fio para pruebas de evaluación comparativa y la comparación del rendimiento del disco de cada runner, destacando finalmente el próximo Ultra Runner de Depot, que promete mejoras significativas en el rendimiento de E/S de disco.

Desarrollo

Xee: Un motor de ejecución XML moderno en Rust

2025-03-28

El autor dedicó dos años a desarrollar Xee, un motor de ejecución XML implementado en Rust, con soporte para XPath y XSLT modernos. Más que una simple biblioteca, Xee es una implementación completa de lenguaje de programación, con una herramienta de línea de comandos y una biblioteca Rust, con el objetivo de revitalizar la tecnología XML. El artículo detalla la arquitectura, la implementación de Xee y la historia y el estado actual de XML, con una llamada a la acción para que los desarrolladores contribuyan.

Desarrollo

Creando ejecutables Go estáticamente vinculados con CGO y Zig

2025-03-28

Esta publicación muestra cómo crear un ejecutable Go estáticamente vinculado que utiliza dependencias CGO a través de Zig. El autor crea una biblioteca estática Zig y luego escribe un programa Go simple para llamar a una función dentro de ella. Utilizando flags específicas de `go build` y el sistema de compilación de Zig, se crea con éxito un ejecutable estáticamente vinculado, libre de dependencias de bibliotecas dinámicas, mejorando la portabilidad y la seguridad.

Construyendo Node.js con clang-cl en Windows: Una historia de éxito

2025-03-28

El autor recientemente construyó con éxito Node.js usando clang-cl en Windows, superando varios obstáculos de compilación. La publicación detalla el proceso, incluyendo la instalación de los componentes necesarios de Visual Studio (compilador C++ Clang y soporte MSBuild para LLVM), la configuración de ccache para compilaciones más rápidas y los pasos finales de compilación. El autor comparte consejos para solucionar problemas, como reinstalar los componentes de Visual Studio y configurar correctamente la ruta de ccache. Esto proporciona una guía valiosa para usuarios de Windows que desean construir Node.js con clang-cl, ofreciendo una alternativa al proceso de construcción tradicional de MSVC.

Desarrollo

Descomponiendo Factoriales en Factores Grandes: Progreso en una Antigua Conjetura

2025-03-28
Descomponiendo Factoriales en Factores Grandes: Progreso en una Antigua Conjetura

Un nuevo artículo estudia el problema de factorizar un factorial en factores lo más grandes posible. Erdős y otros propusieron una conjetura sobre esto, pero la prueba se perdió. Este artículo, usando aplicaciones inteligentes del teorema del número primo y factorización aproximada, proporciona nuevos límites superior e inferior, resolviendo parcialmente este problema de larga data y ofreciendo nuevas vías para resolver completamente las conjeturas restantes.

Desarrollo combinatoria
1 2 126 127 128 130 132 133 134 214 215