Category: Desarrollo

Hotspot: Una elegante interfaz gráfica para el análisis de rendimiento de Linux perf

2025-05-22
Hotspot: Una elegante interfaz gráfica para el análisis de rendimiento de Linux perf

KDAB ha desarrollado Hotspot, una interfaz gráfica independiente para el análisis de datos de rendimiento, inicialmente centrándose en la visualización de datos de Linux perf en una interfaz similar a KCachegrind. Ofrece visualización gráfica, filtrado de línea de tiempo y la capacidad de lanzar perf para perfilar aplicaciones. Disponible como AppImage para un uso fácil entre distribuciones, o a través de administradores de paquetes (AUR, Debian, Ubuntu, Fedora), Hotspot permite a los usuarios analizar el tiempo de CPU y fuera de CPU, exportando datos para compartir. Si bien aún no está completo en cuanto a funciones, Hotspot simplifica el análisis de rendimiento de Linux.

Desarrollo interfaz gráfica

Las mordaces críticas de Dijkstra a las propuestas del lenguaje Ada

2025-05-22
Las mordaces críticas de Dijkstra a las propuestas del lenguaje Ada

Edsger Dijkstra, ganador del Premio Turing, revisó cuatro propuestas para el lenguaje de programación Ada (roja, verde, azul y amarilla). Calificó la propuesta roja como 'avanzada y atrasada de una manera tan incongruente que me dejó perplejo'. La propuesta verde se consideró que mostraba 'incompetencia técnica, probablemente aumentada por la deshonestidad'. La propuesta azul era 'inacceptablemente compleja', con una documentación descrita como una 'mezcla inextricable de documentación técnica y discurso de ventas'. Finalmente, Dijkstra se hizo famoso por preocuparse por la seguridad occidental dependiendo de la propuesta verde ganadora, incluso sugiriendo que se sentiría más seguro si el Ejército Rojo soviético la adoptara. Esta anécdota destaca el compromiso inquebrantable de Dijkstra con los estándares técnicos rigurosos y el diseño claro en la ingeniería de software.

Desarrollo

¿Por qué Debian cambia sus paquetes?

2025-05-22

Hace un año y medio, escribí "¿Por qué Debian es como es?", lo que generó muchas preguntas sobre por qué Debian altera sus paquetes de software. Este artículo describe las razones principales: cumplimiento de las directrices del Manual de Políticas de Debian (por ejemplo, ubicaciones de configuración del sistema y documentación); asegurar la compatibilidad entre programas (por ejemplo, ubicaciones de sockets de dominio Unix, cuentas de usuario); eliminación de código que "llama a casa" o elude el sistema de empaquetado de Debian (por razones de privacidad y seguridad); corrección o retrocompatibilidad de correcciones de errores para mejorar la experiencia del usuario; evitar la inclusión de código legalmente problemático (según las Directrices de Software Libre de Debian); y adición de páginas de manual que faltan. Esencialmente, estos cambios garantizan la estabilidad del sistema, la seguridad y el cumplimiento de los principios de software libre.

Desarrollo

La Mina de Oro de Tutoriales de Gráficos por Computadora de Inigo Quilez

2025-05-22

Inigo Quilez, un veterano experto en gráficos por computadora, se dedica a aprender y compartir su conocimiento desde 1994. Su sitio web ofrece una vasta colección de tutoriales de gráficos por computadora que cubren temas que van desde SDF y ray marching hasta fractales y técnicas matemáticas. Los tutoriales presentan fragmentos de código concisos y explicaciones claras, atendiendo a varios niveles de habilidad. También proporciona tutoriales en video y otros recursos, y su código tiene licencia MIT para facilitar su reutilización.

Desarrollo

DuckDB en un MacBook Pro de 2012: ¿Perdimos una década en arquitecturas distribuidas?

2025-05-22
DuckDB en un MacBook Pro de 2012: ¿Perdimos una década en arquitecturas distribuidas?

Este artículo evalúa DuckDB en un MacBook Pro de 2012 para investigar si la velocidad de la innovación del hardware ha superado el crecimiento de los datos, haciendo innecesarias las arquitecturas distribuidas. Los resultados muestran que el portátil de diez años puede completar consultas SQL analíticas complejas, aunque más lentamente que las máquinas modernas, pero en plazos razonables. Esto lleva a una reflexión sobre el enfoque de la última década en el análisis de datos distribuidos, sugiriendo que la tecnología de bases de datos de un solo nodo era capaz de manejar grandes conjuntos de datos en ese entonces, cuestionando la necesidad del cambio a sistemas distribuidos.

