Category: Desarrollo

Mejoras importantes en MSVC Address Sanitizer (ASan)

2025-02-25
Mejoras importantes en MSVC Address Sanitizer (ASan)

Microsoft ha mejorado significativamente la calidad de MSVC Address Sanitizer (ASan). Han subido con éxito las partes principales de ASan a LLVM, permitiendo una integración más rápida de las mejoras de la comunidad LLVM. Además, han integrado ASan en la base de código de MSVC, incluyendo el compilador, el enlazador y las herramientas, permitiendo la detección de problemas de seguridad de memoria en la integración continua. Visual Studio 2022 versión 17.13 incluye numerosas correcciones, reduciendo los falsos positivos, mejorando los informes de errores y gestionando escenarios multiprocesos.

Desarrollo

Xcode se conecta constantemente a internet: preocupaciones de privacidad y cuellos de botella en la velocidad de compilación

2025-02-25

El desarrollador Jeff Johnson descubrió que Xcode se conecta con frecuencia a los servidores de Apple durante la compilación de proyectos, lo que provoca tiempos de compilación lentos, especialmente durante la fase de "Recopilación de entradas de aprovisionamiento". Al deshabilitar las conexiones a developerservices2.apple.com usando Little Snitch, resolvió el problema de la velocidad de compilación. Además, descubrió que Xcode se conecta a otros servidores de Apple, como devimages-cdn.apple.com y appstoreconnect.apple.com, al iniciar y abrir proyectos, aparentemente sin necesidad y potencialmente transmitiendo información del desarrollador a Apple. Jeff argumenta que Xcode actúa como un mecanismo de recopilación de datos analíticos de desarrolladores, comprometiendo la privacidad del desarrollador.

HTTP/2: Por qué no importa en servidores HTTP Ruby

2025-02-25

Esta publicación analiza la relevancia del soporte HTTP/2 en servidores HTTP Ruby como Puma. El autor argumenta que si bien la principal ventaja de HTTP/2, la multiplexación para tiempos de carga de página más rápidos, es significativa en internet, ofrece pocos beneficios en una LAN. La baja latencia y las conexiones de larga duración en una LAN minimizan el impacto del slow start del TCP. Además, la función de push del servidor HTTP/2 resultó perjudicial y ha sido reemplazada por la más elegante 103 Early Hints. El autor aboga por dejar el manejo de HTTP/2 a los balanceadores de carga o proxies inversos, simplificando la implementación y el mantenimiento del servidor de aplicaciones.

Desarrollo Rendimiento de Red

LLPlayer: Un Reproductor Multimedia Multilingüe para el Aprendizaje de Idiomas

2025-02-25

LLPlayer es un reproductor multimedia de código abierto diseñado para el aprendizaje de idiomas. Ofrece doble visualización de subtítulos, generación de subtítulos en tiempo real con IA (compatible con 99 idiomas), traducción en tiempo real (134 idiomas), reconocimiento de subtítulos OCR, soporte para varios formatos de vídeo y subtítulos, búsqueda instantánea de palabras y mucho más. Aprovechando tecnologías como OpenAI Whisper, Google Translate, DeepL y ffmpeg, LLPlayer ofrece alta eficiencia e incluye una barra lateral de subtítulos y protección contra spoilers. Todo el código está escrito en C# para facilitar la personalización.

Desarrollo subtítulos

DeepEP: Una biblioteca de comunicación eficiente para Mixture-of-Experts

2025-02-25
DeepEP: Una biblioteca de comunicación eficiente para Mixture-of-Experts

DeepEP es una biblioteca de comunicación diseñada para Mixture-of-Experts (MoE) y paralelismo de expertos (EP), ofreciendo núcleos GPU all-to-all de alto rendimiento y baja latencia (despacho y combinación MoE). Admite operaciones de baja precisión, incluyendo FP8. Optimizada para el algoritmo de compuerta con límite de grupo en DeepSeek-V3, DeepEP proporciona núcleos para el reenvío de ancho de banda de dominio asimétrico (por ejemplo, NVLink a RDMA). Estos núcleos alcanzan un alto rendimiento, adecuados para tareas de entrenamiento y prellenado de inferencia. También se admite el control del número de SM (Streaming Multiprocessors). Para la decodificación de inferencia sensible a la latencia, los núcleos de baja latencia que utilizan RDMA puro minimizan los retrasos. Se incluye un método de superposición de comunicación-computación basado en ganchos, sin requerir recursos SM. La biblioteca se ha probado con InfiniBand y es teóricamente compatible con RoCE.

