Category: Desarrollo

Yandex lanza Perforator: Perfilado continuo sin afectar el rendimiento de producción

2025-02-01
Yandex lanza Perforator: Perfilado continuo sin afectar el rendimiento de producción

Yandex ha lanzado Perforator, una herramienta de perfilado continuo de código abierto basada en la tecnología eBPF. Perforator recopila perfiles de CPU de entornos de producción sin afectar el rendimiento. Ya implementada en decenas de miles de servidores de Yandex, ayuda a los desarrolladores a identificar y resolver problemas de rendimiento. Admite lenguajes como C++, C, Go y Rust (con soporte experimental para Java y Python), cuenta con almacenamiento escalable, un lenguaje de consulta fácil de usar e interfaz de usuario, y generación de perfiles sPGO para la optimización guiada por perfil (PGO). Perforator tiene un consumo mínimo de recursos y se implementa fácilmente en diversos entornos, desde portátiles hasta clústeres de Kubernetes.

Desarrollo

La complejidad de Neovim: Dos años después, echo de menos el Vim simple

2025-02-01
La complejidad de Neovim: Dos años después, echo de menos el Vim simple

Después de casi dos años usando Neovim, el autor ha descubierto que su complejidad es abrumadora. Si bien Neovim es más rápido y potente, la gestión de sus plugins y su configuración son mucho más intrincadas que la simplicidad del Vim original. El ecosistema de plugins de Neovim es rico, pero requiere una extensa configuración y coordinación para funcionar correctamente, un contraste llamativo con la sencillez de Vim. El autor espera un Neovim futuro que priorice la experiencia del usuario, reduciendo la configuración innecesaria y ofreciendo más funcionalidades listas para usar.

Desarrollo Gestión de plugins

Generando gráficos de funciones como árboles binarios

2025-02-01

Esta publicación describe un algoritmo que utiliza Python y la biblioteca NetworkX para generar un árbol binario. El algoritmo se basa en una función f(x) = [(x << 1) + 2, (x << 1) + 3], construyendo un gráfico iterando sobre un dominio numérico y utilizando la salida de la función para definir conexiones entre nodos. La publicación incluye una implementación de código detallada y explicaciones matemáticas, demostrando cómo una función matemática se puede transformar en una representación gráfica.

Desarrollo

Hoppscotch: Una herramienta ligera para el desarrollo de APIs

2025-02-01
Hoppscotch: Una herramienta ligera para el desarrollo de APIs

Hoppscotch es una herramienta ligera y rápida para el desarrollo de APIs, con una interfaz de usuario minimalista y funciones completas. Admite varios métodos HTTP, personalización de temas, instalación de PWA, WebSocket, Server-Sent Events, Socket.IO, MQTT y GraphQL. Las funciones avanzadas incluyen historial de solicitudes, gestión de colecciones, scripts previos a la solicitud, pruebas posteriores a la solicitud, variables de entorno, colaboración en equipo y gestión de espacios de trabajo, lo que permite pruebas y desarrollo de APIs eficientes. Los usuarios pueden crear y gestionar solicitudes de API fácilmente y compartir y colaborar de varias maneras.

¿La experta en marketing de la FreeBSD Foundation no usa FreeBSD?

2025-02-01

En la EuroBSDCon 2024, Kim McMahon, experta en marketing contratada por la FreeBSD Foundation, dio una presentación defendiendo FreeBSD, pero admitió usar una Mac y expresó desdén por los usuarios de Linux y Windows. Esto provocó indignación en la comunidad, acusándola de hipocresía y de ser una 'falsa profeta'. El artículo critica a las grandes empresas tecnológicas por beneficiarse de las comunidades de código abierto, al tiempo que restringen la libertad y violan la privacidad, expresando preocupaciones sobre el futuro del código abierto.

Desarrollo

No crees tu propia criptografía: por qué los desarrolladores siguen fallando en el cifrado