Desarrollo

Servidor de Lenguaje Kotlin Experimental para VS Code

2025-05-22
Servidor de Lenguaje Kotlin Experimental para VS Code

Un servidor de lenguaje Kotlin pre-alfa oficial ya está disponible para Visual Studio Code, implementando el Protocolo de Servidor de Lenguaje para Kotlin. Construido sobre IntelliJ IDEA y su plugin Kotlin, este servidor admite la mayoría de las funciones esenciales, pero es experimental y carece de garantías de estabilidad. Actualmente, solo se admiten proyectos Kotlin Gradle solo para JVM de forma inmediata. Partes de la implementación son actualmente de código cerrado para un desarrollo más rápido, con planes para código abierto completo más adelante. Si bien es fácilmente instalable como una extensión de VS Code, otros editores requieren configuración manual. Se anima a los usuarios a probarlo y proporcionar comentarios, pero las contribuciones directas de código aún no son compatibles.

Desarrollo

De Rechazo a Aceptación: El Poder de la Primera Página

2025-05-22
De Rechazo a Aceptación: El Poder de la Primera Página

Un artículo inicialmente rechazado fue revisado dramáticamente, resultando en su aceptación. El autor detalla meticulosamente los cambios, enfocándose en la página crucial inicial (título, resumen, Figura 1, introducción). Al hacer el título específico y memorable, la Figura 1 visualmente atractiva y la introducción y el resumen concisos y atractivos, el autor mejoró el impacto del artículo. Otras revisiones incluyeron la adición de líneas de base, ablaciones y la garantía de significancia estadística, abordando posibles razones para el rechazo. El autor concluye que mejorar la comunicación mejora significativamente el impacto científico.

Encontrando información en correos electrónicos con LLMs y un servidor MCP

2025-05-22

El autor construyó un servidor MCP para dar a un Modelo de Lenguaje Grande (LLM) acceso de solo lectura a sus correos electrónicos. A través de una conversación con Gemini (un LLM), el autor demuestra cómo se pueden usar herramientas simples de búsqueda y recuperación para encontrar el nombre del hijo de Donovan en los correos electrónicos. Si bien la estrategia de búsqueda inicial de Gemini empleó varias palabras clave (como "son", "boy", "baby"), la mayoría llevó a los familiares de Donovan. Finalmente, Gemini identificó pistas en los resultados de búsqueda iniciales, analizando los asuntos y el contenido de los correos electrónicos, encontrando con éxito el nombre del hijo como Monty. El proceso destaca el poder de los LLMs combinados con herramientas específicas para la recuperación de información y subraya la importancia de las estrategias de búsqueda precisas.

Desarrollo

Tabla HTML de CSV con búsqueda en JavaScript puro

2025-05-22
Tabla HTML de CSV con búsqueda en JavaScript puro

¿Cansado de luchar con datos CSV? Este proyecto en JavaScript puro transforma tus archivos CSV en tablas HTML bonitas, buscables y filtrables. Con un código mínimo, visualiza tus datos, personaliza el formato, habilita descargas e incrusta la tabla sin problemas. ¡Mira la demostración y simplifica el manejo de tus datos hoy mismo!

Desarrollo

Aventuras en Código Legado: Una Odisea COBOL

2025-05-22

El mantenimiento de 200.000 líneas de código COBOL desenterró un tesoro de trucos ingeniosos y peculiaridades históricas. El autor descubrió numéricos en base 10, un análisis inteligente de cadenas usando definiciones de datos y una instrucción 'REDEFINES' usada para internacionalización (¡incluso con redefiniciones en español!). Se implementaron salidas anticipadas para la terminación abrupta del trabajo, y un archivo misteriosamente contenía los primeros 800 números naturales como constantes de cadena. La historia concluye con la revelación de que el comando 'dd' de UNIX se origina en la instrucción 'DD' de COBOL para la definición de datos, mostrando el legado inesperado de la programación de mainframes.

Desarrollo

