Category: Desarrollo

Construyendo un asistente de IA familiar potente con una simple base de datos SQLite

2025-04-14
Construyendo un asistente de IA familiar potente con una simple base de datos SQLite

Este artículo describe a Stevens, un asistente de IA familiar construido utilizando una simple base de datos SQLite y trabajos cron. Integra eventos de calendario, previsiones meteorológicas e información de correo electrónico, enviando un resumen diario a través de Telegram. La arquitectura de Stevens es sencilla: una base de datos SQLite central que almacena diversa información y trabajos cron que importan datos de fuentes como calendarios, API meteorológicas y correo electrónico. El autor destaca la simplicidad e invita a los lectores a replicar y ampliar el proyecto.

Desarrollo trabajos cron

Meilisearch: Motor de búsqueda de código abierto ultrarrápido para tus aplicaciones

2025-04-14
Meilisearch: Motor de búsqueda de código abierto ultrarrápido para tus aplicaciones

Meilisearch es un motor de búsqueda de código abierto ultrarrápido y fácil de integrar en tus aplicaciones, sitios web y flujos de trabajo. Ofrece funciones listas para usar, como búsqueda híbrida, búsqueda al escribir, tolerancia a errores tipográficos, filtrado y búsqueda facetada, ordenación, soporte de sinónimos, geobúsqueda y soporte para múltiples idiomas, para una experiencia de búsqueda superior. Meilisearch proporciona una API RESTful, múltiples SDK, compatibilidad con IA y un servicio en la nube (Meilisearch Cloud) para una fácil implementación y mantenimiento. Prioriza la privacidad del usuario, permitiendo a los usuarios desactivar la recopilación de datos anónimos y proporcionando un canal de solicitud de eliminación de datos.

Kotlin, Swift y Ruby caen fuera del Top 20 de Tiobe

2025-04-14
Kotlin, Swift y Ruby caen fuera del Top 20 de Tiobe

El último índice Tiobe Programming Community Index muestra a Kotlin, Swift y Ruby cayendo fuera del top 20 de los lenguajes de programación más populares. Según el CEO de Tiobe, Paul Jansen, estos lenguajes han perdido tracción y están en declive. La caída se atribuye a su uso principal en plataformas móviles específicas (Kotlin para Android, Swift para iOS), con alternativas multiplataforma ahora fácilmente disponibles. Además, el dominio de Python deja menos espacio para Ruby.

Desarrollo

Una Guía Práctica de Programación C para Hackers

2025-04-14
Una Guía Práctica de Programación C para Hackers

Este libro, dedicado a Dennis Ritchie, ofrece una guía práctica de programación C para hackers. El autor, un hacker experimentado, comparte técnicas prácticas obtenidas de años de experiencia, enfatizando el poder y la flexibilidad del lenguaje C. Defiende la libertad que ofrece C, argumentando que la elección de la herramienta correcta es prerrogativa del programador, no una cuestión de preferencias impuestas. El libro incluye ejemplos de código y debates sobre el uso de extensiones GNU.

Desarrollo Guía Práctica

Deja de ser indeciso en las discusiones técnicas: asume tus decisiones

2025-04-14

Los ingenieros sénior a menudo evitan comprometerse con las decisiones en las discusiones técnicas, un enfoque aparentemente cauteloso que el autor argumenta que en realidad es cobardía. El artículo enfatiza que, cuando un equipo necesita tomar una decisión, incluso con solo un 55% de confianza, el ingeniero más experimentado debe asumir la responsabilidad y ofrecer un juicio. Esto evita que los ingenieros menos experimentados propongan soluciones deficientes y permite que la gerencia trabaje de manera más eficiente. El autor destaca que la gerencia suele ser tolerante con los errores técnicos, ya que la toma de decisiones implica incertidumbre de forma inherente. Sin embargo, los juicios consistentemente incorrectos erosionan la credibilidad. El artículo concluye que, si bien evitar el compromiso es justificable en entornos sin confianza, en la mayoría de las situaciones, asumir la responsabilidad y tomar decisiones audaces es una característica de un buen ingeniero.

