Category: Desarrollo

Observabilidad para GitHub Actions con OpenTelemetry

2025-06-15
Observabilidad para GitHub Actions con OpenTelemetry

Esta guía muestra cómo lograr una observabilidad de extremo a extremo de sus pipelines de CI/CD utilizando OpenTelemetry para monitorear GitHub Actions. Al configurar el receptor GitHub del OpenTelemetry Collector, puede recopilar rastros y métricas de sus workflows, lo que le permite identificar cuellos de botella, depurar errores y analizar dependencias. La guía proporciona una configuración paso a paso, incluyendo la configuración de un webhook de GitHub, la instalación del OpenTelemetry Collector, la configuración de receptores y procesadores, y el manejo de la autenticación. Se incluyen fragmentos de configuración YAML. Finalmente, estos datos se envían a una plataforma de observabilidad como SigNoz para su visualización y análisis.

Desarrollo

Lisp: Un Medio Creativo para Programadores

2025-06-15

Este ensayo argumenta que Lisp no es solo un lenguaje de programación, sino un medio creativo para programadores, similar a la escritura o al arte. El autor sostiene que una buena programación, como la escritura, implica exploración y descubrimiento, seguidos del refinamiento de la presentación. La naturaleza dinámica de Lisp lo hace ideal para la experimentación e iteración, permitiendo a los programadores ajustar y mejorar su código al igual que un escritor revisa un manuscrito. Usando ejemplos como la cartografía y la escritura, el autor ilustra la interacción entre descubrimiento y refinamiento, criticando el enfoque de priorización del rendimiento en el diseño de lenguajes de programación como algo que perjudica la creatividad y la flexibilidad. El autor aboga por un enfoque más flexible y exploratorio para el desarrollo de software, reflejando el espíritu de las metodologías Agile.

Saltando la Seguridad: Descifrando el Mecanismo de Actualización de una VM para Obtener Flags Fácilmente

2025-06-15
Saltando la Seguridad: Descifrando el Mecanismo de Actualización de una VM para Obtener Flags Fácilmente

Un estudiante descubrió que los archivos de actualización (*.gpg) en una máquina virtual de un curso de seguridad contenían tokens para enviar tareas. Al analizar el programa de actualización `installUpdate`, descubrió que usaba descifrado GPG, dependiendo de los archivos `/root/.vmPassphrase` y `/root/.gnupg`. Montando el disco de la VM, el estudiante obtuvo estos archivos, descifró las actualizaciones, extrajo los tokens y completó las tareas anticipadamente. Las actualizaciones contenían código Java que generaba tokens encriptados con AES. El autor señala que este ataque dependía del acceso completo al disco de la VM y sugiere usar VMs remotas como mejora. A pesar de la finalización anticipada, el autor enfatiza la importancia del proceso de aprendizaje y la finalización del trabajo del curso.

Desarrollo

ICONIC: Elegante iconos de habilidades para READMEs de GitHub

2025-06-15
ICONIC: Elegante iconos de habilidades para READMEs de GitHub

ICONIC es una biblioteca centrada en desarrolladores con iconos de habilidades elegantes con forma de burbuja, diseñados para READMEs de GitHub, portafolios y currículums. Ofrece iconos de burbuja claros y estéticamente agradables, variantes de tema claro y oscuro y fácil integración en Markdown/HTML. Además, incluye una API de vista previa HTML (backend Django) y SVGs descargables para mostrar tus habilidades sin esfuerzo.

arXivLabs: Proyectos experimentales con colaboradores de la comunidad

2025-06-15
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 respalden. ¿Tienes una idea para un proyecto que agregue valor a la comunidad de arXiv? Obtén más información sobre arXivLabs.

Desarrollo

Cumbre de Desarrolladores Core de Python: JIT, Hilos Virtuales y el Futuro

2025-06-15
Cumbre de Desarrolladores Core de Python: JIT, Hilos Virtuales y el Futuro