Desarrollo Comunicación GPU

¿Siguen siendo relevantes los blogs en la era de la IA?

2025-02-25
¿Siguen siendo relevantes los blogs en la era de la IA?

Esta publicación explora el valor de los blogs en la era de ChatGPT y otras herramientas de IA. Si bien la IA puede acceder y sintetizar información fácilmente, los blogs siguen siendo valiosos: consolidan el conocimiento propio, ayudan a otros, construyen una marca personal (aunque esto es difícil de lograr únicamente con blogs), brindan una sensación de logro y construyen una cartera de escritura que muestra habilidades de pensamiento, beneficiando el desarrollo profesional. El autor argumenta que el principal impacto de la IA en los blogs es reducir la sensación de logro de la interacción con el lector, pero esto no niega el valor general de los blogs.

Desarrollo

Debate entre el Tío Bob y John Ousterhout sobre Diseño de Software

2025-02-25
Debate entre el Tío Bob y John Ousterhout sobre Diseño de Software

Robert "Tío Bob" Martin y John Ousterhout mantuvieron un animado debate sobre los principios del diseño de software, cubriendo temas clave como la longitud de los métodos, los comentarios de código y el Desarrollo Guiado por Pruebas (TDD). Discutieron acaloradamente el grado de descomposición del código, la necesidad de comentarios y las ventajas y desventajas del TDD, utilizando ejemplos de código y escenarios específicos para respaldar sus argumentos. Este debate destaca la importancia de las compensaciones en el diseño de software y la necesidad de evitar los extremos al buscar la concisión y la legibilidad.

Creando un DSL de constructor HTML en Lua: Un enfoque inteligente

2025-02-24
Creando un DSL de constructor HTML en Lua: Un enfoque inteligente

Este artículo demuestra cómo construir un Lenguaje Específico de Dominio (DSL) en Lua para generar HTML. El autor aprovecha inteligentemente las características sintácticas de Lua, como los paréntesis opcionales y la concatenación de funciones, junto con los entornos de funciones y las metatablas, para crear una solución concisa y elegante para la generación de HTML. Un metamétodo `__index` personalizado genera dinámicamente funciones de etiquetas HTML, y una función `append_all` concatena cadenas de manera eficiente. El resultado es un DSL de constructor HTML totalmente funcional, mejorando significativamente la legibilidad del código y la eficiencia del desarrollo. El artículo también destaca la importancia crucial del escape HTML para prevenir vulnerabilidades de seguridad.

Desarrollo Constructor HTML

Electro: Visor de imágenes ligero y ultrarrápido

2025-02-24
Electro: Visor de imágenes ligero y ultrarrápido

Electro es un visor de imágenes ligero y ultrarrápido construido con Rust. Diseñado pensando en la experiencia del desarrollador, cuenta con una terminal de comandos integrada y permite ver imágenes locales y alojadas en la web al instante. Su principal fortaleza es su rendimiento incomparable: las imágenes se cargan casi instantáneamente. Electro es de código abierto y fácilmente extensible, lo que permite a los desarrolladores contribuir con código o construir sus propias versiones.

Desarrollo visor de imágenes

Nivel gratuito de Geocodio: Equilibrando la prevención de abusos y los usuarios legítimos

2025-02-24
Nivel gratuito de Geocodio: Equilibrando la prevención de abusos y los usuarios legítimos