Auditoría de seguridad de PHP revela y corrige varias vulnerabilidades

2025-04-14
Auditoría de seguridad de PHP revela y corrige varias vulnerabilidades

La Fundación PHP anuncia la finalización de una auditoría de seguridad exhaustiva del código fuente de PHP (php/php-src), encargada por la Agencia de Tecnología Soberana y realizada por Quarkslab. La auditoría de dos meses detectó 27 problemas, 17 de los cuales tenían implicaciones de seguridad, incluidas cuatro vulnerabilidades a las que se asignaron CVE. Estas vulnerabilidades se han solucionado, y se insta a los usuarios a actualizar a las versiones más recientes de PHP. La auditoría destacó la alta calidad general del proyecto php/php-src y subraya el compromiso de la Fundación PHP de mejorar la seguridad y la fiabilidad de PHP.

Widget de batería DIY para Nissan LEAF: Un truco inteligente usando GitHub Actions e IFTTT

2025-04-14
Widget de batería DIY para Nissan LEAF: Un truco inteligente usando GitHub Actions e IFTTT

Frustrado por la falta de un widget de estado de la batería en la aplicación oficial de Nissan y la falta de alternativas de terceros, el autor ideó una solución alternativa inteligente. Combinando ingeniosamente GitHub Actions, IFTTT y Accesos directos de Apple, creó una solución gratuita. Un flujo de trabajo programado de GitHub Actions recupera datos, envía un correo electrónico e IFTTT transforma el contenido del correo electrónico en un widget de la pantalla de inicio del iPhone que muestra el nivel de la batería del LEAF. Si bien no es perfecto, este truco exitoso evita el costo de hardware adicional o suscripciones, mostrando la creatividad y la destreza técnica del autor.

Desarrollo

CI local para GitHub: Olvídate de la nube, abraza tu máquina de desarrollo

2025-04-14
CI local para GitHub: Olvídate de la nube, abraza tu máquina de desarrollo

¿Cansado de la CI en la nube lenta, cara y alquilada? `gh-signoff`, una extensión de la CLI de GitHub, ¡trae la CI a tu máquina local! Ejecuta tus pruebas localmente, firma cuando pasen (usando `gh signoff`) y obtén ese estado de confirmación verde de GitHub sin problemas. Di adiós a las complejas colas de fusión y a los pipelines de implementación: la simplicidad y el control son tuyos.

Desarrollo CI local

Transformer Lab: Ejecuta LLMs localmente, sin código

2025-04-14
Transformer Lab: Ejecuta LLMs localmente, sin código

Transformer Lab es una plataforma de código abierto que permite a cualquiera construir, ajustar y ejecutar modelos de lenguaje grandes (LLMs) localmente sin escribir una sola línea de código. Soporta cientos de modelos populares como Llama 3 y Phi 3, y funciona en varios hardwares, incluyendo Apple Silicon y GPUs, ofreciendo RLHF y diversas técnicas de optimización de preferencias. Los usuarios interactúan con los modelos a través de una interfaz intuitiva para el ajuste fino, la evaluación y RAG, con soporte para varios motores de inferencia, plugins y conversiones de modelos. Accesible en Windows, macOS y Linux, permite a los desarrolladores integrar LLMs en sus productos sin necesidad de conocimientos de Python o aprendizaje automático.

Desarrollo

Docker Model Runner: Simplificando la ejecución de modelos de IA localmente

2025-04-14
Docker Model Runner: Simplificando la ejecución de modelos de IA localmente

Docker lanzó Model Runner, una herramienta diseñada para simplificar la ejecución y prueba de modelos de IA localmente. Aborda los desafíos que enfrentan los desarrolladores con herramientas fragmentadas, problemas de compatibilidad de hardware y flujos de trabajo desconectados al trabajar con modelos de IA localmente. Model Runner integra un motor de inferencia basado en llama.cpp, admite la aceleración de GPU en Apple silicon y utiliza OCI Artifacts para el empaquetado estandarizado de modelos, permitiendo un fácil intercambio y control de versiones. Además, Docker se ha asociado con empresas como Google y Hugging Face para proporcionar un rico ecosistema de modelos y herramientas, lo que facilita significativamente el desarrollo de IA local.

