Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
20 changes: 10 additions & 10 deletions .claude/CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ Sitio web oficial de Código Sin Siesta construido con Docusaurus 3. Incluye doc
## Stack Tecnológico

- **Framework**: Docusaurus 3.9.2
- **Package Manager**: pnpm 10
- **Package Manager**: bun
- **Node**: v20
- **Lenguaje**: JavaScript (opcionalmente TypeScript)
- **Deployment**: GitHub Pages con GitHub Actions
Expand Down Expand Up @@ -40,23 +40,23 @@ Sitio web oficial de Código Sin Siesta construido con Docusaurus 3. Incluye doc
├── docusaurus.config.js # Configuración principal
├── sidebars.js # Configuración de navegación lateral
├── package.json
└── pnpm-lock.yaml # Lockfile de dependencias
└── bun.lockb # Lockfile de dependencias
```

## Comandos Importantes

```bash
# Desarrollo local
pnpm start # Servidor de desarrollo en http://localhost:3000
bun start # Servidor de desarrollo en http://localhost:3000

# Build para producción
pnpm run build # Genera build en ./build
bun run build # Genera build en ./build

# Testing local del build
pnpm run serve # Sirve el build localmente
bun run serve # Sirve el build localmente

# Limpiar cache
pnpm run clear # Limpia cache de Docusaurus
bun run clear # Limpia cache de Docusaurus
```

## Workflow de Desarrollo
Expand All @@ -66,7 +66,7 @@ pnpm run clear # Limpia cache de Docusaurus
Para editar contenido (docs, blog, páginas):

1. Editar archivos correspondientes en `docs/`, `blog/`, o `src/pages/`
2. Probar localmente con `pnpm start`
2. Probar localmente con `bun start`
3. Commit y push a main
4. GitHub Actions desplegará automáticamente

Expand Down Expand Up @@ -126,7 +126,7 @@ Contenido completo...
### Workflows

1. **deploy.yml**: Deploy automático en push a `main`
- Instala dependencias con pnpm
- Instala dependencias con bun
- Ejecuta build
- Despliega a GitHub Pages

Expand All @@ -148,7 +148,7 @@ gh run view [RUN_ID] --log

### Build falla en GitHub Actions

1. Verificar que `pnpm-lock.yaml` esté committeado
1. Verificar que `bun.lockb` esté committeado
2. Verificar que no haya errores de sintaxis en archivos `.md`
3. Ver logs: `gh run view --log`

Expand Down Expand Up @@ -179,7 +179,7 @@ Cada proyecto tiene su propio repositorio y deployment independiente.

## Notas Importantes

1. **NO usar npm/yarn**: Este proyecto usa pnpm exclusivamente
1. **Usar bun**: Este proyecto usa bun exclusivamente (NO usar npm/yarn/pnpm)
2. **Archivo .nojekyll**: No eliminar `static/.nojekyll` - previene procesamiento Jekyll
3. **Idioma**: El sitio está en español. Mantener consistencia en contenido nuevo
4. **Autores**: Añadir nuevos autores en `blog/authors.yml` antes de usarlos en posts
9 changes: 3 additions & 6 deletions .github/workflows/deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,20 +14,17 @@ jobs:
with:
fetch-depth: 0

- uses: pnpm/action-setup@v4
with:
version: 10
- uses: oven-sh/setup-bun@v2

- uses: actions/setup-node@v4
with:
node-version: 20
cache: pnpm

- name: Install dependencies
run: pnpm install --frozen-lockfile
run: bun install --frozen-lockfile

- name: Build website
run: pnpm run build
run: bun run build

- name: Upload Build Artifact
uses: actions/upload-pages-artifact@v3
Expand Down
9 changes: 3 additions & 6 deletions .github/workflows/test-deploy.yml
Original file line number Diff line number Diff line change
Expand Up @@ -14,17 +14,14 @@ jobs:
with:
fetch-depth: 0

- uses: pnpm/action-setup@v4
with:
version: 10
- uses: oven-sh/setup-bun@v2

- uses: actions/setup-node@v4
with:
node-version: 20
cache: pnpm

- name: Install dependencies
run: pnpm install --frozen-lockfile
run: bun install --frozen-lockfile

- name: Test build website
run: pnpm run build
run: bun run build
12 changes: 6 additions & 6 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -19,34 +19,34 @@ Este sitio está construido con [Docusaurus 3](https://docusaurus.io/), un gener
### Requisitos Previos

- Node.js 20 o superior
- pnpm (recomendado) o npm/yarn
- bun (recomendado)

### Instalación

```bash
pnpm install
bun install
```

### Servidor de Desarrollo

```bash
pnpm start
bun start
```

Esto inicia un servidor local en `http://localhost:3000` con recarga automática.