La cumbre anual de desarrolladores core de Python presentó debates apasionantes. Los ingenieros de Meta exploraron compiladores JIT conectables, con el objetivo de simplificar el desarrollo mediante nuevas APIs. Las ideas de Java impulsaron debates sobre hilos virtuales para Python, aumentando la concurrencia. La cumbre también incluyó debates sobre operadores de fusión nula, herramientas de codificación asistida por IA y la filosofía 'peor es mejor'. Finalmente, los desarrolladores pidieron centrarse en los benchmarks de memoria y profundizaron en la evolución futura del sistema de tipos de T-strings.

Desarrollo

Cómo recuperar iconos de aplicaciones con formas extrañas en macOS 26 Tahoe

2025-06-15
Cómo recuperar iconos de aplicaciones con formas extrañas en macOS 26 Tahoe

macOS 26 Tahoe reemplazó los iconos de aplicaciones con formas inusuales en el Dock por los iconos redondeados de iOS, un cambio que disgustó a muchos usuarios. Este artículo proporciona una solución para que tanto usuarios como desarrolladores puedan restaurar las formas personalizadas de los iconos. Los usuarios pueden reemplazar el archivo .icns dentro del paquete de la aplicación; los desarrolladores pueden usar NSApplication.shared.dockTile.contentView para cambiar el icono en tiempo de ejecución. ¡Recupera la gloria de tu Dock!

De SQL Server a Almacenamiento Clave-Valor: Una autopsia de una reescritura de base de datos fallida

2025-06-15

Un desarrollador senior relata su experiencia con una reescritura de base de datos en una empresa anterior. El sistema original, que usaba SQL Server, sufría de cuellos de botella de rendimiento y frecuentes caídas debido a procedimientos almacenados complejos. La reescritura optó por almacenamientos clave-valor simples, pero debido a la incompatibilidad del modelo de datos y la falta de soporte para transacciones, las operaciones de E/S se dispararon, el rendimiento empeoró y se introdujo un complejo sistema de puntos de control. La reescritura finalmente no resolvió los problemas originales y creó nuevos desafíos. Este relato humorístico reflexiona sobre la importancia de la selección de tecnología y el diseño de arquitectura, y el impacto negativo de la simplificación excesiva.

Guía práctica para compilar programas C en macOS

2025-06-14

Este artículo describe el viaje del autor al compilar programas C/C++ en macOS, destacando los desafíos y soluciones encontradas. Desde instalar compiladores y gestionar dependencias (usando herramientas como `apt-get` y `brew`), hasta navegar por `Makefiles` y scripts `./configure`, el autor proporciona una guía práctica. Los puntos clave incluyen manejar advertencias del compilador, resolver errores de enlazado usando variables de entorno como `CPPFLAGS` y `LDLIBS`, y compilar selectivamente objetivos con `make`. El autor también enfatiza la importancia de comprender la compilación C, incluso para programadores que no trabajan con C, debido a su prevalencia en herramientas y bibliotecas del sistema. El artículo concluye con la contribución exitosa del autor de un paquete compilado a Homebrew, mostrando los beneficios prácticos de dominar el proceso de compilación.

Desacoplar la programación de bajo nivel del diseño de sistemas: Repensar la "programación de sistemas"

2025-06-14

Este artículo explora la evolución del término "programación de sistemas". El autor argumenta que confunde dos ideas distintas: la programación de bajo nivel (que trata los detalles de implementación de la máquina) y el diseño de sistemas (la creación y gestión de componentes complejos que interactúan). Desde las mejoras de los años 70 en el ensamblador hasta el auge de los lenguajes de scripting en los años 90 y los avances en el rendimiento de los lenguajes actuales, las fronteras de la programación de sistemas se han vuelto cada vez más borrosas. El autor propone redefinir la "programación de sistemas" como "programación de bajo nivel", dejando el diseño de sistemas como un campo separado. Argumenta que los principios de la programación funcional son valiosos en el diseño de sistemas y sugiere separar la enseñanza de la programación de bajo nivel y el diseño de sistemas en la educación en informática para fomentar la polinización cruzada de ideas.