Desarrollo

arXivLabs: Proyectos experimentales con colaboración comunitaria

2025-04-14
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. 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

Domando a tu asistente de codificación LLM amnésico: el truco definitivo de las Reglas de Cursor

2025-04-14
Domando a tu asistente de codificación LLM amnésico: el truco definitivo de las Reglas de Cursor

Usar LLMs como Cursor para codificar es fantástico, pero tienen un inconveniente: olvidan todo entre sesiones. Esto significa recordar constantemente a la IA sobre tus convenciones de codificación, la estructura del proyecto y tus preferencias. ¿La solución? Una meta-regla. Crea una plantilla de regla que guíe a la IA para crear otras reglas específicas del proyecto. Esto sistematiza la transferencia de tu conocimiento, ahorrando tiempo y asegurando la coherencia en tus proyectos. Esta pequeña inversión inicial en la creación de una meta-regla se compensa enormemente a largo plazo.

Desarrollo

¿Sharding vertical: una pesadilla?

2025-04-13
¿Sharding vertical: una pesadilla?

El autor relata su experiencia con el sharding vertical (sharding funcional), destacando sus inconvenientes. Si bien alivia la carga de la base de datos, fragmenta la aplicación, obligando a la capa de aplicación a gestionar las uniones y consultas que deberían ser manejadas por la base de datos. Esto aumenta significativamente la complejidad del código y la sobrecarga de mantenimiento, y reduce la disponibilidad del sistema. Con humor y una fórmula de tiempo de actividad, el autor muestra cómo el sharding vertical reduce la estabilidad del sistema, retrasando en última instancia las hojas de ruta del producto y desmoralizando a los ingenieros. El artículo concluye introduciendo PgDog, un proyecto de código abierto que busca solucionar el sharding de Postgres.

Desarrollo

Protocolo de Contexto de Modelo (MCP): Un Nuevo Estándar para la Construcción de Aplicaciones LLM Potentes

2025-04-13

Este artículo presenta el Protocolo de Contexto de Modelo (MCP), un protocolo abierto para construir aplicaciones de Modelo de Lenguaje Grande (LLM) a nivel empresarial. MCP resuelve el problema de la falta de estandarización en la integración de LLM con herramientas empresariales, permitiendo que frameworks como LangChain se integren a la perfección con varias fuentes de datos y herramientas como bases de datos y GitHub. El artículo detalla los componentes principales de MCP (servidor, cliente y host de MCP), la configuración de instalación y demostraciones prácticas en Python. Esto incluye la construcción de una aplicación LangChain para calcular intereses simples y compuestos usando Ollama, e interactuar con múltiples servidores MCP usando los modos de transporte stdio y sse. Con MCP, las aplicaciones LLM pueden aprovechar de manera más eficiente los datos y las herramientas empresariales para una funcionalidad más robusta.

GNU Radio: Kit de desarrollo de radio definido por software de código abierto

2025-04-13

GNU Radio es un kit de herramientas de desarrollo de software libre y de código abierto que proporciona bloques de procesamiento de señal para implementar radios definidas por software (SDR). Se puede usar con hardware de RF externo de bajo costo y fácilmente disponible, o sin hardware en un entorno de simulación. Su marco modular, basado en gráficos de flujo, y su extensa biblioteca de bloques de procesamiento lo hacen adecuado para crear aplicaciones de procesamiento de señal complejas en investigación, industria y entornos de aficionados. Si bien no es una solución para hardware o estándares de radio específicos listos para usar, es altamente adaptable para desarrollar implementaciones de varios estándares de comunicación.

Desarrollo

Entrenamiento GRPO ligero: Sin Transformers, sin vLLM

2025-04-13
Entrenamiento GRPO ligero: Sin Transformers, sin vLLM

