Category: Desarrollo

Interpolación de Cadenas en AmigaDOS: Más Allá de las Llaves {}

2025-03-22

Esta publicación de blog explora la flexibilidad y las peculiaridades de la interpolación de cadenas en scripts de shell de AmigaDOS. Si bien AmigaDOS usa por defecto '<' y '>' para la interpolación, permite la personalización mediante las directivas '.BRA' y '.KET'. Los experimentos demuestran el uso exitoso de varios pares de caracteres, incluidos caracteres ASCII imprimibles y no imprimibles (como BEL y NAK). Esto destaca la robustez del analizador de scripts de AmigaDOS y su capacidad de recuperación al manejar entradas inusuales.

Proyecto de código abierto de Mozilla.ai: Acelerar el mapeo de OpenStreetMap con IA

2025-03-22
Proyecto de código abierto de Mozilla.ai: Acelerar el mapeo de OpenStreetMap con IA

Mozilla.ai ha lanzado un proyecto de código abierto llamado OpenStreetMap AI Helper Blueprint, diseñado para acelerar el proceso de mapeo en OpenStreetMap. Este proyecto combina inteligentemente el modelo de detección de objetos YOLOv11 y el modelo de segmentación SAM2 para identificar y delinear automáticamente las características del mapa (por ejemplo, piscinas), aumentando la eficiencia. Los usuarios entrenan modelos en entornos Colab proporcionados y luego verifican los resultados manualmente, mejorando significativamente la velocidad de mapeo mientras se mantiene el control de calidad. Esto demuestra cómo los modelos de IA ligeros y amigables con el entorno local pueden mejorar los proyectos impulsados ​​por la comunidad sin depender de modelos de lenguaje grandes.

Desarrollo

Landrun: Sandbox ligero y seguro para procesos Linux

2025-03-22
Landrun: Sandbox ligero y seguro para procesos Linux

Landrun es un sandbox ligero para Linux que utiliza Landlock LSM, ofreciendo seguridad a nivel de kernel con una sobrecarga mínima. Permite control de acceso granular a directorios, soporta rutas de lectura y escritura, y permite permisos de ejecución opcionales. También incluye control de acceso a la red TCP (enlace y conexión). Requiere el kernel de Linux 5.13 o superior con Landlock LSM habilitado (kernel 6.8 o superior para restricciones de red). Landrun proporciona una interfaz de línea de comandos para configurar fácilmente los permisos del sandbox, incluyendo solo lectura, lectura/escritura, ejecución y puertos TCP específicos para enlace y conexión. Un modo de máximo esfuerzo garantiza una degradación suave en kernels más antiguos. Esto lo hace ideal para ejecutar de forma segura código no confiable o potencialmente malicioso.

Dos informes destacan las lagunas de conocimiento y las mejores prácticas para el cumplimiento de la CRA de código abierto

2025-03-22
Dos informes destacan las lagunas de conocimiento y las mejores prácticas para el cumplimiento de la CRA de código abierto

La Fundación Linux publicó dos informes de investigación innovadores que exploran estrategias impulsadas por la comunidad para abordar la seguridad de código abierto y la Ley de Ciberresiliencia (CRA) de la Unión Europea. El primer informe analiza cómo tres proyectos de la Fundación Linux cumplen con los requisitos mínimos de cumplimiento de la CRA, compartiendo las mejores prácticas. El segundo informe revela lagunas significativas de conocimiento dentro del ecosistema de código abierto con respecto a la concienciación sobre la CRA, y muchos encuestados desconocen la ley y carecen de preparación para el cumplimiento. Los informes recomiendan que los fabricantes asuman un papel más activo en la seguridad de código abierto, pidiendo un mayor financiamiento y apoyo legal para fomentar mejores prácticas de seguridad.

FizzBee: Modelando la Exclusión Mutua y las Trampas de Redlock

2025-03-22
FizzBee: Modelando la Exclusión Mutua y las Trampas de Redlock

Este artículo detalla la experiencia del autor usando FizzBee, un nuevo lenguaje de especificación formal basado en Starlark, para modelar algoritmos de exclusión mutua e investigar problemas con el algoritmo Redlock. Al modelar secciones críticas, bloqueos, arrendamientos y tokens de cerca, el autor revela limitaciones en la tolerancia a fallos de Redlock, mostrando finalmente que los tokens de cerca no resuelven completamente los problemas de exclusión mutua. El autor concluye discutiendo la facilidad de uso y las deficiencias de FizzBee, destacando la importancia de la especificación formal en el diseño de algoritmos. El ejercicio práctico reveló inesperadamente fallas sutiles en la comprensión del autor sobre los tokens de cerca, subrayando el valor de los métodos formales.