Desarrollo

Lanzamiento de Rocky Linux 10: Aumenta la Divergencia Entre las Alternativas de RHEL

2025-06-14
Lanzamiento de Rocky Linux 10: Aumenta la Divergencia Entre las Alternativas de RHEL

Rocky Linux 10, "Red Quartz", ha alcanzado la disponibilidad general, añadiendo soporte para la arquitectura RISC-V, pero abandonando modelos de Raspberry Pi más antiguos. Comparado con AlmaLinux 10 y RHEL 10, lanzados a principios de este año, emergen diferencias sutiles tanto en hardware como en software. La más notable es el requisito de CPUs x86-64-v3 en RHEL 10 y Rocky Linux 10, mientras que AlmaLinux 10 admite excepcionalmente x86-64-v2. Además, el asistente de IA de RHEL 10, "Lightspeed", está ausente en Rocky Linux 10. Aunque funcionalmente similares, Rocky Linux 10 está divergiendo sutilmente de sus alternativas RHEL en compatibilidad de hardware, funciones de IA y soporte comercial, creando su propio nicho de mercado.

Desarrollo

Programación sin libc: Dominando las llamadas al sistema Linux con strace

2025-06-14

El autor recientemente se embarcó en la construcción de software sin libc para obtener una comprensión más profunda de las llamadas al sistema de Linux y sus mecanismos internos. Esto implicó la creación de un shell mínimo, un juego de Snake, un servidor HTTP en ensamblador ARM64 puro y una implementación de subprocesos. La depuración dependió en gran medida de strace, y el artículo detalla varias opciones e indicadores útiles de strace. Estos van desde el seguimiento de procesos secundarios e impresión de información detallada de la estructura hasta el seguimiento selectivo de llamadas al sistema e incluso la inyección de errores de llamadas al sistema para fines de depuración. Esto proporciona información valiosa sobre técnicas avanzadas de programación y depuración de sistemas Linux.

Desarrollo Llamadas al sistema

Limitación de anidamiento de grupos mutuamente excluyentes de Argparse: Un enigma frustrante

2025-06-14

El módulo argparse de Python, si bien ofrece funciones convenientes para manejar argumentos de línea de comandos, incluidos grupos mutuamente excluyentes, tiene una limitación frustrante cuando se trata de anidar. Considere un programa con varias configuraciones de tiempo de espera donde los usuarios pueden ajustar tiempos de espera individuales o deshabilitarlos por completo. Argparse no admite anidar una opción 'sin tiempo de espera' dentro de un grupo de opciones de tiempo de espera individuales, lo que hace que la configuración sea engorrosa. Si bien puede anidar un grupo mutuamente excluyente dentro de un grupo regular, lo contrario no es compatible, y la documentación oficial indica explícitamente esta limitación. Esto obliga a los desarrolladores a verificar manualmente si se utilizaron opciones específicas, lo que agrega complejidad.

Desarrollo

Oráculo de la verdad en Lisp: Una curiosa historia sobre teoría de tipos, isomorfismo de Curry-Howard y call/cc

2025-06-14

Esta publicación intenta escribir un "oráculo de la verdad" en Lisp, un programa que determina la verdad o falsedad de enunciados matemáticos arbitrarios. El autor introduce el isomorfismo de Curry-Howard, explicando cómo las pruebas lógicas corresponden a expresiones en programación funcional tipada. Usando la función call/cc de Racket (isomórfica a la ley de Peirce), se intenta implementar un programa isomórfico a la ley del medio excluido. Inesperadamente, el oráculo siempre devuelve falso hasta que intenta acceder a un valor de tipo imposible, revelando las diferencias entre la lógica clásica y la lógica constructiva, y el mecanismo de flujo de control no estándar de call/cc. Finalmente, el autor utiliza una metáfora de un "pacto con el diablo" para explicar este comportamiento extraño, mostrando el mecanismo similar a un viaje en el tiempo detrás de call/cc.