Este proyecto implementa un framework de entrenamiento GRPO (Group Relative Policy Optimization) ligero, construido casi desde cero, dependiendo solo de tokenizadores y PyTorch. Mejora el algoritmo original eliminando la divergencia de KL e incorporando el filtro de episodios demasiado largos, mejorando la estabilidad del entrenamiento y el uso de la memoria de la GPU. El proyecto entrena el modelo Qwen2.5-3B-Instruct en la tarea CountDown, que requiere generar una expresión matemática para alcanzar un valor objetivo dado un conjunto de números. El modelo lo resuelve aprendiendo a generar razonamiento en cadena de pensamiento antes de la respuesta final, guiado por recompensas de formato y respuesta. Todo el proceso es sencillo y reproducible, ejecutándose en una sola GPU A40 con comandos mínimos.

Desarrollo

Depurando una prueba inestable con `trace` de BCC

2025-04-13

Mientras parcheaba un proyecto de código abierto, el autor encontró pruebas que fallaban intermitentemente. Usando la utilidad `trace` de las herramientas BCC, se monitorizaron las llamadas a la función del kernel `touch_atime`. Esto reveló un hilo en segundo plano en el editor de texto del autor, que escaneaba los archivos del proyecto y alteraba las horas de acceso a los archivos, causando así las fallas erráticas en las pruebas. El caso destaca el poder de las herramientas BCC para la depuración del kernel de Linux y el valor de una profunda comprensión del sistema.

EXWM: Un potente gestor de ventanas para Emacs

2025-04-13
EXWM: Un potente gestor de ventanas para Emacs

EXWM es un gestor de ventanas X para Emacs basado en XELB, con características completas y totalmente controlado por teclado. Ofrece modos de diseño híbrido (mosaico y apilamiento), soporte para espacios de trabajo dinámicos y compatibilidad con ICCCM/EWMH. Las características opcionales incluyen soporte RandR (multimonitor), bandeja del sistema, método de entrada, configuración de fondo y servidor XSETTINGS. ¡Consulta las capturas de pantalla y la guía del usuario para obtener una visión general completa e instrucciones de instalación!

Desarrollo

Alojadores de Arena y Arreglos Dinámicos en Odin: Trampas Ocultas

2025-04-13
Alojadores de Arena y Arreglos Dinámicos en Odin: Trampas Ocultas

El uso de alojadores de arena con arreglos dinámicos en Odin presenta trampas ocultas. Las arenas gestionan eficientemente las asignaciones con la misma vida útil, desasignando todo a la vez. Sin embargo, el mecanismo de crecimiento de los arreglos dinámicos deja bloques de memoria antiguos sin liberar al usar un alojador de arena, lo que lleva a un desperdicio de memoria. El artículo explica por qué: los alojadores de arena no admiten desasignaciones individuales, y el crecimiento del arreglo dinámico crea un 'cementerio' de bloques antiguos. Las soluciones incluyen usar el alojador predeterminado, preasignar el tamaño máximo o usar una arena virtual en crecimiento. Si bien la arena virtual en crecimiento evita el movimiento de bloques de memoria, no es inmune a posibles desperdicios. El artículo concluye que si el uso de la memoria es altamente dinámico, es aconsejable evitar los alojadores de arena.

¡No vendas espacio en tu servidor doméstico!

2025-04-13
¡No vendas espacio en tu servidor doméstico!

Un trabajador de tecnología de una empresa de hosting de tamaño mediano detalla los peligros de convertir tu servidor doméstico en un servicio en la nube improvisado. El artículo destaca la necesidad de hardware adicional, internet más rápida, IPs públicas, una ubicación segura, protección legal y sistemas de facturación robustos. También enfatiza los desafíos de gestionar el soporte al cliente, las copias de seguridad de datos, las vulnerabilidades de seguridad y el cumplimiento de normativas como GDPR y CCPA, además de mitigar riesgos como ataques DDoS y violaciones de datos. En lugar de arriesgarse a repercusiones legales y financieras, el autor sugiere usar el exceso de capacidad informática para necesidades personales, compartir con amigos o donar ciclos a proyectos de investigación.

Desarrollo riesgos

Gatehouse-TS: Una biblioteca de autorización flexible y sin dependencias en TypeScript

2025-04-13
Gatehouse-TS: Una biblioteca de autorización flexible y sin dependencias en TypeScript