2025-02-01
No crees tu propia criptografía: por qué los desarrolladores siguen fallando en el cifrado

Los desarrolladores a menudo creen erróneamente que usar bibliotecas de criptografía de bajo nivel evita los riesgos de 'crear su propia criptografía'. Este artículo argumenta que muchos desarrolladores no entienden la criptografía, e incluso usar bibliotecas existentes no garantiza la seguridad si se cometen errores en el diseño del protocolo o en la gestión de claves. El autor presenta ejemplos del mundo real y destaca la importancia de una gestión de claves robusta y la necesidad de que los desarrolladores comprendan a fondo y tengan una revisión experta de sus implementaciones criptográficas.

Desarrollo

Escapa de los Gigantes: Abrazando la Libertad y los Retos de Linux

2025-02-01

Este artículo profundiza en las razones para cambiar de sistemas operativos propietarios a Linux. Linux, basado en principios de código abierto, brinda a los usuarios control completo sobre su entorno informático y ofrece una gran cantidad de aplicaciones gratuitas. Si bien Linux puede presentar desafíos, como una curva de aprendizaje pronunciada y problemas de compatibilidad, su sólido soporte comunitario, alta capacidad de personalización y protección de la privacidad del usuario lo convierten en una opción muy atractiva. El artículo también presenta distribuciones de Linux fáciles de usar para principiantes (como Ubuntu, Linux Mint y Fedora) y algunas alternativas de software de código abierto comúnmente utilizadas.

Desarrollo

El terminal Linux de Android 16 ahora ejecuta aplicaciones gráficas de Linux

2025-02-01
El terminal Linux de Android 16 ahora ejecuta aplicaciones gráficas de Linux

La ambición de Google de transformar Android en un sistema operativo de PC completo está dando un gran paso. La aplicación Terminal Linux en la próxima versión beta de Android 16 ahora tiene la capacidad de ejecutar aplicaciones gráficas de Linux, incluyendo Doom. Esta impresionante hazaña se debe a mejoras en la aceleración de hardware y el soporte del servidor de visualización. Aunque todavía no está disponible en la última versión beta, esta funcionalidad, que utiliza el Android Virtualization Framework (AVF), allana el camino para ejecutar programas de escritorio más complejos en Android, potencialmente cerrando la brecha entre Android y Chrome OS.

¿Por qué Tracebit eligió C#? La historia de la pila tecnológica de una startup de seguridad

2025-02-01
¿Por qué Tracebit eligió C#? La historia de la pila tecnológica de una startup de seguridad

Tracebit, un producto de seguridad SaaS B2B, eligió sorprendentemente C# en lugar de alternativas populares como Python o Go. El autor detalla el razonamiento detrás de esta decisión, considerando factores como la productividad, la disponibilidad de código abierto, las capacidades multiplataforma, la popularidad, la seguridad de memoria, la recolección de basura, el tipado estático, la estabilidad, las bibliotecas integradas y las herramientas. Los puntos fuertes de C# en productividad, estabilidad y un ecosistema rico resultaron cruciales para la rápida iteración y el crecimiento de Tracebit, especialmente en la gestión de una gran base de código y la colaboración eficaz dentro de un equipo.

Servidor Mirascope MCP: Integración segura de LLMs con servicios locales

2025-02-01
Servidor Mirascope MCP: Integración segura de LLMs con servicios locales

El servidor MCP (Protocolo de Contexto de Modelo) de Mirascope permite exponer recursos, herramientas e indicaciones a clientes LLM a través de un protocolo estandarizado. Este artículo muestra cómo construir un servidor simple de recomendación de libros usando MCP, mostrando cómo registrar herramientas, recursos e indicaciones. Se detallan dos estilos de definición: decorador y función-primero. El servidor MCP admite varias funciones, incluidas funciones síncronas y asíncronas, opciones de configuración flexibles y compatibilidad con herramientas e indicaciones Mirascope estándar, lo que permite una integración segura y confiable entre clientes LLM y servicios locales.