Desarrollo exclusión mutua

Buceando en las entrañas de PyTorch: Tensores, Autograd y escritura de kernels

2025-03-22

Esta entrada de blog proporciona una exploración detallada de los entresijos de PyTorch, cubriendo las estructuras de datos de tensores, la diferenciación automática (Autograd) y la escritura de kernels. Comienza explicando la implementación subyacente de los tensores, incluyendo el concepto de strides y cómo utilizarlos para crear vistas de tensores. A continuación, profundiza en el funcionamiento de Autograd, mostrando cómo se calculan los gradientes mediante retropropagación. Finalmente, la entrada ofrece una guía práctica para escribir kernels de PyTorch, incluyendo cómo aprovechar las herramientas de PyTorch para la comprobación de errores, el despacho de dtype y la paralelización. Este es un excelente tutorial para desarrolladores con alguna experiencia en PyTorch que desean comprender sus entresijos o contribuir con código.

Recuperación de la eliminación accidental de /lib en Linux

2025-03-22

Esta publicación detalla cómo recuperar un sistema Linux después de eliminar accidentalmente el directorio crucial `/lib`. El autor explora varios métodos, desde el uso de herramientas existentes, como un busybox estático, hasta la creación y transferencia de un programa C mínimo, compilado estáticamente, para reemplazar archivos esenciales. La guía paso a paso abarca técnicas usando comandos integrados de bash y transferencias de red, proporcionando una solución para evitar la reinstalación del SO.

FastOpenAPI: Un Generador OpenAPI Basado en Pydantic

2025-03-22
FastOpenAPI: Un Generador OpenAPI Basado en Pydantic

FastOpenAPI es una biblioteca para generar e integrar esquemas OpenAPI usando Pydantic y varios frameworks, con el objetivo de brindar una experiencia amigable para desarrolladores similar a FastAPI. Soporta Falcon, Flask, Quart, Sanic, Starlette y Tornado, ofreciendo enrutamiento al estilo FastAPI mediante enrutamiento proxy. Una simple instalación con pip permite comenzar rápidamente, con Swagger UI y ReDoc UI proporcionando acceso conveniente a la documentación. El proyecto incluye ejemplos completos y benchmarks para facilitar la adopción y evaluación del rendimiento.

Evolución de la arquitectura de aplicaciones y el auge de la orquestación ligera

2025-03-22
Evolución de la arquitectura de aplicaciones y el auge de la orquestación ligera

Desde la arquitectura de tres niveles de los años 90 hasta el mundo actual impulsado por microservicios, la arquitectura de aplicaciones ha experimentado una transformación drástica. Para coordinar las operaciones en backends distribuidos, surgió la capa de orquestación. Sin embargo, las soluciones DIY existentes son complejas y difíciles de mantener, mientras que los sistemas de orquestación dedicados introducen sus propias complejidades. Este artículo presenta un nuevo enfoque: integrar la funcionalidad de orquestación en una biblioteca ligera y usar una base de datos para persistir el estado de ejecución. Esto elimina la capa de orquestación separada, simplificando el desarrollo, las pruebas y la depuración, lo que lleva, en última instancia, a arquitecturas de aplicaciones más confiables y eficientes.

Ruby: ¿El lenguaje inesperado de la revolución de la IA?

2025-03-22

Los grandes modelos de lenguaje (LLM) son excelentes en la generación de código, pero sus ventanas de contexto limitadas dificultan el trabajo con grandes bases de código. Este artículo explora el 'poder' de la programación asistida por LLM: ¿cuántos tokens se necesitan para expresar un programa? El autor argumenta que Python supera a Go para LLM debido a su concisión, permitiendo más funciones dentro de los límites de tokens. Además, Ruby, conocida por su elegancia y brevedad, se presenta como un lenguaje ideal para LLM debido a su uso eficiente de tokens. Si bien persisten desafíos como la verificación de tipos, el diseño centrado en el humano de Ruby, irónicamente, lo convierte en un posible líder para LLM.

Desarrollo

Restricciones de Aplicación de Sugerencias de Código en GitHub

2025-03-22
Restricciones de Aplicación de Sugerencias de Código en GitHub