Geocodio mantiene un nivel gratuito a pesar del riesgo de abuso. Inicialmente, el bloqueo simple basado en IP provocó una mala experiencia de usuario y pérdida de tiempo de soporte. Pasaron a un sistema de puntuación de riesgo granular, utilizando docenas de factores (navegador, IP, correo electrónico, etc.) para identificar y gestionar automáticamente las inscripciones de alto riesgo. Las inscripciones de riesgo medio pueden enfrentarse a CAPTCHAs o verificación de correo electrónico. Este sistema minimiza la intervención manual, equilibrando la seguridad y la experiencia del usuario, garantizando la sostenibilidad del nivel gratuito.

Más Allá de las Bases de Datos Vectoriales: Procesamiento Eficiente de Incrustaciones de Texto con Parquet y Polars

2025-02-24
Más Allá de las Bases de Datos Vectoriales: Procesamiento Eficiente de Incrustaciones de Texto con Parquet y Polars

Este artículo presenta un método para el procesamiento eficiente de incrustaciones de texto sin depender de bases de datos vectoriales. El autor utiliza archivos Parquet para almacenar datos tabulares que contienen incrustaciones de cartas de Magic: The Gathering y sus metadatos, y aprovecha la biblioteca Polars para la búsqueda rápida de similitudes y el filtrado de datos. La característica de copia cero de Polars y su excelente soporte para datos anidados hacen que este enfoque sea más rápido y eficiente que los métodos tradicionales de CSV o Pickle, manteniendo un alto rendimiento incluso al filtrar el conjunto de datos. El autor compara otros métodos de almacenamiento, como CSV, Pickle y NumPy, y concluye que Parquet combinado con Polars es la opción ideal para manejar incrustaciones de texto de tamaño medio, siendo las bases de datos vectoriales necesarias solo para conjuntos de datos extremadamente grandes.

Neut: Un lenguaje de programación funcional con gestión de memoria estática

2025-02-24

Neut es un lenguaje de programación funcional con gestión de memoria estática, que combina hábilmente la compatibilidad total con λ-cálculo, la gestión automática de memoria predecible y la ausencia de anotaciones en el sistema de tipos. A diferencia de la gestión de basura tradicional, Neut utiliza un enfoque dirigido por tipos para gestionar los recursos. El compilador garantiza que cada variable se utilice exactamente una vez, traduciendo los tipos en funciones que pueden descartar o copiar valores. Incluso cuando es necesaria la copia, Neut evita la sobrecarga innecesaria utilizando el operador T-necesidad en la lógica modal, similar a los préstamos de Rust. Neut se compila a LLVM IR y binarios, e incluye un servidor LSP integrado, un formateador de código y una experiencia de creación de prototipos rápida similar a las lenguas de script. Su sistema de módulos único distingue los módulos utilizando resúmenes de tarballs y define las identidades de los módulos con información de versión.

arXivLabs: Proyectos experimentales con colaboradores de la comunidad

2025-02-24
arXivLabs: Proyectos experimentales con colaboradores de la comunidad

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

Desarrollo

Introducción al Cálculo Estocástico: De Pasos Discretos a la Aleatoriedad Continua

2025-02-24

Esta entrada de blog proporciona una introducción accesible al cálculo estocástico, comenzando con el triángulo de Pascal y la distribución binomial para construir la intuición sobre el movimiento browniano y el cálculo de Itô. Explica el significado físico y la derivación matemática del movimiento browniano, introduce el lema de Itô y las ecuaciones diferenciales estocásticas (EDE), y aborda el cálculo de Stratonovich. La entrada presenta numerosas ilustraciones y ejemplos de código, lo que la hace ideal para aquellos que desean explorar el cálculo estocástico.

Un fallo oculto en DOS 3.3 SYS.COM: El misterio de la corrupción de imágenes de disco NetDrive

2025-02-24