Desarrollo

Falsedades que los programadores creen sobre los punteros nulos

2025-02-01
Falsedades que los programadores creen sobre los punteros nulos

Este artículo desmiente ideas erróneas comunes sobre los punteros nulos. Explora falacias que van desde las simples (la desreferencia de un puntero nulo no siempre bloquea el programa inmediatamente) hasta las extrañas (la dirección de un puntero nulo no siempre es 0). El autor argumenta en contra de depender de las optimizaciones del compilador o de las características del hardware, destacando los peligros de asumir un comportamiento consistente entre plataformas. El artículo enfatiza que C debe tratarse como un lenguaje de alto nivel, no solo como "ensamblador portátil", y anima a aprovechar las funciones de seguridad de memoria de los lenguajes modernos para obtener un código más robusto y portable.

Desarrollo puntero nulo

Herramienta de Recopilación de Datos de Código Abierto RudderStack Recopila Contraseñas

2025-02-01
Herramienta de Recopilación de Datos de Código Abierto RudderStack Recopila Contraseñas

Se ha descubierto que la herramienta de recopilación de datos de código abierto RudderStack tiene una grave vulnerabilidad de seguridad que, en ciertas circunstancias, recopila las contraseñas de los usuarios. La vulnerabilidad se debe a su función de seguimiento automático, que recopila todos los atributos DOM de los elementos en los que hace clic un usuario. Estos atributos pueden contener información confidencial, como contraseñas. Esto refleja una vulnerabilidad similar encontrada en Mixpanel hace dos años. Si bien RudderStack ha corregido parcialmente el problema, la corrección está incompleta y aún existen riesgos potenciales. Se recomienda a los usuarios que procedan con precaución y que controlen las actualizaciones.

Sparrow: Implementación ligera de Apache Arrow en C++

2025-02-01
Sparrow: Implementación ligera de Apache Arrow en C++

Sparrow es una nueva biblioteca C++ diseñada para simplificar la integración del formato columnar de Apache Arrow. Creada para satisfacer las necesidades de proyectos como ArcticDB, proporciona una API C++ ligera y moderna, centrada en la lectura y escritura de datos Arrow. Aprovechando iteradores, rangos y conceptos de la biblioteca estándar de C++, Sparrow ofrece una interfaz limpia y fácil de usar, facilitando la integración con proyectos C++ existentes. Admite varios tipos de datos, incluido el manejo de valores nulos, y proporciona constructores para simplificar la creación de estructuras de datos complejas.

Temporizadores Watchdog: Un Mal Necesario (o Bien Esencial)

2025-01-31

Este artículo explora el papel crítico de los temporizadores watchdog en los sistemas embebidos. Usando el fallo de la misión espacial Clementine debido a un temporizador watchdog mal implementado y la necesidad de reiniciar un extractor de cocina como ejemplos, el autor enfatiza la importancia de los temporizadores watchdog fiables en la prevención de fallos de software. El artículo detalla varios diseños de temporizadores watchdog, incluyendo opciones internas y externas, y ofrece estrategias para construir temporizadores watchdog altamente fiables. Esto incluye el uso de watchdogs con ventana, watchdogs externos independientes de la CPU y la monitorización del estado de todas las tareas en un sistema multitarea. El autor aboga por la inclusión de temporizadores watchdog incluso en sistemas aparentemente simples, defendiendo técnicas como reinicios periódicos de estructuras de datos para aumentar la fiabilidad.

Ejecutando Linux en un PDF: Un emulador RISC-V en tu navegador

2025-01-31
Ejecutando Linux en un PDF: Un emulador RISC-V en tu navegador

El desarrollador @ading2210 ha logrado la notable hazaña de ejecutar un sistema Linux dentro de un archivo PDF. Aprovechando el motor Javascript dentro de los PDF y una versión compilada en asm.js del emulador RISC-V TinyEMU, se crea un entorno Linux funcional. La salida se muestra usando caracteres ASCII, y la entrada se gestiona mediante un teclado virtual. Si bien los tiempos de arranque son lentos (30-60 segundos), el proyecto muestra las capacidades sorprendentes del formato PDF. El código es de código abierto y admite sistemas de 32 y 64 bits.