Gatehouse-TS es una biblioteca de autorización flexible y sin dependencias escrita en TypeScript, que combina políticas de control de acceso basadas en roles (RBAC), basadas en atributos (ABAC) y basadas en relaciones (ReBAC). Un puerto de la popular biblioteca Gatehouse Rust, cuenta con una API fácil de usar, admite la composición de políticas con operadores lógicos, ofrece un seguimiento detallado de la evaluación para la depuración y proporciona una API de constructor fluido para crear políticas personalizadas. Su diseño ligero y su documentación exhaustiva la hacen fácilmente integrable y adaptable a varios proyectos.

Fennel: Una mejora tipo Lisp para Lua

2025-04-13

Fennel es un lenguaje de programación que se ejecuta en el tiempo de ejecución de Lua. Aprovecha la eficiencia y ligereza de Lua, al tiempo que aborda algunas de las deficiencias de Lua mediante una sintaxis tipo Lisp y un diseño mejorado. Fennel emplea una sintaxis con paréntesis prioritarios, eliminando la ambigüedad de la precedencia de operadores y los retornos anticipados. La gestión de variables más rigurosa previene el uso accidental de variables globales. Las mejoras incluyen la notación de tablas, las estructuras de bucle, las comprobaciones de argumentos de función, la desestructuración de estructuras de datos y la coincidencia de patrones, mejorando la legibilidad y el mantenimiento del código. Aunque Fennel ofrece un sistema de macros potente, generalmente no es necesario. En resumen, Fennel proporciona una forma más segura y limpia de programar en Lua.

Desarrollo

El arma secreta de Linux Mint: ¿Está LMDE 7 listo para hacerse cargo?

2025-04-13
El arma secreta de Linux Mint: ¿Está LMDE 7 listo para hacerse cargo?

Linux Mint está agregando soporte OEM a LMDE 7, su edición basada en Debian, anteriormente considerada solo una solución de emergencia. Este movimiento inesperado alimenta la especulación sobre la estrategia futura de Mint. Algunos usuarios están insatisfechos con la dirección de Canonical para Ubuntu, particularmente con respecto a los paquetes Snap y la telemetría. LMDE, al ser Debian puro, evita estos problemas. La adición del soporte OEM sugiere que LMDE podría estar siendo preparado para un papel más importante, potencialmente incluso reemplazando al Mint basado en Ubuntu como la distribución principal. El desarrollo es significativo y podría remodelar el panorama de escritorio de Linux.

Desarrollo

Lanzamiento de FreeDOS 1.4: Actualización de estabilidad para PC con DOS antiguos

2025-04-13
Lanzamiento de FreeDOS 1.4: Actualización de estabilidad para PC con DOS antiguos

FreeDOS, el sucesor de código abierto de DOS, ha lanzado la versión 1.4, centrándose en mejoras de estabilidad. La actualización incluye un instalador renovado, versiones actualizadas de herramientas esenciales como fdisk y format, y un editor de texto edlin actualizado. Una 'Edición Solo Disquete' está disponible para sistemas antiguos, mientras que un 'BonusCD' ofrece herramientas adicionales y la interfaz gráfica OpenGEM.

Desarrollo

Programación de Alto Rendimiento en Hardware de Baja Potencia: Mi Flujo de Trabajo en la Terminal

2025-04-13

El autor comparte su experiencia de programación eficiente en hardware de baja potencia (por ejemplo, Intel Celeron N4000 e Intel Atom x5-Z8350). El secreto reside en una distribución Linux ligera (Arch Linux), un gestor de ventanas mínimo como i3wm y un editor de texto de terminal como Neovim con la terminal Alacritty. Esta configuración es ligera en recursos y portátil para varias máquinas, proporcionando una experiencia de programación cómoda incluso en hardware de baja potencia o desactualizado. Además, el autor aboga por ideales de programación ligeros, minimizando las dependencias para mejorar los tiempos de compilación y los tamaños de los archivos binarios.

Desarrollo

Pruebas de mutación Rust con cargo-mutants