Este texto enumera varias limitaciones encontradas al aplicar sugerencias de código en el proceso de revisión de código de GitHub. Estas incluyen: ningún cambio de código realizado, solicitud de extracción cerrada o fusionada, visualización de un subconjunto de cambios, solo una sugerencia por línea aplicable, la aplicación de sugerencias en líneas eliminadas no es compatible, la sugerencia ya se aplicó o se marcó como resuelta, las sugerencias de revisiones pendientes no se pueden aplicar y las sugerencias en comentarios de varias líneas no están permitidas. Estas restricciones garantizan la integridad y la precisión del proceso de revisión de código.

No temas al nuevo tipo: Lecciones de Go y C

2025-03-22

Muchos desarrolladores muestran una resistencia a crear nuevos tipos en sus bases de código. Este artículo argumenta que esto se debe al miedo a alterar el 'gran diseño' percibido y agregar complejidad. Sin embargo, el autor sostiene que cuando un conjunto de valores naturalmente pertenece junto, crear un nuevo tipo mejora significativamente la legibilidad y el mantenimiento del código. Usando Go como ejemplo, el autor destaca los beneficios de crear tipos pequeños y específicos, como una estructura `CreateSubscriptionRequest`, simplificando el manejo de datos en llamadas de funciones. El autor anima a los desarrolladores a superar su aprensión sobre la creación de nuevos tipos, enfatizando que en las culturas C y Go, esta práctica es común y aceptada, siempre que el propósito del tipo se transmita claramente a través de su nombre.

Desarrollo

Autorización centralizada: ¿La próxima plataforma compartida?

2025-03-22
Autorización centralizada: ¿La próxima plataforma compartida?

Este artículo explora los beneficios y desafíos de los sistemas de autorización centralizada. Tradicionalmente, la autorización está descentralizada en varias aplicaciones, lo que lleva a ineficiencias y dificultades de gestión. Un sistema centralizado ofrece estandarización, reducción de costes y una mejor conformidad, pero requiere abordar los desafíos de expresividad, rendimiento, aislamiento e integración. El artículo analiza cómo las plataformas de código abierto (Topaz) y comerciales (Aserto) superan estos obstáculos, permitiendo una autorización a nivel empresarial eficiente, segura y gestionable.

Utiliza opciones largas en scripts

2025-03-22

Muchas utilidades de línea de comandos ofrecen opciones cortas (-f) y opciones largas (--force). Si bien las opciones cortas son convenientes para el uso interactivo, las opciones largas son muy superiores en los scripts. Su mayor legibilidad y naturaleza autoexplicativa mejoran el mantenimiento y la comprensión. Por ejemplo, en Git, `git switch --create release-{today} origin/main` es significativamente más claro que `git switch -c my-new-branch`, especialmente en scripts complejos.

Desarrollo opciones largas

Frink: Una Calculadora Práctica y Lenguaje de Programación

2025-03-21

Frink es una poderosa herramienta de cálculo y lenguaje de programación diseñada para simplificar los cálculos físicos, garantizar respuestas precisas y proporcionar una herramienta verdaderamente útil. Rastrea las unidades de medida (pies, metros, kilogramos, vatios, etc.) en todos los cálculos, permitiendo la mezcla transparente de unidades y la verificación de los resultados. Frink también cuenta con una gran base de datos de constantes físicas, admite varios idiomas, funciones matemáticas avanzadas, conversiones de unidades, matemáticas de fecha/hora, expresiones regulares y gráficos, incluso admite programación orientada a objetos y llamadas de código Java. Se ejecuta en varios sistemas operativos y dispositivos y se actualiza automáticamente mediante Java Web Start.

Transacciones por segundo de MySQL frente a fsyncs por segundo: Desentrañando el misterio

2025-03-21

Este artículo investiga la discrepancia entre el rendimiento teórico y real de las transacciones de MySQL. Una prueba de referencia revela que la velocidad de escritura de MySQL es significativamente mayor de lo previsto teóricamente (basado en la latencia de fsync()). Una investigación más profunda descubrió que MySQL utiliza el "commit en grupo" para procesar escrituras por lotes en el WAL y el binlog, y el sistema de archivos/disco probablemente emplea un procesamiento por lotes similar, aumentando la eficiencia. El autor también analiza el rendimiento del índice invertido y explica la brecha entre los modelos teóricos y el rendimiento del mundo real.

Desarrollo

Escribe tu propio sistema operativo x86: Una guía práctica

2025-03-21

Este libro es una guía práctica para escribir tu propio sistema operativo x86. Te guía en el proceso, desde la configuración de tu entorno de desarrollo hasta la implementación de multitarea, con explicaciones detalladas y ejemplos de código en cada paso. Los autores comparten sus experiencias y proporcionan enlaces para lecturas adicionales. Los temas tratados incluyen la gestión de memoria, el manejo de interrupciones, la memoria virtual, los sistemas de archivos y las llamadas al sistema, lo que lo hace adecuado para lectores con alguna experiencia en programación de sistemas.