arXivLabs: Colaboraciones Comunitarias en Funciones de arXiv

2025-05-21
arXivLabs: Colaboraciones Comunitarias en Funciones de arXiv

arXivLabs es un marco que permite a los colaboradores desarrollar y compartir nuevas funciones de arXiv directamente en el sitio web. Los participantes deben aceptar los valores de arXiv de apertura, comunidad, excelencia y privacidad de datos de usuario. ¿Tiene alguna idea para mejorar la comunidad de arXiv? Obtenga más información sobre arXivLabs.

Desarrollo

Optimización de renderizado de tablas iText Core: De 5 minutos a 7 segundos

2025-05-21
Optimización de renderizado de tablas iText Core: De 5 minutos a 7 segundos

El ingeniero Guust de Apryse optimizó el rendimiento de renderizado de tablas de iText Core. Al evitar cálculos repetidos de colapso de bordes y sobrecarga innecesaria de etiquetado, el tiempo de renderizado de una tabla de 50.000 celdas se redujo de 5 minutos a 7 segundos. Las optimizaciones se centraron en la función `CollapsedTableBorders#getVerticalBorder` y en el procesamiento de etiquetas, mejorando significativamente el rendimiento mediante el almacenamiento en caché, la eliminación de llamadas a funciones redundantes y la adición de etiquetas en bloque. Esta optimización se incluye en iText Core 9.1.0.

Desarrollo renderizado de PDF

Rocky Linux 10 adopta RISC-V: Un gran salto para el código abierto

2025-05-21

Prepárate para Rocky Linux 10. Esta versión marca un hito significativo: soporte oficial para la arquitectura RISC-V. Gracias a los esfuerzos colaborativos de la comunidad Fedora RISC-V y del AltArch SIG de Rocky, se incluirá una compilación riscv64gc, dirigida a plataformas como StarFive VisionFive 2, QEMU y SiFive HiFive Premier P550. Aunque algunas funciones pueden ser limitadas en ciertas plataformas como la P550, la funcionalidad lista para usar en VisionFive 2 y QEMU es un punto destacado. Esta iniciativa impulsada por la comunidad, iniciada a principios de 2024, muestra el poder de la colaboración de código abierto con los esfuerzos upstream de Fedora RISC-V.

Desarrollo

ACE-RISCV: Framework de Computación Confidencial de Código Abierto para RISC-V

2025-05-21
ACE-RISCV: Framework de Computación Confidencial de Código Abierto para RISC-V

ACE-RISCV es un proyecto de código abierto que proporciona un framework de computación confidencial con un monitor de seguridad formalmente verificado. Orientado a RISC-V con la portabilidad en mente, se centra en la verificación formal de la implementación del monitor de seguridad. El proyecto admite la atestación local y utiliza criptografía post-cuántica (PQC), incluyendo ML-KEM, SHA-384 y AES-GCM-256. Se proporcionan instrucciones detalladas de compilación y ejecución para una arquitectura RISC-V de 64 bits.

Desarrollo

P vs. PSPACE: ¿Es el espacio computacionalmente más poderoso que el tiempo?

2025-05-21
P vs. PSPACE: ¿Es el espacio computacionalmente más poderoso que el tiempo?

Una cuestión central en la teoría de la complejidad es la relación entre las clases de complejidad P y PSPACE. P abarca problemas resolubles en un tiempo razonable, mientras que PSPACE trata la complejidad espacial. La creencia predominante es que PSPACE es mayor que P, debido a la reutilización del espacio, a diferencia del tiempo. Probar esto requiere demostrar problemas en PSPACE irresolubles en tiempo polinomial. El artículo relata el avance de 1975 de Hopcroft, Paul y Valiant, mostrando la ligera ventaja del espacio sobre el tiempo, pero el progreso se estancó. El trabajo de Ryan Williams finalmente rompió el estancamiento, ofreciendo nuevas perspectivas para resolver el problema P vs. PSPACE.

Desarrollo

Appwrite Sites: Implementación y alojamiento de sitios web en un solo lugar

2025-05-21
Appwrite Sites: Implementación y alojamiento de sitios web en un solo lugar