2025-04-13
Pruebas de mutación Rust con cargo-mutants

cargo-mutants es una herramienta Rust que mejora la calidad del código generando versiones mutantes de tu código para probar su robustez. Identifica errores potenciales que tus pruebas existentes no detectan, ofreciendo una perspectiva diferente a las herramientas tradicionales de cobertura de código. Se centra en si las pruebas realmente verifican el comportamiento del código, no solo el alcance del código. Fácil de usar e integrable con CI, se mantiene activamente y promete mejoras futuras, incluyendo nuevos tipos de mutación.

Desarrollo Calidad del Código

Automatización de correcciones de errores con clústeres de agentes multi-LLM: más barato de lo que piensas

2025-04-13
Automatización de correcciones de errores con clústeres de agentes multi-LLM: más barato de lo que piensas

Esta publicación detalla un nuevo enfoque para la corrección automatizada de errores utilizando varios modelos de lenguaje grandes (LLM). Al integrar Asana, el agente de codificación Aider y un agente Sublayer, el sistema activa automáticamente tres LLM (GPT-4o, Claude 3.5 Sonnet y Gemini 2.0 Flash) para intentar corregir el mismo error. Cada intento se ejecuta en una rama Git separada, lo que resulta en varias solicitudes de extracción. Este enfoque de 'inferencia derrochadora' resulta sorprendentemente barato y eficiente, ofreciendo redundancia y soluciones diversas. Incluso si un modelo falla, otros pueden tener éxito, proporcionando enfoques alternativos. Este experimento muestra el potencial de esta corrección de errores automatizada, multimodelo y de bajo costo, sugiriendo un cambio de paradigma en el desarrollo futuro.

Desarrollo

Osprey: Protección del Navegador

2025-04-13
Osprey: Protección del Navegador

Osprey es una extensión de navegador diseñada para protegerte de sitios web maliciosos. Verifica las URL contra amenazas conocidas y bloquea el acceso a sitios dañinos, mostrando una advertencia si se detecta un sitio malicioso. Fácil de instalar desde la Chrome Web Store o los complementos de Microsoft Edge, Osprey también ofrece instrucciones de instalación manual. Personaliza las opciones de protección y obtén soporte a través del rastreador de problemas proporcionado.

Criptografía de Disco de Próxima Generación de DragonFlyBSD: dm_target_crypt_ng

2025-04-13

DragonFlyBSD ha recibido una actualización importante: dm_target_crypt_ng, una implementación de cifrado de disco de próxima generación. El desarrollador Michael Neumann rediseñó el código DM-crypt para mejorar el rendimiento y la interactividad. La nueva versión abandona opencrypto y cryptodev, optando por una API de cifrado de bloque simétrico simplificada y utilizando dos grupos de trabajadores para mayor eficiencia. Actualmente admite cifrado AES-CBC y AES-XTS, con planes para agregar soporte para Twofish y Serpent. Esta actualización mejora significativamente la capacidad de respuesta del sistema, proporcionando una experiencia de cifrado de disco más fluida para los usuarios de DragonFlyBSD. Se espera que se convierta en el valor predeterminado en la próxima versión de DragonFlyBSD 6.4.

Desarrollo

Un Enfoque Personal para la Gestión de Paquetes Unix

2025-04-13

El autor comparte un método inteligente para gestionar paquetes de software personales en sistemas Unix. Utiliza un árbol de directorios `~/lib/` para almacenar software para diferentes arquitecturas, con cada programa instalado en un subdirectorio separado y versionado (por ejemplo, `emacs-30.1`). Un directorio `~/bin/bin.` contiene enlaces simbólicos o scripts envoltorios que apuntan a estos programas, permitiendo cambiar fácilmente entre versiones. Para herramientas como pipx y Cargo, el autor mantiene sus ubicaciones de instalación predeterminadas, pero crea enlaces en `~/bin/bin.` para evitar conflictos de ruta. Esta configuración no es perfecta, pero es muy útil para gestionar software no disponible a través del gestor de paquetes del sistema o que sea demasiado antiguo.

1 2 113 114 115 117 119 120 121 214 215