Apuntes cortos sobre herramientas, patrones y cosas que aprendo construyendo plataformas, pipelines geoespaciales y sistemas de IA. Short notes on tools, patterns, and things I learn while building platforms, geospatial pipelines, and AI systems.
Usando ST_Intersects y ST_Within para consultas geoespaciales eficientes sobre los límites municipales DANE de Colombia. Indexación GiST, simplificación de geometrías y patrones de join para tablas con millones de puntos.
Using ST_Intersects and ST_Within for efficient geospatial queries on Colombian DANE municipal boundaries. GiST indexing, geometry simplification, and join patterns for tables with millions of points.
Patrones de Row-Level Security para aislar datos institucionales entre observatorios. Políticas basadas en auth.jwt(), roles por organización y estrategias de testing para RLS en entornos multitenant.
Row-level security patterns for isolating institutional data across observatories. Policies based on auth.jwt(), org-scoped roles, and RLS testing strategies for multi-tenant environments.
Obtener extracción JSON confiable de facturas colombianas escaneadas usando tool_use. Definición de schemas para NIT, conceptos ICA y líneas de facturación. Manejo de errores de parsing y estrategias de retry.
Getting reliable JSON extraction from scanned Colombian invoices using tool_use. Schema definition for NIT, ICA tax concepts, and invoice line items. Parse error handling and retry strategies.
Clasificación Random Forest de compuestos Sentinel-2 para mapeo de uso de suelo en Antioquia. Composición temporal libre de nubes, selección de bandas espectrales, índices de vegetación y validación con matrices de confusión. Random Forest classification of Sentinel-2 composites for land use mapping in Antioquia. Cloud-free temporal compositing, spectral band selection, vegetation indices, and validation with confusion matrices.
Patrones para hacer streaming de grandes conjuntos de datos en dashboards de observatorios. Uso de Suspense, server components asíncronos y carga progresiva de tablas con +50k filas sin bloquear el hilo principal.
Patterns for streaming large datasets in observatory dashboards. Using Suspense, async server components, and progressive table loading for 50k+ rows without blocking the main thread.
Evadiendo detección de bots en Computrabajo y ElEmpleo con el plugin stealth de Playwright. Rotación de user-agents, delays aleatorios, fingerprinting de navegador y estrategias de paginación para extraer vacantes laborales. Bypassing bot detection on Computrabajo and ElEmpleo with Playwright stealth plugin. User-agent rotation, random delays, browser fingerprinting, and pagination strategies for extracting job listings.
Usando multilingual-e5-large para recuperación de estatutos tributarios en español con mejora de consultas. Chunking de documentos legales, metadata filtering por artículo y año, y re-ranking para mejorar precisión en RAG.
Using multilingual-e5-large for Spanish tax statute retrieval with query enhancement. Legal document chunking, metadata filtering by article and year, and re-ranking for improved RAG precision.
Despliegue confiable de bots Python de larga ejecución en un VPS con reinicios automáticos. Configuración de unit files de systemd, logging con journald, variables de entorno y monitoreo básico de salud del proceso. Reliable long-running Python bot deployment on a VPS with automatic restarts. Systemd unit file configuration, journald logging, environment variable management, and basic process health monitoring.