Appwrite lanza Sites, un nuevo producto que te permite implementar y alojar sitios web y aplicaciones web directamente dentro de Appwrite. Olvídate de alternar entre múltiples plataformas y configuraciones complejas; simplemente construye, implementa y lanza. Sites admite sitios estáticos y aplicaciones SSR, integrando Git, una CDN global, protección DDoS y se integra perfectamente con los servicios de bases de datos, funciones, almacenamiento y autenticación de Appwrite. Hay varias plantillas implementables con un solo clic, con soporte para autohospedaje. Appwrite Sites es gratuito hasta el 1 de julio de 2025.

Google AI Studio: Desarrollo de aplicaciones de IA potenciado con Gemini 2.5 Pro

2025-05-21
Google AI Studio: Desarrollo de aplicaciones de IA potenciado con Gemini 2.5 Pro

Google AI Studio recibió una importante actualización, integrando el modelo Gemini 2.5 Pro para una generación de código significativamente mejorada. Los desarrolladores pueden crear e implementar rápidamente aplicaciones web impulsadas por IA utilizando prompts simples de texto, imagen o vídeo. La nueva versión también incorpora modelos multimodales como Imagen, Lyria RealTime y Veo, ofreciendo implementación con un solo clic en Cloud Run, y comparación y reversión convenientes de versiones de código. Además, el nuevo soporte de audio nativo y una herramienta de Contexto de URL mejoran la interactividad y la recuperación de información.

Desarrollo

Planificador Go: De Humilde a Poderoso

2025-05-21
Planificador Go: De Humilde a Poderoso

Esta entrada de blog profundiza en la evolución del planificador de Go, trazando su camino desde una ineficiente cola de ejecución global única hasta el modelo GMP (Goroutine, Machine, Processor) altamente eficiente. Se detallan los roles y mecanismos de cada componente en el modelo GMP, incluyendo la creación de goroutines, la preemption, el manejo de llamadas al sistema y el papel de netpoll en E/S de red y archivos. Se explican los mecanismos de preemption cooperativa y no cooperativa. Al diseccionar el código fuente del tiempo de ejecución de Go, los lectores obtienen una comprensión más profunda del modelo de concurrencia de Go, lo que les permite escribir programas concurrentes más eficientes.

Desarrollo Planificador

Componentes Web Storefront de Shopify: Integración de comercio electrónico simplificada

2025-05-21
Componentes Web Storefront de Shopify: Integración de comercio electrónico simplificada

Shopify ha lanzado los Componentes Web Storefront, un conjunto de componentes HTML que simplifican la integración de las capacidades de comercio electrónico de Shopify en cualquier sitio web. Muestra productos, colecciones y el proceso de pago con un mínimo de HTML. Estos componentes manejan las complejidades de la interacción con la API Storefront de Shopify, eliminando la necesidad de JavaScript complejo. Crea experiencias de compra personalizadas con CSS y HTML, adecuadas para integrar en contenido existente o construir páginas completamente nuevas.

LlamaDev: La nueva herramienta de gestión de monorepo de LlamaIndex

2025-05-21
LlamaDev: La nueva herramienta de gestión de monorepo de LlamaIndex

Mantener el monorepo de LlamaIndex con más de 650 paquetes de Python presentó desafíos significativos. Inicialmente utilizando Poetry para proyectos individuales y Pants para la orquestación, surgieron problemas de escala con la velocidad de compilación y el mantenimiento del servidor de caché. Para solucionar esto, el equipo de LlamaIndex creó LlamaDev, reemplazando Poetry con uv y gestionando internamente los grafos de dependencia y el disparo de pruebas. LlamaDev mejora drásticamente la velocidad de compilación, simplifica la depuración y mejora la experiencia del desarrollador, facilitando la participación de contribuyentes en el proyecto.

Desarrollo

Langfuse lanza paneles personalizables: Desatando el poder de los datos de uso de LLM

2025-05-21
Langfuse lanza paneles personalizables: Desatando el poder de los datos de uso de LLM