Desarrollo

Experimento de Programación Asíncrona: Integrando Lua con libuv y Módulos C

2025-01-31
Experimento de Programación Asíncrona: Integrando Lua con libuv y Módulos C

Este proyecto explora la integración de módulos compilados en C con scripts Lua, utilizando la biblioteca libuv para operaciones asíncronas. El proyecto incluye el intérprete Lua, la biblioteca libuv y módulos C personalizados, demostrando cómo compilar y cargar módulos C en Lua, resultando en un servidor HTTP simple. La estructura del proyecto es clara, con instrucciones detalladas de instalación y compilación, además de ejemplos de código, haciéndolo ideal para aprender sobre la integración de Lua y C y técnicas de programación asíncrona.

El triunfo inesperado del muestreo por rechazo: una inmersión profunda en las pruebas de rendimiento

2025-01-31

Mientras optimizaba su trazador de rayos, PSRayTracing, el autor profundizó en las pruebas de rendimiento para algoritmos que generan vectores aleatorios dentro de un círculo/esfera unitaria. Inicialmente, creía que una solución analítica sería más eficiente que el muestreo por rechazo. Sin embargo, los benchmarks en Python y C++, en varios compiladores y plataformas de hardware, arrojaron resultados sorprendentes: con las optimizaciones del compilador activadas, el muestreo por rechazo a menudo superó al enfoque analítico. El autor concluye que las pruebas de rendimiento prácticas son cruciales al optimizar el código, evitando depender de suposiciones teóricas, ya que las estrategias de optimización del compilador y las variaciones de hardware afectan significativamente el rendimiento final.

arXivLabs: Proyectos experimentales con colaboradores de la comunidad

2025-01-31
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 alguna idea para un proyecto que agregue valor a la comunidad de arXiv? Obtenga más información sobre arXivLabs.

arXivLabs: Experimentación con Colaboración Comunitaria

2025-01-31
arXivLabs: Experimentación con Colaboración Comunitaria

arXivLabs es un marco que permite a los colaboradores desarrollar y compartir nuevas funciones directamente en el sitio web de arXiv. Las personas y 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 respeten. ¿Tienes una idea para un proyecto que agregará valor a la comunidad de arXiv? Aprende más sobre arXivLabs.

Desarrollo plataforma abierta

La Clase Singleton de Ruby: Una Inmersión Profunda

2025-01-31

Este artículo profundiza en la clase singleton de Ruby, una característica crucial para su semántica orientada a objetos, a pesar de haber carecido de un nombre oficial durante años. Explica que una clase singleton no es realmente un singleton o una clase, sino una solución elegante para el problema de adjuntar métodos a una clase específica en un lenguaje puramente orientado a objetos. El artículo compara las soluciones en Python y Smalltalk, detallando el mecanismo de Ruby para implementar métodos de clase usando clases singleton, incluyendo tres sintaxis para definir métodos de clase singleton. Finalmente, explora por qué Ruby eligió este enfoque, destacando la consistencia y la importancia de las clases singleton dentro del sistema orientado a objetos de Ruby.

Desarrollo Clase Singleton

El Enigma del Desenrollamiento de la Pila en Perf

2025-01-31
El Enigma del Desenrollamiento de la Pila en Perf