### Build de Producción

```bash
pnpm build
bun run build
```

Genera el contenido estático en el directorio `build/`.

### Previsualizar Build

```bash
pnpm serve
bun run serve
```

Sirve el contenido del directorio `build/` para previsualizar antes de desplegar.
Expand All @@ -60,7 +60,7 @@ El sitio se despliega automáticamente a GitHub Pages mediante GitHub Actions cu
El archivo `.github/workflows/deploy.yml` maneja el proceso de deployment:

1. Checkout del código
2. Configuración de pnpm y Node.js 20
2. Instalación de bun y Node.js 20
3. Instalación de dependencias
4. Build del sitio
5. Deploy a GitHub Pages
Expand Down
2 changes: 1 addition & 1 deletion blog/2025-12-08-welcome/index.md
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
slug: bienvenida
title: Código Sin Siesta - Donde la Disciplina Gana a la Velocidad
authors: [codigosinsiesta]
authors: [TellMeAlex]
tags: [bienvenida, filosofia, calidad-codigo, ia-responsable]
---

Expand Down
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
slug: vibe-coding-vs-software-engineering
title: "Vibe Coding vs Software Engineering: La Paradoja del Desarrollo Moderno"
authors: [codigosinsiesta]
authors: [TellMeAlex]
tags: [ai, software-engineering, best-practices, framework-4r, calidad-codigo]
image: /img/blog-header.jpg
---
Expand Down
123 changes: 123 additions & 0 deletions blog/2025-12-18-mgrep-busqueda-semantica.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,123 @@
---
slug: mgrep-busqueda-semantica-codigo
title: mgrep - Búsqueda Semántica de Código que Entiende Tu Intención
authors: [TellMeAlex]
tags: [herramientas, cli, búsqueda, ia, productividad]
---

Si alguna vez has pasado horas buscando esa función crítica en una base de código gigante, probando docenas de patrones de `grep` sin éxito, entonces `mgrep` es la herramienta que estabas esperando. Es como tener un compañero que realmente entiende lo que buscas, no solo las palabras exactas que usaste.

<!-- truncate -->

## ¿Qué es mgrep?

`mgrep` es una herramienta de línea de comandos que lleva la búsqueda de código al 2025. A diferencia de `grep` (que existe desde 1973), `mgrep` utiliza búsqueda semántica para entender la **intención** detrás de tus consultas en lenguaje natural.

En lugar de buscar patrones exactos, puedes preguntar cosas como:

```bash
mgrep "donde configuramos la autenticación?"
mgrep "lógica para procesar pagos con tarjeta"
mgrep "función que valida emails"
```

Y encontrará el código relevante, incluso si usa nombres de variables o convenciones diferentes a las que imaginabas.

## El Problema con grep

No me malinterpretes: `grep` es una herramienta increíble. Es liviana, está en todas partes, y es confiable. Pero tiene limitaciones fundamentales de su época:

1. **Necesitas patrones exactos**: Si el código usa `authenticate` pero tú buscas `auth`, no lo encontrarás
2. **Se vuelve lento en proyectos grandes**: Justamente cuando más lo necesitas
3. **No entiende contexto**: No puede distinguir entre búsquedas semánticamente similares
4. **Agota tokens de agentes de IA**: Los agentes modernos intentan cientos de patrones, consumiendo tokens y tiempo