Ubuntu Considera Cambiar a Utilidades Rust por Defecto

2025-03-21

Ubuntu planea reemplazar muchas utilidades GNU tradicionales con implementaciones en Rust, como las del proyecto uutils, en su próxima versión 25.10. Para probar la idoneidad de estas herramientas Rust, el vicepresidente de Ingeniería de Canonical, Jon Seager, lanzó oxidizr, una utilidad de línea de comandos para habilitarlas o deshabilitarlas fácilmente. Este movimiento tiene como objetivo mejorar la resistencia y la seguridad de Ubuntu y atraer más contribuyentes. Si bien la reacción de la comunidad es mixta, este cambio podría impactar significativamente la adopción de Rust y el futuro de las distribuciones de Linux.

Desarrollo

Servidor Hyperbrowser MCP: Facilidad en el Rascado Web y la Extracción de Datos

2025-03-21
Servidor Hyperbrowser MCP: Facilidad en el Rascado Web y la Extracción de Datos

Hyperbrowser presenta su servidor de Protocolo de Contexto de Modelo (MCP), una herramienta potente para raspar páginas web, extraer datos estructurados y rastrear sitios web. También simplifica el acceso a agentes de navegador de propósito general como el CUA de OpenAI, el Uso del Computador Claude de Anthropic y el Uso del Navegador. El servidor cuenta con funciones que incluyen raspado web, rastreo web, extracción de datos estructurados, búsqueda de Bing y varias capacidades de automatización del navegador. La instalación es sencilla; simplemente ejecute `npx hyperbrowser-mcp ` y configure los archivos de configuración correspondientes.

Contensión de bloqueo de ClickHouse: Un cuello de botella de rendimiento de un año

2025-03-21

Tinybird experimentó un problema de un año con una utilización extremadamente baja de la CPU en uno de sus clústeres de ClickHouse durante los períodos de carga máxima. La causa raíz se identificó como contención de bloqueo de Context. Al agregar una métrica `ContextLockWaitMicroseconds` para monitorear los tiempos de espera de bloqueo y rediseñar el mecanismo de bloqueo de Context, reemplazando un solo mutex global con mutexes de lectura-escritura, el rendimiento mejoró significativamente. El artículo detalla el uso del análisis de seguridad de subprocesos de Clang para depurar y resolver problemas de concurrencia, junto con los resultados de referencia que muestran un aumento de 3x en QPS y ganancias sustanciales en la utilización de la CPU.

Desarrollo

Términos tecnológicos que probablemente has estado pronunciando mal

2025-03-21

Este artículo destaca pronunciaciones comunes incorrectas de términos tecnológicos encontrados por un desarrollador individual autodidacta. Enumera ejemplos como Asus (AY-soos, no AY-sis), Debian (DEHB-eee-in, no DEE-bee-inn), y muchos más, enfatizando la falta de lógica inherente en estas pronunciaciones. El autor sugiere usar el widget de pronunciación de Google como un recurso útil y proporciona una lista completa de términos pronunciados correctamente, incluyendo Atlassian, daemon, Gaussian, GIF, Gnome, GNU, JSON, Kernighan, LaTeX, Linus, Poisson, pypi, Qt, Redis, regex, repo, sudo, SUSE, SQL, SQLite, Ubuntu y Vite. Este es un recurso valioso para desarrolladores y entusiastas de la tecnología.

arXivLabs: Proyectos experimentales con colaboradores de la comunidad

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

Desarrollo

arXivLabs: Proyectos experimentales con colaboradores de la comunidad

2025-03-21
arXivLabs: Proyectos experimentales con colaboradores de la comunidad

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

Desarrollo

Sistema de Control de Versiones Ligero: Game of Trees Lanzado

2025-03-21

Game of Trees (Got) es un sistema de control de versiones ligero y fácil de usar que prioriza la facilidad de uso y la simplicidad. Actualmente en desarrollo, está dirigido principalmente a desarrolladores de OpenBSD y utiliza repositorios Git para datos versionados. Las funciones que aún no se han implementado en Got se pueden gestionar con Git, y ambos sistemas pueden funcionar simultáneamente en el mismo repositorio. Con licencia BSD, el software es gratuito y reutilizable.

Desarrollo

Mathup: Un analizador de expresiones matemáticas rápido