Este artículo detalla la investigación del autor sobre un error en el comando del sistema DOS 3.3 `SYS.COM`. Este comando copia el código del cargador de arranque a un disco, pero cuando se usa con imágenes de disco virtual NetDrive, corrompe la imagen. Mediante un análisis cuidadoso, el autor descubrió que `SYS.COM` no verifica el código de retorno de una llamada Generic IOCTL utilizada para obtener los parámetros del disco. Cuando esta llamada falla (por ejemplo, el controlador NetDrive no admite la función), `SYS.COM` escribe erróneamente datos basura en el sector de arranque del disco, corrompiendo la imagen. Este error solo se manifiesta en ciertos tipos de imágenes de disco (por ejemplo, imágenes de disco duro), ya que DOS intenta recuperar información de geometría del disco, mientras que las imágenes de disquete no. El autor finalmente identifica la causa raíz del error y explica las condiciones en las que se produce.

Desarrollo

Ente: Hospeda una alternativa a Google Fotos y recupera tu privacidad

2025-02-24
Ente: Hospeda una alternativa a Google Fotos y recupera tu privacidad

Esta entrada de blog detalla cómo alojar Ente, una alternativa de código abierto a Google Fotos, implementando su servidor en un clúster de Kubernetes y el frontend en GitHub Pages. Proporciona el código necesario, los archivos de configuración e instrucciones para configurar una base de datos Cloudnative-PG, junto con la obtención de secretos de AWS Parameter Store. Si bien es técnicamente exigente, es ideal para usuarios familiarizados con Kubernetes que priorizan la privacidad. El artículo también cubre la creación de una imagen Docker personalizada utilizando GitHub Actions y la gestión de repositorios GitHub con Terraform.

Desarrollo

Emacs 30.1: Compilación nativa, soporte para Android y más

2025-02-24
Emacs 30.1: Compilación nativa, soporte para Android y más

Emacs 30.1 ya está aquí, repleto de nuevas funciones y mejoras. La compilación nativa ahora está habilitada de forma predeterminada, lo que resulta en un aumento significativo del rendimiento. Se ha añadido soporte completo para Android, junto con numerosas mejoras para pantallas táctiles. Otros aspectos destacados incluyen un analizador JSON integrado, finalización de minibuffer mejorada, integración mejorada del protocolo URI del modo Org y un sinnúmero de mejoras en la calidad de vida. Esta versión representa un gran avance para Emacs.

Desarrollo Compilación Nativa

Rust en el Kernel de Linux: Progreso lento, debate acalorado

2025-02-24
Rust en el Kernel de Linux: Progreso lento, debate acalorado

La integración de Rust en el kernel de Linux, aunque inicialmente prometedora, ha enfrentado fuertes vientos en contra. A pesar de la aprobación de Linus Torvalds en 2022, el progreso ha sido lento debido a la resistencia de desarrolladores veteranos del kernel reacios a aprender un nuevo lenguaje y obstáculos no técnicos. Recientemente, la renuncia de Hector Martin, líder del proyecto Asahi Linux, debido a los obstáculos para la implementación de Rust, encendió un debate intenso. Si bien Torvalds reconoce el potencial de Rust, enfatiza que la adopción no será forzada, lo que sugiere que se está trabajando en una solución matizada.

Desarrollo

Construyendo un cliente BitTorrent desde cero: Un proyecto de fin de semana

2025-02-24

Este artículo detalla un proyecto de fin de semana para construir un cliente BitTorrent. Explica el protocolo BitTorrent, cubriendo el descubrimiento de pares, el análisis de archivos .torrent (Bencode), la comunicación con rastreadores, el apretón de manos con pares y la descarga de piezas de archivos. El autor usa Go y proporciona fragmentos de código clave, incluyendo un analizador Bencode, un constructor de solicitudes de rastreadores, un analizador de mensajes y una gestión de descargas concurrentes. Se discuten detalles técnicos como bitfields, solicitudes de bloques y canalizaciones, destacando el procesamiento concurrente y la gestión del estado. Aunque se omiten algunos códigos, el artículo proporciona una hoja de ruta clara para construir un cliente BitTorrent.

Desarrollo

openCFS: Una Herramienta de Simulación Multifísica de Código Abierto y Madura

2025-02-24

