Selección
Proyectos
ai-news
Estar al día de la IA se había vuelto un trabajo de varias horas diarias. Construí un pipeline que reduce esa lectura a diez minutos: filtra una decena de fuentes con reglas clásicas y deja al modelo solo para el tramo final. Lo leen personas, y lo consultan otros agentes.
- fastapi
- react
- pgvector
- mcp
bizkaia-now
¿Qué hay hoy o este finde en Bizkaia? Un mapa que lo responde. Iba a escribir scrapers para nueve salas y resultó que la agenda abierta del Gobierno Vasco ya las cubría. Lo difícil no era conseguir los eventos, sino saber cuándo dos son el mismo.
- python
- fastapi
- postgis
- maplibre
a11y-crawler
Auditar la accesibilidad de un sitio entero sin revisar página por página. Agrupo las que comparten plantilla, audito una y propago. El trabajo pesado es determinista; el modelo solo entra al final para resolver dudas. Luego descubrí que había reinventado un paper de Princeton.
- typescript
- playwright
- axe-core
- postgres
recon
La mayoría de los «deep research» generan prosa convincente sin decirte de qué te puedes fiar. Recon separa investigar de verificar: varios agentes buscan, un fact-checker etiqueta cada afirmación —verificada, contradicha, sin fuente— y solo entonces redacta el informe.
- python
- crewai
- sqlite
- embeddings
viz-components
Una librería de gráficos que funciona igual en Next.js, Angular o HTML a pelo, sin adaptadores. La clave fue no casarse con ningún framework: Web Components estándar. Publicada en npm; el mismo <viz-chart> en cualquier sitio.
- lit
- web-components
- highcharts
- npm
vlm-dni-ocr
Extraer los campos de un DNI cuando la foto viene torcida o con manchas, donde el OCR clásico se rinde. Aquí el modelo de visión sí gana: lee la imagen. Pero con red: si un dato no pasa la validación, va a nulo. Un dato inventado en un documento es peor que ninguno.
- python
- doctr
- qwen-vl
- fastapi
workflow-lint
Los workflows de agentes de Claude Code orquestan, pero no avisan si el script tiene un fallo tonto: te enteras a mitad de ejecución, con el coste ya gastado. Esto lo caza antes de lanzar —en milisegundos y sin gastar un token—. Hacía falta un linter, no un modelo.
- javascript
- static-analysis
- claude-code
lighthouses-bot
Ocho generaciones de bot en Rust que ganaban casi siempre… contra sí mismas. Contra bots reales, cuarto de cinco. Lo tiré, lo reescribí en Python y llegué a primero midiendo un torneo que no era el de verdad. Medir mucho no es medir bien.
- rust
- python
- heuristics
- game-bot
euskal34
Trece retos de hacking y criptografía de la Euskal Encounter 34: ganamos con doce de trece y publicamos los writeups uno a uno. Cómo se atacó cada nivel, qué se probó y no funcionó, y los scripts para reproducirlo.
- ctf
- reversing
- criptografía
- python