Perf, una poderosa herramienta de análisis de rendimiento, utiliza interrupciones de desbordamiento del contador PMU para capturar estados de subprocesos para la creación de perfiles. Sin embargo, el desenrollamiento de la pila presenta un desafío. Los compiladores modernos omiten los punteros de marco de forma predeterminada, lo que dificulta el rastreo de la pila. Si bien es posible recompilar con -fno-omit-frame-pointer, es costoso y puede provocar incompatibilidades con las bibliotecas del sistema. DWARF ofrece una alternativa, pero su complejidad y la sobrecarga de rendimiento son considerables, lo que llevó a Linus Torvalds a rechazar su uso en el desenrollamiento de la pila del kernel. Por lo tanto, Perf emplea un compromiso: copiar solo la parte superior de la pila al espacio de usuario para el desenrollamiento. Esto limita el tamaño de la pila (65.528 bytes), pero equilibra eficazmente el rendimiento y la practicidad.

Biblioteca de scripting en Go: script — Simplificando tareas de administración del sistema

2025-01-31
Biblioteca de scripting en Go: script — Simplificando tareas de administración del sistema

La biblioteca `script` para Go proporciona capacidades similares a los scripts shell para administradores de sistemas, incluyendo la lectura de archivos, la ejecución de subprocesos, el conteo de líneas, la coincidencia de cadenas y más. Procesa flujos de datos utilizando un enfoque de canalización con una API limpia, haciendo que la programación en Go sea tan eficiente y conveniente como los scripts shell. `script` admite una amplia gama de operaciones, desde E/S de archivos y solicitudes HTTP hasta la ejecución de comandos externos y filtros personalizados, lo que simplifica considerablemente las tareas de administración del sistema. Por ejemplo, replica fácilmente la funcionalidad de `grep` y admite la ejecución concurrente para un mejor rendimiento.

Desarrollo

uscope: Un depurador gráfico de código nativo para Linux

2025-01-31
uscope: Un depurador gráfico de código nativo para Linux

uscope es una herramienta de depuración gráfica de código nativo y cadena de herramientas de introspección para Linux, actualmente en desarrollo inicial. El autor planea agregar características como soporte para múltiples lenguajes de programación (C, Zig, C++, Go, Rust, Odin, Jai, etc.), depuración de programas multihilo, navegación de código, depuración remota y mucho más. El proyecto tiene como objetivo construir un sistema de depuración flexible y extensible con una interfaz de usuario amigable. El autor también planea construirlo como una biblioteca para que otros desarrolladores puedan construir herramientas más interesantes sobre él.

Desarrollo

VoidDB supera a LMDB, BoltDB, LevelDB y BadgerDB en pruebas de rendimiento

2025-01-31
VoidDB supera a LMDB, BoltDB, LevelDB y BadgerDB en pruebas de rendimiento

Pruebas de rendimiento recientes revelan el rendimiento superior de VoidDB en comparación con bases de datos integradas líderes como LMDB, BoltDB, LevelDB y BadgerDB. VoidDB supera significativamente a la competencia en las operaciones Put, Get y GetNext. Específicamente, la operación Put de VoidDB es casi cuatro veces más rápida que la de BoltDB y casi tres veces más rápida que la de LevelDB. Esto destaca el rendimiento convincente de VoidDB en escenarios de alto rendimiento, ofreciendo a los desarrolladores una opción de base de datos altamente eficiente y confiable.

MillenniumDB: Un novedoso sistema de gestión de bases de datos orientado a grafos

2025-01-31
MillenniumDB: Un novedoso sistema de gestión de bases de datos orientado a grafos

MillenniumDB es un sistema de gestión de bases de datos orientado a grafos desarrollado por el Millennium Institute for Foundational Research on Data (IMFD). Admite varios modelos de grafos, ofreciendo un soporte bastante completo para RDF/SPARQL y un lenguaje de consulta de grafos de propiedades personalizado. Si bien aún se encuentra en desarrollo activo y no está listo para producción, proporciona una funcionalidad sustancial y planea agregar soporte para GQL próximamente. Se proporcionan instrucciones detalladas de instalación, configuración y uso, incluida la implementación de Docker.

Linux 6.14: Mejoras en la Virtualización KVM

2025-01-31