Desarrollo teoría de tipos

Automatizando Mensajes de Texto Diarios con el Pronóstico del Tiempo

2025-06-14

Cansado de abrir la aplicación del tiempo cada mañana? El autor exploró dos métodos: primero, una automatización de Zapier que enviaba un mensaje de texto diario con el pronóstico del tiempo alrededor de las 7 AM. Sin embargo, debido a la falta de personalización y la dependencia de terceros, construyó un sistema más flexible usando TypeScript, Twilio y GitHub Actions. La API Open-Meteo proporciona los datos del tiempo, Twilio envía mensajes SMS y GitHub Actions activa la tarea a las 6:45 AM diariamente (teniendo en cuenta las zonas horarias). Aunque el resumen personalizado es menos detallado que el de Zapier, obtuvo control y rentabilidad, planeando mejoras en los detalles del resumen.

Desarrollo

arXivLabs: Colaboracion Comunitaria en Funciones de arXiv

2025-06-14
arXivLabs: Colaboracion Comunitaria 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 individuos y las organizaciones participantes comparten los valores de arXiv de apertura, comunidad, excelencia y privacidad de datos del usuario. arXiv está comprometido con estos valores y solo trabaja con socios que los respeten. ¿Tiene una idea para un proyecto valioso para la comunidad de arXiv? Obtenga más información sobre arXivLabs.

Desarrollo

Arquitectura de Datos Unificada de Netflix: Modela una vez, representa en todas partes

2025-06-14
Arquitectura de Datos Unificada de Netflix: Modela una vez, representa en todas partes

La explosión de ofertas de contenido de Netflix (películas, series, juegos, eventos en vivo, anuncios) ha creado una compleja red de sistemas de soporte. Para abordar los modelos duplicados, la terminología inconsistente y los problemas de calidad de datos, Netflix construyó la Arquitectura de Datos Unificada (UDA). La UDA es un grafo de conocimiento que permite a los equipos definir modelos una vez y reutilizarlos de forma consistente en todos los sistemas. Aprovechando un metamodelo interno llamado Upper, la UDA traduce los modelos de dominio en varias estructuras de datos técnicas (GraphQL, Avro, SQL, etc.), automatizando el movimiento y la transformación de datos entre contenedores. Esto aumenta la eficiencia y la consistencia de los datos. Dos sistemas de producción, la Gestión Primaria de Datos (PDM) y Sphere, muestran el poder de la UDA, gestionando datos de referencia autorizados y proporcionando informes operativos de autoservicio, respectivamente.

De Cuantitativo a ICB: Una Hoja de Ruta de Autoaprendizaje para 2025

2025-06-14

Un ingeniero experimentado con experiencia en finanzas cuantitativas y desarrollo de software está cambiando al fascinante campo de las interfaces cerebro-computadora (ICB). Se ha embarcado en un viaje de autoaprendizaje de 12 a 24 meses, estructurado en tres fases: hardware básico (construyendo un reloj digital, amplificando señales bioeléctricas), sistemas intermedios (radio analógico/digital, procesamiento de señal basado en FPGA) y temas avanzados (estimulación neural de circuito cerrado, transferencia inalámbrica de datos). Este ambicioso plan combina el autoestudio, proyectos prácticos y la participación comunitaria, con el objetivo de, finalmente, obtener un puesto en la academia, una startup o la industria en el espacio ICB.

Desarrollo Autoaprendizaje

Avances Recientes en Programación Lineal Mixta de Enteros (MILP)

2025-06-14

La programación lineal mixta de enteros (MILP) se ha convertido en una piedra angular de la investigación de operaciones, gracias a la eficiencia mejorada de los solucionadores modernos. Estos solucionadores ahora pueden encontrar soluciones óptimas globales en segundos para problemas que antes eran intratables hace una década. Esta versatilidad ha llevado a aplicaciones exitosas en transporte, logística, gestión de la cadena de suministro, gestión de ingresos, finanzas, telecomunicaciones y manufactura. A pesar de este éxito, muchos desafíos permanecen, y MILP es un área vibrante de investigación continua. Este artículo analiza los avances más significativos en los métodos de solución MILP, centrándose en los aspectos computacionales y las mejoras recientes de rendimiento práctico, enfatizando los estudios con experimentos computacionales. La investigación se estructura en torno a los métodos de branch-and-cut, la descomposición de Dantzig-Wolfe y la descomposición de Benders, concluyendo con una discusión sobre los desafíos continuos y las direcciones futuras.