En el tercer día del lanzamiento de Langfuse, se introdujeron paneles personalizables: una forma poderosa de visualizar el uso de LLM directamente en la interfaz de usuario de Langfuse. Ya sea que desee rastrear las tendencias de latencia, monitorear los comentarios de los usuarios o correlacionar el costo con el rendimiento, los nuevos paneles le permiten crear los gráficos que necesita, justo donde los necesita. Para aquellos que prefieren su propia pila de análisis, las mismas capacidades de consulta están disponibles a través de su API. Esta publicación detalla el recorrido desde la idea del producto hasta la implementación técnica, las pruebas y el lanzamiento, compartiendo las lecciones aprendidas en la construcción de información flexible y en tiempo real sobre sus canalizaciones de LLM. Al abstraer el modelo de datos, construir un motor de consulta flexible y de alto rendimiento y un constructor de paneles, Langfuse entregó con éxito paneles personalizables, iterando a través de pruebas beta y comentarios de los usuarios para agregar más componentes de gráficos, widgets redimensionables, herramientas mejoradas e incluso paneles administrados por Langfuse, ofreciendo temas predefinidos valiosos.

Desarrollo Paneles

arXivLabs: Experimentación con Colaboración Comunitaria

2025-05-21
arXivLabs: Experimentación con Colaboración Comunitaria

arXivLabs es un marco para colaborar en nuevas funciones de arXiv, directamente en el sitio web. Las personas y organizaciones participantes deben compartir los valores de arXiv de apertura, comunidad, excelencia y privacidad de los datos del usuario. ¿Tienes una idea para mejorar la comunidad de arXiv? Obtén más información sobre arXivLabs.

Desarrollo

Visualizando el grafo de inclusión de Chromium: Una aventura GraphML de 150 MB

2025-05-21
Visualizando el grafo de inclusión de Chromium: Una aventura GraphML de 150 MB

Esta publicación detalla la visualización del enorme grafo de inclusión de Chromium utilizando clang-include-graph, una herramienta de línea de comandos. El proceso implicó construir Chromium para generar el archivo compile_commands.json y luego usar clang-include-graph para producir un archivo GraphML de 150 MB. Este archivo, que contiene más de 140.000 nodos y 1,3 millones de aristas, se visualizó con Gephi. Los scripts de Python analizaron el grafo, revelando estadísticas interesantes, como un componente fuertemente conectado de 92 nodos responsable del 99% de los ciclos. El autor explora varios diseños de visualización y analiza los desafíos de trabajar con un conjunto de datos tan grande.

Desarrollo

Las llamadas a funciones LLM no escalan; la orquestación de código es más simple y eficaz

2025-05-21
Las llamadas a funciones LLM no escalan; la orquestación de código es más simple y eficaz

Alimentar la salida completa de las llamadas a herramientas de vuelta a los LLM es costoso y lento. Este artículo argumenta que los esquemas de salida, que permiten la recuperación de datos estructurados, permiten que los LLM organicen el procesamiento mediante código generado: un enfoque más simple y eficaz. Los métodos tradicionales, donde las salidas de las herramientas se devuelven al LLM como mensajes para determinar el siguiente paso, funcionan bien con conjuntos de datos pequeños, pero fallan a escala real (por ejemplo, grandes blobs JSON de los servidores MCP Linear e Intercom). El artículo propone la ejecución de código como un método fundamental de procesamiento de datos, utilizando variables como memoria y código para orquestar varias llamadas a funciones para el procesamiento de datos escalable, superando los problemas de costo, velocidad y posible pérdida de datos de los LLM que manejan grandes conjuntos de datos. Esto requiere entornos de tiempo de ejecución de IA seguros y sin estado, actualmente en desarrollo inicial.

Devstral: LLM de código abierto supera a GPT-4.1-mini en el benchmark de ingeniería de software

2025-05-21
Devstral: LLM de código abierto supera a GPT-4.1-mini en el benchmark de ingeniería de software

Mistral AI y All Hands AI han colaborado para lanzar Devstral, un modelo de lenguaje grande (LLM) agente para tareas de ingeniería de software. Devstral destaca en el benchmark SWE-Bench Verified, alcanzando una puntuación superior al 46,8%, más de un 6% por encima de los modelos de código abierto anteriores e incluso superando a GPT-4.1-mini. Aborda problemas complejos de ingeniería de software, como comprender las relaciones contextuales dentro de grandes bases de código e identificar errores sutiles. Devstral es ligero, se ejecuta en una sola RTX 4090 o un Mac con 32 GB de RAM, y admite la implementación local, el uso empresarial y la integración con Copilot. El modelo es de código abierto y está disponible a través de API y varias opciones de descarga.

Desarrollo

Edición de texto colaborativa sin CRDT ni OT

