🚀 Blinter The Linter – A Cross Platform Batch Script Linter

Yes, it’s 2025. Yes, people still write batch scripts. No, they shouldn’t crash. What It Does ✅ 157 rules across Error/Warning/Style/Security/Performance ✅ Catches the nasty stuff: Command injection, path traversal, unsafe temp files ✅ Handles the weird stuff: Variable expansion, FOR loops, multilevel escaping ✅ 10MB+ files? No problem. Unicode? Got it. Thread-safe? Always. Get…

Read More

The Right Way to Handle 404s in Angular SPAs with Nginx

Modern Angular and other single-page applications (SPAs) often break one of the web’s oldest conventions — returning the correct HTTP status code. When every route, valid or not, serves index.html, even a nonexistent page returns 200 OK. This confuses search engines and creates “soft 404” issues that hurt your site’s SEO. This article walks through…

Read More

AWS IAM ACCESS ANALYSIS & REPORTS

📌 This article is part of the AWS IAM Deep Dive series. 1. What is Access Analysis & Reports in IAM? AWS IAM Access Analysis & Reports are built-in tools that help you monitor, audit, and understand permissions across your AWS environment. They help you detect unused, excessive, or risky permissions — ensuring you always…

Read More

Implementing Astro Pagination for Large Data

When I was building the MCP directory for Free DevTools, I ran into a problem: loading 13,000+ repositories from JSON at once was painfully slow. I initially tried to build a custom pagination component, but it didn’t work efficiently — everything had to load at once before the UI even appeared. That’s when I started…

Read More

Angular 20: De la programación imperativa a la creación declarativa de componentes dinámicos

Angular 20 ha llegado con nuevas y geniales características y mejoras. Una de las adiciones más significativas es la simplificación de la creación de componentes dinámicos, que la hace mucho más limpia, consistente y predecible. Esta mejora alinea la sintaxis para componentes dinámicos con la forma en que funcionan los “enlaces” (bindings) en las plantillas…

Read More

LLPY-04: Vectorización y Embeddings – Preparando Datos para RAG

🎯 Introducción En el mundo de los sistemas RAG (Retrieval-Augmented Generation), la vectorización es el proceso crítico que convierte texto no estructurado en representaciones numéricas que las máquinas pueden entender y comparar. Después de haber procesado y estructurado nuestros datos legales en el post anterior, ahora necesitamos transformarlos en embeddings que permitan búsquedas semánticas precisas….

Read More