2025-03-21

Mathup es una herramienta ligera que traduce expresiones matemáticas simples escritas en un lenguaje de marcado inspirado en AsciiMath a MathML estructurado. Más rápido que MathJax porque solo analiza y traduce, dejando la representación al navegador, Mathup admite una amplia gama de símbolos y funciones matemáticas, incluidas fracciones, subíndices/superíndices, matrices y tensores. Ofrece amplias opciones de personalización para fuentes, colores y fondos. Los desarrolladores pueden usarlo en la línea de comandos, en un servidor o en un navegador para un manejo rápido y eficiente de expresiones matemáticas.

Screen: Un emulador de terminal en PHP puro para interfaces de usuario de texto enriquecidas

2025-03-21
Screen: Un emulador de terminal en PHP puro para interfaces de usuario de texto enriquecidas

Screen es una biblioteca de emulador de terminal escrita completamente en PHP, permitiendo la creación de interfaces de usuario basadas en texto enriquecidas en cualquier aplicación PHP. Desarrollada inicialmente para solucionar conflictos de códigos de escape ANSI en el TUI multiproceso de Solo para Laravel, Screen crea un búfer de terminal virtual para gestionar de forma segura las operaciones ANSI (movimiento del cursor, cambios de color, limpieza de pantalla). Esto asegura una renderización consistente y admite Unicode, caracteres multibyte, desplazamiento y una amplia gama de códigos de escape ANSI. Un conjunto completo de pruebas, con un innovador sistema de comparación visual, garantiza la emulación precisa.

Plantilla de sitio web de código abierto basada en NeRFies y UMI-On-Legs

2025-03-21

Esta plantilla de sitio web se modificó a partir de los excelentes diseños de AnyCar UMI-On-Legs y NeRFies, con código simplificado. Tiene licencia Creative Commons Attribution-ShareAlike 4.0 Internacional, lo que permite la modificación y el uso gratuitos, pero requiere un enlace a la página de NeRFies en el pie de página y la eliminación del código de análisis no deseado.

Cliente RDP basado en Rust: IronRDP, seguro y eficiente

2025-03-21
Cliente RDP basado en Rust: IronRDP, seguro y eficiente

IronRDP es un conjunto de crates Rust que proporcionan una implementación segura del Protocolo de Escritorio Remoto (RDP) de Microsoft. Admite varios códecs, incluyendo mapas de bits sin comprimir, RLE, compresión de mapas de bits RDP 6.0 y Microsoft RemoteFX. Se incluye un cliente RDP asíncrono completo, junto con un ejemplo de bloqueo para facilitar la integración. El proyecto también detalla cómo habilitar RemoteFX en el servidor para un mejor rendimiento gráfico.

Desarrollo

Compilador de juguete para expresiones Python usando MLIR y E-Graphs

2025-03-21
Compilador de juguete para expresiones Python usando MLIR y E-Graphs

Este artículo detalla un compilador de juguete para expresiones Python construido utilizando MLIR y la biblioteca egglog. El compilador aprovecha los E-Graphs para la saturación de igualdad y la reescritura de términos para optimizar las expresiones Python antes de compilarlas a MLIR. Cuenta con módulos para el modelado de expresiones, funciones integradas, Term IR, una capa de transformación, una capa de optimización y generación de código MLIR y un backend LLVM. Al interpretar simbólicamente las funciones Python, convertirlas en una representación IR, aplicar reglas de optimización y, finalmente, generar código MLIR eficiente, el compilador logra la compilación y ejecución a través de LLVM.

Desarrollo

Creador de Lentes Torch: Óptica Diferenciable con PyTorch

2025-03-21

Torch Lens Maker es una biblioteca Python de código abierto para óptica geométrica diferenciable basada en PyTorch. Su ambicioso objetivo es diseñar sistemas ópticos complejos del mundo real (lentes, espejos) utilizando la computación moderna y la optimización numérica de vanguardia. El núcleo es la óptica geométrica diferenciable: detección de colisiones 3D y leyes ópticas implementadas en PyTorch. Al tratar inteligentemente los elementos ópticos como capas en una red neuronal y aprovechar la autodiferenciación y los algoritmos de optimización de PyTorch, diseñar lentes se vuelve sorprendentemente similar al entrenamiento de una red neuronal, desbloqueando el poder de las herramientas modernas de aprendizaje automático. El proyecto está en una etapa temprana y el autor está buscando financiación para continuar el desarrollo.

Desarrollo diseño de lentes
1 2 132 133 134 136 138 139 140 214 215