mcp-memory: servidor MCP con memoria persistente para agentes de IA

mcp-memory es un servidor que implementa el Model Context Protocol (MCP) para dotar a agentes de inteligencia artificial —como Claude Desktop, Cursor, Antigravity, Windsurf o Codex— de memoria persistente de largo plazo. Cada recuerdo se almacena como un documento Markdown con frontmatter YAML confo

Encontrar el bug WAL de SQLite desde un móvil en una hora con Antithesis

Un ingeniero de Antithesis, Carl, relata cómo localizó y verificó el conocido bug de WAL-Reset de SQLite —un error de condición de carrera en el sistema de registro anticipado de escritura que llevaba oculto desde 2010— usando las skills de Claude para Antithesis. Tras la publicación de SQLite 3.51.

Tailscale destapa y corrige un antiguo fallo de SQLite

Tailscale atribuyó a un único fallo de SQLite una serie de interrupciones que comenzaron a finales de 2024 y afectaron a su servicio durante varios meses. La compañía registró 19 casos de corrupción de bases de datos en seis meses, aunque la mayoría de sus fragmentos de infraestructura y redes tailn

Lecciones de fiabilidad de SQLite, según su creador Richard Hipp

SQLite es una biblioteca escrita en C que implementa un motor de base de datos relacional autónomo, embebido en proceso y con soporte completo de SQL: incluye un planificador de consultas avanzado y transacciones ACID. Por distintas mediciones, se trata de la biblioteca de software más utilizada del

Autoriza, no autentiques: recuperar el control de tus datos personales

El ingeniero Marc-Uwe Klauck presenta un cambio de paradigma en la arquitectura de aplicaciones web: en lugar de que los usuarios se autentiquen en una aplicación para que esta guarde sus datos en una base de datos controlada por el proveedor, los usuarios deberían autorizar a la aplicación a accede

SQLite en producción: cómo ajustar WAL, concurrencia y VFS para baja latencia

SQLite, concebido históricamente como base de datos embebida para móviles, IoT o entornos de desarrollo, puede comportarse como un motor de producción de alto rendimiento si se ajusta de forma adecuada. El artículo desgrana los cuatro ejes clave de esa optimización: el modo Write-Ahead Logging (WAL)

StatLite: monitorización ligera de Spring Boot sin Prometheus ni Grafana

StatLite es una herramienta de código abierto, desarrollada en Go, que convierte las métricas y el estado de salud que ya expone Spring Boot Actuator en un panel de control reducido, pensado para despliegues pequeños en un único VPS. Su objetivo es responder preguntas operativas básicas —si la aplic

Tcl/Tk: kit de herramientas multiplataforma veterano para CLI y GUI

Tcl/Tk es un entorno de desarrollo creado por John Ousterhout en 1990 que permite crear aplicaciones de consola y herramientas con interfaz gráfica para Windows, Linux y macOS a partir de un único código fuente. Combina un lenguaje de scripting interpretado, el Tcl, con un kit de widgets, el Tk, que

El modo WAL de SQLite puede bloquear a lectores de corta duración

El modo WAL (Write-Ahead Logging) de SQLite se presenta a menudo como la solución al clásico error "database is locked", junto con un tiempo de espera de ocupado y transacciones BEGIN IMMEDIATE para escrituras. Sin embargo, este artículo técnico explica por qué esa combinación puede fallar en una ca

stinkpot: un buscador de historial de bash minimalista respaldado por SQLite

stinkpot es una herramienta de línea de comandos escrita en aproximadamente 400 líneas de Go que ofrece búsqueda de historial de shell para bash respaldada por SQLite. Su autor la presenta como una alternativa mucho más reducida a atuin, orientada a usuarios que solo necesitan la gestión de historia

Space Project Sim: un simulador de economía espacial escrito en Rust y Bevy

Space Project Sim es un simulador de economía espacial autónoma escrita en Rust con el motor gráfico Bevy. El proyecto combina un motor de simulación puro (sin entrada/salida ni asincronía) con un cliente 3D nativo que lo integra como biblioteca, de modo que la simulación y el render comparten el mi

Little Navmap: un planificador de vuelos open source construido en C++ y Qt

