← Volver al inicio

Archivo de proyectos

Trabajo reciente,
sin atajos.

Siete casos de estudio contados por dentro: qué problema había, qué decidí y qué aprendí. Los números vienen del código, no del deseo.

01 / Índice

Todos los proyectos.

Ordenados por lo que quiero que se me pida hacer: IA aplicada y automatización, después backend, y debajo el suelo donde corre todo.

7 de 7 proyectos visibles.

IA y automatización

02

Subtítulos en directo, sin conexión

Escucha el japonés del micrófono o del audio del PC y va pintando la traducción en una ventana flotante que se puede dejar por encima de todo. Whisper Small cuantizado a INT8 en CPU y un segundo modelo para el salto final: ni un byte de audio sale del equipo.

Pythonfaster-whisperCTranslate2PySide6100 % local
0peticiones a la nube2idiomas destino4 spor fragmento
↗
IA y automatización

03

Navegar, clasificar y cubrir un país

Tres herramientas que se pasan el testigo: una recorre la web guiada por un modelo que corre en casa y entrega el ratón al humano cuando aparece un CAPTCHA; otra convierte perfiles públicos en dos sectores con reglas propias de descarte; la tercera cubre España con una retícula sobre el nomenclátor oficial enviando siempre la misma consulta.

PythonPlaywrightOllamaPlaces APISQLite
20.900líneas0APIs de IA de pago2sectores
↗
IA y automatización

04

Seis agentes IA jugando entre ellos

Un juego de mesa con demasiadas reglas que acabó siendo un banco de pruebas: un modelo local pilota cada asiento por contrato JSON, cuatro estrategias comparables en tandas de cien rondas, y un cortocircuito que sigue jugando con heurística si el modelo se cae.

PythontkinterOllamaJSONsin dependencias
3.959líneas174métodos4estrategias
↗
Full-stack

05

Web, APK y servidor para coordinar partidas

El calendario compartido de un grupo de rol: disponibilidad por franjas, encuestas que se convierten en sesión y avisos recurrentes programados en el propio teléfono. El backend calcula qué franja encaja con todo el grupo y guarda cada fecha en UTC mostrándola en la zona de cada mesa. Se instala en cualquier máquina con Docker y no depende de ningún servicio ajeno.

Java 21Spring BootReactCapacitorFlywayDocker
37endpoints11entidadesUTCzona por mesa
↗
Infraestructura

06

El servidor de IA con dos GPU que usa todo lo demás

Dos tarjetas gráficas y 256 GB de memoria con corrección de errores sirviendo un modelo de 125 mil millones de parámetros por una API compatible con OpenAI. El CRM, los rascadores y la demo de RAG le hablan cambiando una variable de entorno.

unRAIDDockerCUDAGGUFNginx
125 Bparámetros64 GBde VRAM
↗
Infraestructura

07

El almacén de datos de una productora de vídeo

Edición compartida en DaVinci Resolve sobre un servidor de datos propio. El caso que explica por qué el cloud deja de ser barato cuando el volumen no baja nunca, y por qué el códec se filtra antes de descargar.

Almacenamiento de redDaVinci ResolveH.264 · AACCoste por volumen
1080ptecho de descarga0cifras publicadas
↗

Aún más cosas, sin caso de estudio.

Herramientas pequeñas que uso o he usado y que demuestran oficio más que arquitectura. Se enseñan en una línea; si interesa alguna, la abro en detalle.

  • Compresor de PDF Escritorio

    El PDF de cuarenta megabytes que un portal administrativo no acepta, y la negativa a subirlo a una web de terceros. Busca entre once pares de resolución y calidad sobre dos perfiles de Ghostscript, mide cada intento en un temporal y se para en cuanto uno cabe; si ninguno cabe, entrega el más pequeño conseguido y lo dice. Cuando el equipo no tiene Ghostscript, se lo descarga y lo instala en la carpeta del usuario, sin administrador.

    PythonGhostscriptPyInstaller
  • Lector por turnos Extensión

    Recorre pestañas, scrollea, sigue la paginación y cierra la sesión al terminar. Ciclo de vida Manifest V3 bien resuelto: alarms, reinyección y fencing por identificador de ejecución.

    JavaScriptManifest V3
  • Preguntas a mis apuntes RAG

    Índice vectorial local con Qdrant en modo embebido y embeddings BGE-M3 sobre un modelo pequeño de Ollama. Quinientas treinta y dos líneas de Python en once módulos limpios: cortado con solape y anclaje a frontera de frase, índice persistente, y un aviso honesto sobre la limitación real de Qdrant local, que no permite dos procesos a la vez sobre el mismo almacén.

    PythonQdrantRAG
  • Descarga por lotes Utilidad

    Un fichero de enlaces, dos scripts independientes en Python. Antes de tocar la red comprueba que FFmpeg está en el PATH y sale con código 2 si no; cada enlace se captura por separado, así que uno roto no tumba la tanda y el resumen dice cuántas pasaron y cuántas no. El nombre de salida se recorta por bytes y se limpia para Windows, y la lista acepta comentarios.

    Pythonyt-dlpFFmpeg
  • Tetris de una sola hoja Demo

    Un solo fichero, cuatrocientas cincuenta y cuatro líneas de Canvas 2D. Bolsa de siete piezas barajada con Fisher-Yates, reserva con intercambio limitado a uno por pieza, pieza fantasma calculada proyectando la colisión, y puntuación y nivel oficiales: [0, 100, 300, 500, 800] por líneas, nivel cada diez, gravedad de 800 a 80 milisegundos. El bucle se mueve con tiempo delta, no con cuadros fijos, así que corre igual a 60 que a 144 hercios.

    JavaScriptCanvas