Si has visto a un agente de código intentar 50 variaciones de grep para encontrar algo, sabes exactamente de qué hablo.

## Ventajas Principales de mgrep

### 1. Búsqueda en Lenguaje Natural

La mayor ventaja es obvia pero transformadora: puedes describir lo que buscas en lugar de adivinar patrones:

```bash
# Con grep tradicional
grep -r "auth" . | grep -i "setup" | grep -v "test"
grep -r "authentication" .
grep -r "login" .
# ... y así sucesivamente

# Con mgrep
mgrep "donde configuramos la autenticación?"
```

### 2. Multimodal y Multilingüe

`mgrep` no solo busca en código. Funciona con:

- **Código** (cualquier lenguaje de programación)
- **Texto plano**
- **PDFs** (documentación técnica)
- **Imágenes** (diagramas, screenshots)
- **Audio y video** (próximamente)

Y lo hace en cualquier idioma, no solo inglés.

### 3. Búsqueda Web Integrada

Necesitas documentación externa sin salir de la terminal:

```bash
# Buscar y obtener respuesta resumida
mgrep --web --answer "mejores prácticas error handling en TypeScript"

# Solo obtener URLs relevantes
mgrep --web "documentación API de Stripe para pagos recurrentes"
```

### 4. Indexación Inteligente en Segundo Plano

El comando `mgrep watch` indexa tu repositorio respetando `.gitignore` y mantiene el índice actualizado automáticamente:

```bash
cd mi-proyecto
mgrep watch # Indexa una vez y mantiene sincronizado
```

Esto significa búsquedas instantáneas sin esperas, incluso en proyectos enormes.

### 5. Diseñado para Agentes de IA

`mgrep` reduce el uso de tokens en agentes de IA hasta en **2x** mientras mantiene o mejora la calidad de resultados.

¿Cómo? En lugar de que el agente intente docenas de patrones de grep, `mgrep` encuentra los fragmentos relevantes en pocas consultas semánticas, permitiendo que el modelo dedique su capacidad a razonar en lugar de buscar.

### 6. Sintaxis Familiar

Si conoces `grep`, ya conoces gran parte de `mgrep`:

```bash
mgrep -m 25 "esquema de base de datos" # Limitar resultados
mgrep -c "configuración de rate limiting" # Mostrar contenido
mgrep -a "cómo funciona el sistema de caché" # Generar respuesta
```

## Casos de Uso Prácticos

**Onboarding en nuevos proyectos**: Entiende la arquitectura en minutos sin necesidad de documentación exhaustiva.

**Exploración de funcionalidades**: Descubre dónde se implementa la lógica de negocio sin tener que recordar nombres exactos de funciones.

**Refactoring seguro**: Identifica todas las dependencias antes de cambiar componentes críticos.

**Búsqueda en documentación**: Además de código, busca en PDFs, diagramas y documentación técnica que vive en tu proyecto.

## Conclusión

`mgrep` es la herramienta que necesitabas para buscar por intención en lugar de patrones exactos. Si trabajas en proyectos grandes, usas agentes de IA para programar, o estás cansado de probar variaciones de grep, vale la pena investigar esta herramienta.

## Referencias

- [Repositorio oficial de mgrep](https://github.com/mixedbread-ai/mgrep)
- [Playground interactivo](https://demo.mgrep.mixedbread.com)
- [Comunidad en Slack](https://join.slack.com/t/mixedbreadcommunity/shared_invite/zt-3kagj5m36-wwM_hryIFby7B2wlcOaHaQ)
8 changes: 8 additions & 0 deletions blog/authors.yml
Original file line number Diff line number Diff line change
@@ -1,3 +1,11 @@
TellMeAlex:
name: Alejandro de la Fuente de la Rosa
title: Developer & Founder
url: https://github.com/TellMeAlex
image_url: https://github.com/TellMeAlex.png
socials:
github: TellMeAlex

codigosinsiesta:
name: Código Sin Siesta
title: Equipo de desarrollo
Expand Down
Loading