Little Navmap es un planificador de vuelos de código abierto compatible con simuladores como X-Plane y Microsoft Flight Simulator. El proyecto, iniciado hace una década por Alexander Barthel, está escrito en unas 120.000 líneas de C++ y emplea Qt5, OpenGL y D3D para renderizar la interfaz. Su instal

Enjambres de agentes y la nueva economía de los modelos

Cursor describe los avances de su sistema multiagente en el que agentes planificadores, respaldados por modelos de razonamiento avanzados, descomponen un objetivo en tareas y delegan su ejecución en agentes trabajadores, normalmente modelos más rápidos y económicos. En pruebas comparativas con la ve

Lobste.rs completa su migración a SQLite tras dos años de trabajo

El agregador de enlaces lobste.rs cambió el pasado sábado su base de datos de MariaDB a SQLite, en una operación coordinada por los administradores del sitio, @pushcx y @thomas0, que permanecieron a la espera hasta este lunes para evaluar el comportamiento del sistema ante el pico habitual de tráfic

Cinco lecciones prácticas sobre SQLite en producción con Django

Un desarrollador comparte, tras usar SQLite en varios proyectos web y actualmente en un sitio Django, varias lecciones prácticas extraídas del día a día. La primera es la importancia de ejecutar ANALYZE: al hacer una consulta FTS5 sobre una tabla de 4.000 filas que tardaba 5 segundos, tras lanzar AN

Cómo detectar consultas con escaneo completo de tabla en SQLite

SQLite ofrece, a través de su API de estado de sentencias preparadas, una forma directa de saber si una consulta ha realizado un escaneo completo de tabla ("full table scan") sin necesidad de recurrir a EXPLAIN. El programador Aaron Patterson, conocido en la comunidad Ruby por su trabajo en Rails y

Caracteres NUL en cadenas SQLite: causas y soluciones

SQLite admite caracteres NUL (0x00) en mitad de las cadenas almacenadas, pero su presencia provoca un comportamiento fácil de malinterpretar. La función length() solo cuenta los caracteres anteriores al primer NUL y devuelve la longitud hasta ese punto; lo mismo ocurre con la función quote() y con e

Lobste.rs completa su migración de MariaDB a SQLite en producción

El agregador de enlaces lobste.rs funciona desde el pasado sábado sobre SQLite tras años de debate en su repositorio. El despliegue lo llevaron a cabo el administrador pushcx y el colaborador thomas0, quienes cerraron así la incidencia #539 abierta hace más de seis años. La comunidad esperó al lunes

Una extensión para Firefox permite consultar tablas HTML con PRQL

TableQ es una extensión para Firefox que permite interrogar cualquier tabla HTML de una página web mediante el lenguaje de consultas PRQL. Su autor, cansado de buscar datos manualmente en grandes tablas de Wikipedia, desarrolló la herramienta y publicó el código fuente en Codeberg, además de distrib

EF Core 11 optimiza las consultas divididas al eliminar JOINs innecesarios

EF Core 11 introduce una optimización que mejora el rendimiento de las consultas que usan AsSplitQuery. Por defecto, Entity Framework Core carga los datos en una sola consulta, pero al incluir colecciones mediante Include genera JOINs que duplican filas del padre. AsSplitQuery resuelve ese problema

Earth Game: una herramienta CLI offline para convertir metas en misiones

Earth Game es una herramienta de línea de comandos escrita en Python que permite al usuario definir metas vitales, descomponerlas en misiones (quests) y registrar el progreso diario sin depender de servicios en la nube, cuentas de usuario ni modelos de inteligencia artificial. Funciona exclusivament

Por qué conviene usar tablas STRICT en SQLite

SQLite permite, desde su versión 3.37.0 (publicada en noviembre de 2021), añadir la palabra clave STRICT al final de una sentencia CREATE TABLE para obtener una tabla estricta. Esta característica, a menudo infravalorada, refuerza la integridad de los datos y elimina una clase habitual de errores pr

En Emacs, todo parece un servicio: cómo construir clientes dentro del editor

Emacs es mucho más que un editor de texto: gracias a su acceso integrado a servicios del sistema operativo (sistema de archivos, red, procesos) y a su lenguaje de programación nativo, Emacs Lisp, es posible improvisar dentro de él todo tipo de clientes que se comunican con servicios externos o local

Un escritor relata su obsesión por crear software a medida con ayuda de IA