Cómo escribir el peor código Python posible

2025-06-14
Cómo escribir el peor código Python posible

Esta guía humorística te enseña a escribir el código Python más incomprensible y frustrante imaginable. A través de una serie de ejemplos negativos, como usar nombres de variables crípticos (como `data1`, `temp`) y bucles anidados complejos, el autor demuestra cómo crear código verdaderamente terrible. El objetivo final es destacar la importancia de escribir código limpio y comprensible, evitando la creación de deuda técnica difícil de mantener.

Desarrollo

El kernel de Linux 6.16 corrige vulnerabilidades de volcado de núcleo: Adiós a la API 'estúpida'

2025-06-14

La versión 6.16 del kernel de Linux mejora significativamente el manejo de los volcados de núcleo, solucionando vulnerabilidades de seguridad de larga data. Los diseños anteriores de la API tenían fallas, como los manejadores de volcados de núcleo que se ejecutan con privilegios de root, lo que los convierte en objetivos atractivos para los ataques, y las condiciones de carrera que provocan vulnerabilidades. Las nuevas mejoras introducen pidfd para garantizar que los manejadores operen en el proceso fallido correcto y permiten que los manejadores se enlacen a un socket para recibir volcados de núcleo, lo que reduce los riesgos de escalada de privilegios y previene eficazmente los ataques.

Desarrollo volcado de núcleo

Iluminación volumétrica en React Three Fiber: Raymarching con postprocesamiento

2025-06-14
Iluminación volumétrica en React Three Fiber: Raymarching con postprocesamiento

Este artículo profundiza en la creación de efectos de iluminación volumétrica realistas en React Three Fiber combinando postprocesamiento y raymarching volumétrico. El autor explica meticulosamente las transformaciones de sistemas de coordenadas, reconstruyendo rayos 3D desde el espacio de pantalla y utilizando búferes de profundidad para la optimización del rendimiento. Se tratan técnicas avanzadas como la modelación de luz usando SDF, el mapeo de sombras y la dispersión de luz, culminando en un efecto de iluminación volumétrica dinámica con sombras y niebla. Varias demostraciones muestran la técnica en arcos y escenas espaciales, mientras que también exploran múltiples fuentes de luz y sombreado omnidireccional.

Recolector de basura Green Tea: Un enfoque consciente de la memoria para aumentar el rendimiento de Go

2025-06-14
Recolector de basura Green Tea: Un enfoque consciente de la memoria para aumentar el rendimiento de Go

El equipo de Go está desarrollando Green Tea, un recolector de basura experimental diseñado para abordar los cuellos de botella de rendimiento de los algoritmos tradicionales de recolección de basura en sistemas multinúcleo y arquitecturas de memoria no uniformes. Green Tea mejora la localidad espacial y temporal al escanear bloques de memoria contiguos en lugar de objetos individuales, reduciendo significativamente la sobrecarga de la CPU de recolección de basura. Las evaluaciones iniciales muestran una reducción del 10-50% en los costes de la CPU de GC en algunas cargas de trabajo con uso intensivo de GC. Los trabajos futuros incluyen explorar la aceleración SIMD y una red concentradora para obtener mayores ganancias de rendimiento.

Desarrollo

Blogueo en WordPress con Claude: Un servidor MCP personalizado

2025-06-14
Blogueo en WordPress con Claude: Un servidor MCP personalizado