openCFS es una herramienta de modelado y simulación multifísica basada en elementos finitos, con 20 años de desarrollo impulsado por la investigación. Su núcleo se utiliza en investigación científica y aplicaciones industriales. Las características clave incluyen soporte para varios campos físicos y sus acoplamientos, técnicas de malla no conformes, optimización estructural, intercambio de datos flexible, entrada XML con scripts y potentes bibliotecas integradas. Un amplio conjunto de ejemplos, un conjunto completo de pruebas y su uso en cursos universitarios facilitan el aprendizaje. Una comunidad vibrante y el soporte comercial de EnSimTech UG garantizan aún más su desarrollo continuo y accesibilidad.

Desarrollo

El Misterio del Guion Bajo en `target='_blank'`

2025-02-24

¿Alguna vez te has preguntado por qué `target='_blank'` necesita ese guion bajo? Antes de HTML5, los desarrolladores usaban `` para crear funcionalidades similares a SPA, dividiendo la ventana en marcos con IDs únicos. El atributo `target` especificaba en qué marco cargar un enlace. `_blank` no era un nombre de marco; instruía al navegador a abrir una nueva ventana (las pestañas no eran comunes en ese entonces). El guion bajo denotaba un valor especial, no un marco. Aunque `` está en desuso, la convención `_blank` permanece.

Desarrollo

JSON: Una opción práctica para la salida legible por máquina en Unix

2025-02-24

El autor aboga por el uso de JSON como formato de salida legible por máquina, basándose en su experiencia al eliminar correos electrónicos de una cola de correo Postfix. Si bien no es perfecto, JSON ofrece varias ventajas prácticas en sistemas Unix: claridad, amplia compatibilidad, soporte extenso de herramientas y fácil conversión a otros formatos. Para programas nuevos, el autor sugiere que usar solo JSON es el enfoque más simple, evitando las complejidades de diseñar formatos personalizados y promoviendo la interoperabilidad entre programas Unix.

arXivLabs: Colaboraciones comunitarias para nuevas funciones de arXiv

2025-02-24
arXivLabs: Colaboraciones comunitarias para nuevas funciones de arXiv

arXivLabs es un marco experimental que permite a los colaboradores desarrollar y compartir nuevas funciones de arXiv directamente en el 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 datos de usuario. 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? Aprende más sobre arXivLabs.

Desarrollo

OBS Studio y Fedora Flatpak resuelven disputa

2025-02-24
OBS Studio y Fedora Flatpak resuelven disputa

Se resolvió un conflicto entre el equipo de OBS Studio y los desarrolladores de Fedora Linux sobre la versión Fedora Flatpak de OBS Studio. Una amenaza legal inicial intensificó la situación, pero ambas partes mantuvieron conversaciones. El equipo de OBS Studio retiró su solicitud de eliminar la propiedad intelectual o cambiar el nombre de la aplicación Fedora Flatpak. En el futuro, colaborarán para resolver los problemas técnicos restantes, incluidas las regresiones en tiempo de ejecución de Qt, los mecanismos de informes de errores y los problemas relacionados con la aceleración de hardware, la reversión de X11 y los complementos.

Desarrollo

OpenAI admite: Incluso los modelos de IA más avanzados no pueden reemplazar a los programadores humanos

2025-02-24
OpenAI admite: Incluso los modelos de IA más avanzados no pueden reemplazar a los programadores humanos

Un nuevo artículo de OpenAI revela que incluso los modelos de lenguaje grande (LLM) más avanzados, como GPT-4 y Claude 3.5, son incapaces de manejar la mayoría de las tareas de ingeniería de software. Los investigadores utilizaron un nuevo punto de referencia, SWE-Lancer, que comprende más de 1400 tareas de ingeniería de software de Upwork. Los resultados mostraron que estos modelos solo podían resolver problemas superficiales, sin poder encontrar errores o causas raíz en proyectos más grandes. Si bien los LLM son rápidos, su precisión y fiabilidad son insuficientes para reemplazar a los programadores humanos, lo que contradice las predicciones del CEO de OpenAI, Sam Altman.

Desarrollo codificación

Algoritmo de Ventana Deslizante Eficiente: Solución O(n) con Colas Funcionales

2025-02-24