Un autor y periodista freelance, afincado en Japón, narra en primera persona su creciente obsesión con la programación asistida por inteligencia artificial. Tras la aparición de Claude Code, de Anthropic, hace aproximadamente un año, empezó a construir pequeñas herramientas para uso personal: utilid

Lo que los ORM me han enseñado: aprenda SQL directamente

Este artículo reflexiona sobre las limitaciones de los mapeadores objeto-relacional (ORM) a partir de la experiencia profesional de su autor durante treinta meses trabajando con Postgres y SQLite, principalmente con SQLAlchemy y Hibernate. Su tesis central es que los ORM resultan más un obstáculo qu

Cazando un error de SQLite de 16 años con TLA+

El equipo de dqlite en Canonical, formado por Marco Manino y Alberto Carretero, ha analizado un error de larga duración presente en el motor de base de datos SQLite desde 2010, cuya corrección se publicó en la versión 3.51.3. El fallo reside en la fase de checkpoint del modo Write Ahead Log (WAL) y,

PMB: memoria local persistente para agentes de programación con IA

PMB es una herramienta de código abierto que dota de memoria persistente a los agentes de programación basados en modelos de lenguaje. Toda la información —decisiones técnicas, lecciones aprendidas y datos del proyecto— se almacena en un único archivo SQLite en el disco del usuario, junto a un índic

Cómo un hilo o proceso puede sobrescribir un archivo de base de datos SQLite

SQLite presume de una elevada resistencia a la corrupción: ante un fallo de aplicación, del sistema operativo o un corte de alimentación, la transacción parcialmente escrita se revierte automáticamente al volver a abrir el archivo, sin intervención del usuario. Sin embargo, esa resistencia no es inm

Pre-ordenación de datos aleatorios: cómo acelerar inserciones en SQLite

Las bases de datos basadas en árboles B+, como SQLite, están diseñadas para almacenar datos de forma ordenada. Cuando se insertan identificadores o claves aleatorias, esa organización se rompe: las páginas se reescriben, se producen divisiones de página y el árbol se reequilibra constantemente, lo q

bun-sqlgen: tipos generados para consultas de Bun.sql sin ORM

bun-sqlgen es una herramienta de generación de tipos para consultas realizadas con Bun.sql, el cliente SQL nativo de Bun. Su objetivo es ofrecer SQL tipado y seguro frente al esquema de la base de datos sin recurrir a un ORM, sin genéricos manuales y sin tipos escritos a mano. El flujo de trabajo p

djevops: despliega aplicaciones Django en un VPS Linux sin usar Docker

djevops es una herramienta de línea de comandos pensada para simplificar el despliegue de aplicaciones web Django en un servidor privado virtual (VPS) con Ubuntu o Debian. A diferencia de otras soluciones del mercado, no recurre a Docker, lo que permite llevar los cambios a producción en cuestión de

EZRA: cola de tareas persistente con SQLite y Redis

EZRA es una cola de tareas persistente que combina la simplicidad de SQLite con el protocolo RESP3 de Redis para ofrecer un sistema ligero y fiable. No requiere un clúster de mensajería ni un intermediario externo: un solo binario (~20 MB) y un archivo SQLite bastan para gestionar tareas en segundo

Conductor: Cómo un reescritura completa impulsó la velocidad y el rendimiento

El equipo de Conductor ha rediseñado por completo su aplicación para mejorar significativamente su velocidad. La actualización, que se centra en eliminar cuellos de botella de rendimiento, implica cambios clave en la arquitectura y la pila tecnológica. Inicialmente, Conductor ya apuntaba en la direc

cznic aloja un repositorio llamado sqlite en GitLab con 499 estrellas

La página corresponde al proyecto 'sqlite' alojado dentro del grupo 'cznic' en una instancia de GitLab, identificado con el código 9241019. En el momento de la captura, el repositorio acumula 499 estrellas y se presenta sin descripción ni README visibles en el fragmento proporcionado, lo que reduce

Los problemas de usar UUID aleatorios como clave primaria en SQLite

Las bases de datos recurren con frecuencia a UUID aleatorios como clave primaria por su unicidad distribuida, pero esta elección tiene un coste de rendimiento que muchos desarrolladores desconocen. En SQLite, cada tabla ordinaria dispone de un rowid implícito de 64 bits que actúa como índice agrupad