En tres días, el autor construyó un servidor personalizado del Protocolo de Contexto del Modelo (MCP) que conecta a Claude directamente a su blog de WordPress. Este servidor gestiona las complejidades de la API REST de WordPress, permitiendo que Claude cree entradas de blog en HTML con formato adecuado, gestione automáticamente categorías y etiquetas, e incluso recupere información del blog. El autor considera esto un gran avance en la creación de contenido asistido por IA, manteniendo el control editorial.

Desarrollo

arXivLabs: Proyectos experimentales con colaboradores de la comunidad

2025-06-14
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 respeten. ¿Tiene una idea para un proyecto que agregue valor a la comunidad de arXiv? Obtenga más información sobre arXivLabs.

Desarrollo

FileDB: Almacenamiento clave-valor inspirado en Bitcask, implementado en Zig

2025-06-14
FileDB: Almacenamiento clave-valor inspirado en Bitcask, implementado en Zig

FileDB es una implementación en Zig de un almacén de clave-valor inspirado en el artículo Bitcask de Riak. Utiliza una tabla hash estructurada en registro para metadatos y anexa registros a archivos de disco para un alto rendimiento. La compactación y sincronización periódicas garantizan la durabilidad de los datos. Las pruebas de rendimiento de su cliente compatible con Redis muestran velocidades de lectura superiores a 100.000 solicitudes por segundo y un rendimiento de escritura impresionante.

sandboxfs: Un intento fallido de acelerar la creación de sandbox de Bazel en macOS

2025-06-13
sandboxfs: Un intento fallido de acelerar la creación de sandbox de Bazel en macOS

Un ingeniero de Google intentó mejorar el rendimiento de la creación de sandbox de Bazel en macOS con el proyecto sandboxfs. sandboxfs utilizaba un sistema de archivos de espacio de usuario para crear jerarquías de archivos virtuales de forma más eficiente, reemplazando el enfoque original de enlaces simbólicos de Bazel. Sin embargo, debido a que el rendimiento de los enlaces simbólicos de macOS no era el principal cuello de botella, junto con problemas de implementación y cambios en el ecosistema de macOS, sandboxfs finalmente se abandonó. A pesar de esto, el autor cree que su idea central —la creación eficiente de sandbox— todavía es prometedora para resolver los problemas de rendimiento de la creación de sandbox de Bazel en macOS.

Desarrollo

Implementando Datalog en Python: Un lenguaje de base de datos relacional más potente que SQL

2025-06-13
Implementando Datalog en Python: Un lenguaje de base de datos relacional más potente que SQL

Este artículo muestra cómo implementar Datalog, un lenguaje de base de datos relacional más potente que SQL, usando Python. Datalog, un subconjunto de Prolog, no es Turing-completo, pero destaca en el modelado de relaciones. El artículo explica a fondo los conceptos básicos de Datalog, incluyendo predicados, hechos, reglas y variables, y proporciona una implementación sencilla en Python con el algoritmo de Evaluación Ingenuo. Con esta implementación, puedes crear y consultar programas Datalog, experimentando la elegancia y el poder de este enfoque de modelado relacional.

MUMPS: El héroe silencioso de las bases de datos sanitarias

2025-06-13

MUMPS, un lenguaje de programación nacido en la década de 1960, se desarrolló inicialmente para gestionar los registros médicos de pacientes en el Hospital General de Massachusetts. Sus capacidades únicas de base de datos integrada lo han convertido en la base de datos dominante para los sistemas de información sanitaria y los registros electrónicos de salud en EE. UU., atendiendo a más del 78% de los pacientes. La historia de MUMPS es una historia de innovación y adaptación, desde sus versiones iniciales en PDP-7 hasta las implementaciones de código abierto y los productos comerciales actuales. Ha sido testigo de la rápida evolución de la tecnología informática y continúa proporcionando un apoyo crítico para la industria sanitaria.

Desarrollo TI sanitaria

arXivLabs: Proyectos experimentales con colaboración comunitaria

2025-06-13
arXivLabs: Proyectos experimentales con colaboración comunitaria

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

Desarrollo
1 2 60 61 62 64 66 67 68 214 215