Este artículo presenta un algoritmo eficiente para resolver problemas de ventana deslizante utilizando técnicas de programación funcional. Construyendo colas funcionales basadas en dos pilas y aprovechando las propiedades de los monoides, el algoritmo calcula varias estadísticas de ventanas deslizantes, como máximo, mínimo o suma, en tiempo O(n). El artículo detalla la implementación de pilas y colas anotadas con monoides, proporciona ejemplos de código y concluye con varios desafíos algorítmicos relacionados.

Desarrollo ventana deslizante

LeetArxiv: LeetCode para artículos de Arxiv - Guías de codificación práctica para la investigación

2025-02-24
LeetArxiv: LeetCode para artículos de Arxiv - Guías de codificación práctica para la investigación

LeetArxiv ofrece guías de codificación semanales y paso a paso basadas en artículos de Arxiv, dirigidas a programadores que están haciendo la transición a carreras de investigación. Un caso de estudio se centra en la implementación de la Transformada Discreta del Coseno (DCT) AAN de un artículo de 1981. La guía proporciona una implementación en C (fácilmente adaptable a otros lenguajes) detallando la ecuación DCT-II y las optimizaciones AAN: reducción de cálculos de coseno costosos, explotación de la simetría, uso de constantes precompiladas y habilitación del paralelismo. La presentación abarca el diagrama de flujo y el código del algoritmo, haciendo que la investigación compleja sea accesible a través de ejercicios prácticos de codificación.

FlashMLA: Kernel de Decodificación MLA Eficiente para GPUs Hopper

2025-02-24
FlashMLA: Kernel de Decodificación MLA Eficiente para GPUs Hopper

FlashMLA es un kernel de decodificación MLA eficiente, optimizado para GPUs Hopper, diseñado para servir secuencias de longitud variable. Alcanzando hasta 3000 GB/s en configuraciones limitadas por memoria y 580 TFLOPS en configuraciones limitadas por computación en H800 SXM5 usando CUDA 12.6, FlashMLA utiliza precisión BF16 y un kvcache paginado con un tamaño de bloque de 64. Inspirado en los proyectos FlashAttention 2&3 y Cutlass, FlashMLA ofrece mejoras significativas de rendimiento para el procesamiento de secuencias a gran escala.

Desarrollo Decodificación MLA

¡Milagro! Encontré un error en la función de ordenación!

2025-02-24
¡Milagro! Encontré un error en la función de ordenación!

El autor relata una experiencia increíble en sus años de programación: ¡encontró un error en la función `sort()` integrada de JavaScript! Este error causó resultados de ordenación incorrectos, dejándolo perplejo durante mucho tiempo. Finalmente, reportó el error al equipo de Code Studio, que respondió rápidamente y lo solucionó. Esta historia ilustra vívidamente que incluso los softwares de sistema aparentemente perfectos pueden tener errores, y los programadores deben mantener una mentalidad escéptica, buscando persistentemente la causa raíz de los problemas en lugar de culpar ciegamente al compilador o al sistema.

Desarrollo función sort

Rompiendo la Barrera del Tiempo Lineal: El Auge de los Algoritmos de Tiempo Sublineal

2025-02-24

Los algoritmos de tiempo lineal se han considerado durante mucho tiempo el estándar de oro para la resolución de problemas. Sin embargo, con la prevalencia de conjuntos de datos masivos, los algoritmos de tiempo sublineal están ganando cada vez más atención. Los algoritmos de tiempo sublineal leen solo una fracción minúscula de la entrada, una hazaña aparentemente imposible. Si bien existen algoritmos de tiempo sublineal deterministas para algunos problemas, la mayoría requiere aleatorización y proporciona soluciones aproximadas. Se han logrado avances recientes en varios problemas, incluidos problemas clásicos de optimización y pruebas de propiedades. Técnicas como el Lema de Regularidad de Szemerédi y las aproximaciones de matrices de bajo rango están demostrando ser útiles en el diseño de algoritmos de tiempo sublineal, pero aún queda mucho por comprender sobre su alcance y limitaciones.

1 2 152 153 154 156 158 159 160 214 215