mnemo: capa de memoria IA local con grafo de conocimiento persistente

mnemo es una capa de memoria local diseñada para dotar a los modelos de lenguaje de gran tamaño (LLM) de memoria persistente sin depender de servicios en la nube. Funciona como un servicio "sidecar" que observa cada conversación, extrae entidades nombradas y relaciones mediante un LLM, construye un

SurrealDB 3.x: resultados de benchmarks comparativos

SurrealDB ha publicado los resultados de benchmarks de su versión 3.x, mostrando mejoras significativas respecto a versiones anteriores y comparándola con competidores como PostgreSQL, MongoDB y Neo4j. Las pruebas se realizaron en hardware uniforme (AMD Ryzen Threadripper 9970X, 128 GiB DDR5, NVMe)

SQLite y Litestream simplifican flujos de trabajo duraderos

DBOS ha argumentado recientemente que PostgreSQL es suficiente para la ejecución duradera, una postura que el autor respalda y lleva más allá: para una amplia clase de sistemas, SQLite es todo lo necesario. La ejecución duradera se centra en el estado del flujo de trabajo, no en una infraestructura

Turso cierra su programa de bug bounty por avalancha de contribuciones de IA

Turso, empresa especializada en bases de datos y reescritura de SQLite, ha anunciado el cierre de su programa de bug bounty que ofrecía 1.000 dólares por errores que causaran corrupción de datos. La decisión se tomó debido a la oleada masiva de contribuciones automatizadas de baja calidad generadas

Optimizan diccionario finés-inglés: de 3 GB a 10 MB

Este artículo cuenta cómo un desarrollador optimizó dramáticamente un diccionario finés-inglés llamado Taskusanakirja (tsk). El problema original era realizar búsquedas prefijas instantáneas en un idioma altamente agglutinativo como el finlandés, donde una sola palabra puede generar más de cien form

Documentación como código: así funciona SDocs

## SDocs: Documentación como Código para Infraestructuras Modernas SDocs es una herramienta innovadora que permite tratar la documentación de tu infraestructura (especialmente en entornos Kubernetes y cloud computing) como código. Tradicionalmente, la documentación se crea y mantiene en formatos co

Biblioteca del Congreso apoya SQLite para datos digitales

La Biblioteca del Congreso de Estados Unidos ha recomendado SQLite como formato de almacenamiento para la preservación de datos, un reconocimiento significativo para la popular base de datos. La designación, publicada en 2018, sitúa a SQLite junto a formatos como XML, JSON y CSV como opciones que ma

Adam: Nueva biblioteca C facilita el desarrollo de IA

Un nuevo proyecto de código abierto llamado 'Adam' ha sido lanzado, ofreciendo una biblioteca en C para simplificar el desarrollo de agentes de inteligencia artificial. Adam proporciona un bucle de agente completo, incluyendo la llamada a herramientas, la gestión de la memoria, sesiones, soporte par

LET: App de código abierto para entender tu vida

LET (Life Events Tracker) es una aplicación móvil de código abierto diseñada para ayudarte a rastrear tus hábitos diarios, eventos importantes de tu vida y descubrir patrones en tu comportamiento. Imagina un diario digital inteligente que va más allá de simplemente registrar información; te ayuda a

SQLite ahora con pub/sub: extensión Honker revoluciona

Un desarrollador ha creado 'Honker', una extensión para SQLite que añade capacidades de publicación/suscripción (pub/sub) al estilo de PostgreSQL, sin necesidad de un servidor externo como Redis o Celery. Honker permite la creación de colas de tareas, flujos de eventos y notificaciones entre proceso

Hiraeth: Emulador local facilita pruebas de AWS SQS

Un desarrollador ha lanzado 'Hiraeth', un emulador local de AWS SQS (Simple Queue Service) diseñado para simplificar las pruebas de integración. Este proyecto, aún en fase temprana, permite a los desarrolladores simular el comportamiento de SQS en su entorno local sin necesidad de conectarse a la in

Archivos planos: alternativa a bases de datos para apps pequeñas

Un reciente análisis comparativo realizado por DB Pro ha revelado que, para aplicaciones pequeñas y en etapas iniciales, el uso de archivos planos (JSONL) puede ser una alternativa viable a las bases de datos tradicionales como SQLite o PostgreSQL. El estudio, que comparó el rendimiento de servidore