El próximo kernel de Linux 6.14 incluye varias mejoras en el subsistema de Máquina Virtual basada en Kernel (KVM). Las actualizaciones incluyen: eliminación de vaciados de TLB redundantes en CPUs AMD; revisión de la infraestructura de funciones KVM x86 CPUID para un mejor seguimiento de las capacidades de vCPU; trabajo continuo en el soporte de máquinas virtuales Intel Trust Domain Extensions (TDX); manejo refinado de VM-exit para una mejor paridad entre VMX y SVM; y soporte añadido para las extensiones Zabha, Svvptc y Ziccrse para invitados RISC-V KVM. Estos cambios prometen un mejor rendimiento y estabilidad para las máquinas virtuales.

Desarrollo

Construyendo mallas con incrustación esférica: un nuevo enfoque para la reconstrucción de superficies

2025-01-31

Este artículo explora un nuevo enfoque para la reconstrucción de superficies 3D: la incrustación esférica. Este método proyecta una nube de puntos en una esfera y luego usa el casco convexo para construir una malla, abordando los problemas de huecos que los métodos tradicionales pueden encontrar al manejar formas complejas y datos faltantes. Si bien este método muestra algunas ventajas al procesar el modelo Stanford Bunny, especialmente en garantizar la integridad de la malla, todavía hay margen de mejora en eficiencia y precisión. En comparación con métodos tradicionales como la reconstrucción de superficie de Poisson, requiere más iteraciones y ajuste de parámetros para lograr resultados ideales. El artículo detalla el proceso de implementación del algoritmo y demuestra el rendimiento del algoritmo bajo diferentes parámetros con ejemplos de código.

FOSDEM 2025: Un vistazo a la pista de dispositivos móviles de código abierto

2025-01-31
FOSDEM 2025: Un vistazo a la pista de dispositivos móviles de código abierto

FOSDEM, un evento gratuito para desarrolladores de software en Bruselas, Bélgica (1 y 2 de febrero de 2025), contará con una pista dedicada a 'FOSS en dispositivos móviles'. Esta sesión de medio día (1 de febrero, 14:55 - 19:00) albergará numerosas charlas sobre desarrollo móvil de código abierto. Además de las charlas, varios stands de proyectos ofrecen oportunidades para establecer contactos y colaborar. Una reunión informal está prevista para el domingo 2 de febrero a las 14:00. ¡No te pierdas la oportunidad de conectar con otros desarrolladores y conseguir algunas pegatinas!

Desarrollo Desarrollo Móvil

Restricciones de aplicación de sugerencias de código de GitHub: Problemas que puedes encontrar

2025-01-31
Restricciones de aplicación de sugerencias de código de GitHub: Problemas que puedes encontrar

Este fragmento de la documentación de GitHub enumera varias restricciones encontradas al aplicar sugerencias de código, como ningún cambio de código, solicitudes de extracción cerradas, visualización de un subconjunto de cambios, aplicación de una sola sugerencia por línea, aplicación a líneas eliminadas, sugerencias inválidas y otras restricciones temporales. Estas limitaciones tienen como objetivo mantener la integridad y la coherencia de la base de código y garantizar la aplicación eficaz de las sugerencias.

ldump: Un serializador Lua para estructuras de datos complejas

2025-01-31
ldump: Un serializador Lua para estructuras de datos complejas

ldump es un serializador Lua robusto capaz de manejar estructuras de datos complejas, incluyendo referencias circulares, funciones (incluso con upvalues), metatablas, corrutinas y datos de usuario. Serializa datos en código Lua ejecutable, deserializado mediante `load(data)()`. ldump prioriza la funcionalidad y la flexibilidad sobre la velocidad y el tamaño, lo que lo hace ideal para escenarios que requieren guardar estados de juego complejos. Si bien la salida es grande, los algoritmos de compresión modernos pueden reducir significativamente su tamaño. Es compatible con Lua 5.1 a 5.4 y LuaJIT, y se ha probado exhaustivamente en casos límite.

Desarrollo
1 2 172 173 174 176 178 179 180 214 215