2025-05-21

Esta entrada de blog presenta un nuevo enfoque para la edición de texto colaborativa que evita las complejidades de los Tipos de Datos Replicados Libres de Conflictos (CRDT) y la Transformación Operacional (OT). La idea principal es asignar ID globales únicos a cada carácter y usar operaciones "insertar después". El servidor actualiza su estado literalmente en base a estas operaciones, mientras que los clientes emplean la reconciliación del servidor para actualizaciones locales optimistas. Este enfoque es más simple y flexible que CRDT/OT, permitiendo operaciones y funciones personalizadas, como el manejo de texto enriquecido y los controles de acceso. Una biblioteca npm complementaria, Articulated, ayuda en la implementación.

Reanudación entre dispositivos de Windows 11: Adiós a las experiencias interrumpidas

2025-05-21
Reanudación entre dispositivos de Windows 11: Adiós a las experiencias interrumpidas

Microsoft presentó una nueva función de reanudación entre dispositivos para Windows 11 en la Build 2025, similar a la función Handoff de Apple. Esto permite a los desarrolladores continuar el uso de la aplicación sin problemas entre dispositivos. Una demostración mostró Spotify, permitiendo a los usuarios reanudar una canción en su PC con Windows desde donde la dejaron en su teléfono. También se mostró WhatsApp. Esta función, aparentemente sucesora del Proyecto Roma, promete experiencias más fluidas entre dispositivos y una mayor capacidad de descubrimiento de aplicaciones en Windows para desarrolladores externos.

Bloques, Procs y Lambdas en Ruby: Diferencias Sutil en Closures

2025-05-21
Bloques, Procs y Lambdas en Ruby: Diferencias Sutil en Closures

Este artículo profundiza en las diferencias entre bloques, procs y lambdas en Ruby. Si bien todos agrupan código para su ejecución, difieren sutilmente: Los Procs son objetos, asignables y llamables con métodos, a diferencia de los bloques que son solo parte de la sintaxis de llamada a métodos; una llamada a método permite como máximo un bloque, pero varios procs; las lambdas verifican el conteo de argumentos, los procs no; y las lambdas y los procs manejan la palabra clave `return` de manera diferente. El artículo también explica los cierres, el origen de los nombres 'proc' y 'lambda', y aborda el cálculo lambda y las funciones anónimas.

Desarrollo

Optimización en Tiempo de Enlace (LTO): ¿El Siguiente Nivel de Optimización del Compilador?

2025-05-21
Optimización en Tiempo de Enlace (LTO): ¿El Siguiente Nivel de Optimización del Compilador?

Este artículo explora la Optimización en Tiempo de Enlace (LTO), una técnica que mejora el rendimiento del programa realizando optimizaciones durante la fase de enlace. Los compiladores tradicionales optimizan dentro de archivos individuales, mientras que LTO permite optimizaciones más completas entre archivos, como la inserción de funciones y la mejora de la localidad del código. Si bien LTO puede producir mejoras significativas en el rendimiento (por ejemplo, una reducción del 9,2% en el tiempo de ejecución y una reducción del 20% en el tamaño del binario en la prueba del proyecto ProjectX), también requiere tiempos de compilación y enlace más largos y más memoria. El autor compara experimentos en ProjectX y ffmpeg para ilustrar las ventajas y desventajas de LTO y sugiere probar LTO en proyectos que no están optimizados agresivamente para la velocidad, concluyendo que las ganancias de rendimiento finales dependen del proyecto específico.

evolved.lua: Una biblioteca ECS rápida y flexible para Lua

2025-05-21
evolved.lua: Una biblioteca ECS rápida y flexible para Lua

evolved.lua es una biblioteca de Sistema de Entidad-Componente (ECS) rápida y flexible para Lua. Utiliza un enfoque basado en arquetipos para almacenar entidades y sus componentes, empleando una Estructura de Matrices (SoA) para una iteración y procesamiento eficientes. La biblioteca admite consultas, operaciones diferidas, operaciones por lotes y funciones como un constructor de entidades para la creación simplificada de sistemas complejos. Instale a través de luarocks o clone el repositorio; la documentación incluye una descripción general, ejemplos y una hoja de trucos.

Desarrollo
1 2 80 81 82 84 86 87 88 214 215