Scheme: repositorio desacoplado para datos

Este artículo presenta un enfoque innovador para la capa de datos en proyectos Scheme, buscando resolver un problema común: el acoplamiento estrecho entre la capa de control y la implementación específica de la base de datos (en este caso, SQLite). El autor, proveniente de un background en lenguajes

Emprendedor gestiona varias empresas con $20 al mes

Un emprendedor, Steve Hanov, ha revelado una estrategia para operar múltiples empresas con un costo técnico mínimo, alrededor de $20 al mes. El enfoque se centra en la eficiencia y el bootstrapping, evitando la búsqueda de financiación externa y la infraestructura costosa típica de las empresas tecn

Herramienta web facilita el análisis de indultos presidenciales

## Hacker News: Un Explorador de Indultos Presidenciales con Playwright, SQLite y Astro El proyecto descrito es una aplicación web creada para facilitar la investigación y verificación de indultos presidenciales. Inspirado en el trabajo de Liz Oyer (probablemente una investigadora o periodista que

IA recuerda: Nuevo sistema mejora la memoria de los agentes

Un nuevo sistema de memoria para agentes de IA llamado Hippo-Memory ha sido lanzado, abordando la limitación de los agentes actuales que olvidan el contexto entre sesiones. Hippo-Memory permite a los agentes recordar información de manera persistente y portátil, funcionando como una capa de memoria

Trigger.dev impulsa rendimiento con cambio a Bun

La empresa Trigger.dev reemplazó Node.js con Bun en uno de sus servicios críticos, Firestarter, un broker de conexiones HTTP, logrando un aumento del 5 veces en el rendimiento (throughput). Firestarter es vital para la ejecución de tareas en Trigger.dev, eliminando la necesidad de arranques en frío

Syntaqlite: IA acelera herramientas para SQLite

Este artículo narra la historia de Lalit Maganti, un ingeniero que durante ocho años deseó crear un conjunto de herramientas de desarrollo (devtools) de alta calidad para SQLite, una base de datos embebida crucial en la industria. La dificultad radicaba en la ausencia de herramientas adecuadas para

Tienda usa SQLite en producción: ¿simple o riesgoso?

Una tienda de comercio electrónico está utilizando SQLite como su sistema de producción, una elección facilitada por Rails 8, lo que simplifica las implementaciones y elimina la gestión de servidores de bases de datos. La configuración implica cuatro bases de datos SQLite (principal, caché, cola y c

SQLite: nuevas herramientas para datos y búsquedas

SQLite, una base de datos embebida ampliamente utilizada, ha incorporado recientemente una serie de potentes nuevas funcionalidades que amplían significativamente sus capacidades. Estas mejoras, disponibles en versiones modernas de SQLite, incluyen soporte nativo para el manejo y consulta de datos J

Turbolite: SQLite en la nube, más rápido y eficiente

Un nuevo proyecto de código abierto llamado Turbolite promete acelerar significativamente las consultas de bases de datos SQLite alojadas en la nube. Desarrollado en Rust, Turbolite actúa como una extensión VFS (Virtual File System) que permite realizar búsquedas y uniones directamente desde servici

Oxyde: Nuevo ORM Python Busca Velocidad y Claridad

Un nuevo ORM llamado Oxyde ha sido lanzado para desarrolladores de Python, prometiendo velocidad, claridad y fiabilidad. Inspirado en el ORM de Django, Oxyde se distingue por su enfoque en la explicitud y el uso de Pydantic v2 para la validación de tipos y serialización. El ORM, cuyo núcleo está con

IA: plausibilidad, no precisión, guía a los modelos de lenguaje

Un nuevo análisis revela que los modelos de lenguaje grandes (LLM) como los utilizados en la generación de código, priorizan la plausibilidad sobre la corrección. Esto se evidencia en un caso práctico donde un código de base de datos reimplementado en Rust por un LLM, aunque compilable, funcional y

FrankenSQLite: Base de Datos Más Rápida y Segura

FrankenSQLite es un nuevo motor de base de datos escrito en Rust que busca revolucionar la forma en que SQLite maneja la concurrencia y la seguridad. A diferencia de SQLite, que serializa las escrituras a través de un único escritor WAL, FrankenSQLite permite ocho escritores en paralelo, eliminando

UNF: Protección de datos continua sin commits

Una nueva herramienta llamada UNF ofrece una solución innovadora para la protección de datos, permitiendo el versionado continuo de archivos a nivel de segundo, sin necesidad de commits. Desarrollada por unfudged.io, UNF se presenta como una alternativa a Git, Ctrl+Z y Time Machine, que tienen limit

KeePass: SQLite podría mejorar seguridad y rendimiento

KeePass es un gestor de contraseñas ampliamente respetado por su seguridad y enfoque en la soberanía de los datos. Sin embargo, el formato KDBX, utilizado desde 2007, basado en XML, ha generado problemas para los desarrolladores y usuarios al intentar incorporar nuevas funciones modernas. El formato

Snkv: Almacenamiento Clave-Valor Simplificado con SQLite

Un nuevo proyecto llamado SNKV (SQLite Key-Value) ofrece una biblioteca ligera para almacenamiento de clave-valor directamente sobre SQLite, eliminando la necesidad de SQL. Desarrollado por Hash-Anu y disponible en GitHub, SNKV se integra fácilmente en proyectos C/C++ con un solo encabezado y propor

micasa: gestiona tu hogar con esta herramienta gratuita

Un nuevo software de línea de comandos llamado 'micasa' ha sido lanzado para ayudar a los usuarios a gestionar el mantenimiento del hogar de manera organizada y eficiente. Desarrollado por cpcloud y disponible para Linux, macOS y Windows, 'micasa' permite rastrear tareas de mantenimiento, proyectos,

Stoolap: Nuevo Driver Node.js Deja Atrás a SQLite

Un nuevo driver para Node.js llamado Stoolap, desarrollado en Rust, está superando a SQLite en benchmarks, según un artículo publicado en stoolap.io. Stoolap se presenta como una alternativa a SQLite, ofreciendo características avanzadas como transacciones MVCC, optimizador de consultas basado en co

Wax: IA más fácil con nueva gestión de memoria

Un nuevo conjunto de herramientas llamado 'Wax' simplifica la gestión de la memoria para aplicaciones de inteligencia artificial, ofreciendo una alternativa radical a las complejas arquitecturas tradicionales de Retrieval-Augmented Generation (RAG). Desarrollado por Christopherkarani y disponible en

SQLite ahora con búsqueda semántica: más allá de palabras clave

SQLite, una base de datos ligera y ampliamente utilizada, ha incorporado capacidades de búsqueda semántica gracias a una extensión desarrollada por un investigador. Anteriormente, SQLite solo ofrecía búsqueda textual a través de su extensión FTS5, pero carecía de la capacidad de combinar la coincide

IA construye SQLite: experimento innovador en Rust

Este artículo describe un experimento innovador para construir un motor de base de datos SQLite compatible utilizando inteligencia artificial generativa (IA generativa), específicamente los modelos Claude, Codex y Gemini, para generar código en Rust. El objetivo era explorar la viabilidad de la inge

Zig: Manejo de errores con 'Error Payloads'

Este artículo del blog de srcreigh.ca introduce una técnica innovadora para el manejo de errores en el lenguaje de programación Zig, llamada "Error Payloads". En esencia, Zig permite definir tipos de datos personalizados para representar errores, que incluyen información adicional (el "payload") jun

IA compila Linux: Anthropic desafía a GCC

Anthropic ha desarrollado un compilador de C llamado CCC (Claude’s C Compiler), construido íntegramente con Claude Opus 4.6, un modelo de lenguaje de IA. El objetivo era verificar la afirmación de que CCC podía compilar el kernel de Linux, un logro significativo dada la complejidad de los compilador

LocalGPT: IA Privada que Funciona en tu Dispositivo

Un nuevo asistente de inteligencia artificial llamado LocalGPT ha sido lanzado, ofreciendo una alternativa centrada en la privacidad y la personalización. Desarrollado en Rust, LocalGPT se ejecuta completamente en el dispositivo del usuario, lo que garantiza que los datos y la memoria permanezcan lo

Código Repetido: Ranking Revela la Complejidad de Lenguajes

Un investigador utilizó la herramienta 'scc' para medir la complejidad del código en repositorios de GitHub, analizando específicamente la métrica de 'Líneas de Código Únicas' (LUC). El objetivo era determinar la cantidad de código único en diferentes lenguajes de programación y comparar la repetici