# Actualización del sitio 2025

<!-- category -- About, Updates -->
<datetime class="hidden">2025-11-30T12:00</datetime>
<pinned />
From 89 articles to 487 (including >80 totally new ones)!

Bueno noviembre está casi terminado así que pensé en añadir algunos puntos destacados e información sobre lo que hemos hecho este mes.

## Inmersión profunda de AI y LLM

El principal objetivo de este mes para mí era ponerme al día sobre todo el bombo 'AI' y entender mejor el área. He sido desarrollador durante casi 30 años, así que me gusta hacer esto en ocasiones.

Bueno, me volví un poco loco. Como resultado, escribí casi 40 artículos sobre LLMs, RAG, ONNX, vision AI, etc...

### Serie de inteligencia semántica (10 piezas)

Una inmersión integral en la construcción de búsqueda semántica y funciones con IA para aplicaciones ASP.NET:

1. [Introducción a la inteligencia semántica](/blog/semantidintelligence) - 13 de noviembre
2. [Parte 1: Creación de la Fundación](/blog/semantidintelligence-part1) - 13 de noviembre
3. [Parte 2: Incrustaciones y almacenamiento de vectores](/blog/semantidintelligence-part2) - 13 de noviembre
4. [Parte 3: Construyendo el oleoducto de búsqueda](/blog/semantidintelligence-part3) - 13 de noviembre
5. [Parte 4: Integración de ONNX](/blog/semantidintelligence-part4) - 13 de noviembre
6. [Parte 5: Consulta avanzada](/blog/semantidintelligence-part5) - 14 de noviembre
7. [Parte 6: Estrategias de búsqueda híbridas](/blog/semantidintelligence-part6) - 14 de noviembre
8. [Parte 7: Optimización del rendimiento](/blog/senmanticintelligence-part7) - Nov 15
9. [Parte 8: Despliegue de la producción](/blog/semanticintelligence-part8) - 16 de noviembre
10. [Parte 9: Vigilancia y mantenimiento](/blog/semanticintelligence-part9) - 18 de noviembre
11. [Parte 10: Direcciones futuras](/blog/semanticintelligence-part10) - Nov 19

### Construcción de un abogado GPT para su blog (8 partes)

Construyendo un chatbot completo basado en RAG que pueda responder preguntas sobre el contenido de tu blog:

1. [Parte 1: Visión general de la arquitectura](/blog/building-a-lawyer-gpt-for-your-blog-part1) - 12 de noviembre
2. [Parte 2: Ingestión de datos](/blog/building-a-lawyer-gpt-for-your-blog-part2) - 12 de noviembre
3. [Parte 3: Generación integrada](/blog/building-a-lawyer-gpt-for-your-blog-part3) - 12 de noviembre
4. [Parte 4: Almacenamiento de vectores con Qdrant](/blog/building-a-lawyer-gpt-for-your-blog-part4) - 12 de noviembre
5. [Parte 5: Procesamiento de las consultas](/blog/building-a-lawyer-gpt-for-your-blog-part5) - 12 de noviembre
6. [Parte 6: Generación de respuesta](/blog/building-a-lawyer-gpt-for-your-blog-part6) - 12 de noviembre
7. [Parte 7: Integración de la interfaz de usuario](/blog/building-a-lawyer-gpt-for-your-blog-part7) - 12 de noviembre
8. [Parte 8: Despliegue y escalamiento](/blog/building-a-lawyer-gpt-for-your-blog-part8) - 12 de noviembre
9. [Enfoque alternativo en la nube](/blog/building-a-lawyer-gpt-cloud-alternative) - 12 de noviembre

### Serie RAG Fundamentals

Una guía práctica para la generación aumentada de recuperación:

1. [RAG Primer: Entendiendo lo básico](/blog/rag-primer) - Nov 22
2. [Buceo profundo de arquitectura RAG](/blog/rag-architecture) - Nov 22
3. [Aplicaciones prácticas de los GCR](/blog/rag-practical-applications) - Nov 22
4. [Estrategias híbridas de búsqueda e indización](/blog/rag-hybrid-search-and-indexing) - Nov 22

### Otros artículos de IA/LLM

- [Integración de API LLM](/blog/llmapi) - 2 de noviembre - Construyendo APIs para los servicios de LLM
- [API LLM con gRPC](/blog/llmapigrpc) - Nov 6 - API LLM de alto rendimiento usando gRPC
- [Recorte y Estrategias de Caching](/blog/chunkingandcaching) - 6 de noviembre - Optimización del procesamiento de documentos para LLMs
- [Avalonia TinyLLM Chat](/blog/avalonia-tinyllm-chat) - Nov 10 - Aplicación de chat LLM de escritorio multiplataforma
- [Generación de texto Alt eficiente](/blog/efficient-alt-text-generation) - Nov 20 - Uso de modelos de visión para la accesibilidad
- [Bases de datos Vectores Auto-Hosted con Qdrant](/blog/self-hosted-vector-databases-qdrant) - 23 de noviembre - Ejecución de su propio vector DB
- [Búsqueda semántica con ONNX y Qdrant](/blog/semantic-search-with-onnx-and-qdrant) - 25 de noviembre - Implementación de búsqueda semántica local
- [Por qué los proyectos comerciales de IA son tontos](/blog/whycommercialaiprojectsaredumb) - 26 de noviembre - Una mirada crítica a la publicidad empresarial de la IA

También escribí más de una docena de herramientas y paquetes NuGet (muchos todavía esperan su lanzamiento final) se puede ver [Por aquí.](https://github.com/scottgal/mostlylucid.nugetpackages). Paquetes como [principalmentelucid.llmalttext](https://github.com/scottgal/mostlylucid.nugetpackages?tab=readme-ov-file#mostlylucidllmalttext) están dirigidos a resolver los problemas que he tenido - en este caso [generar texto alt para imágenes utilizando LLMs de visión](/blog/mostlylucid-llmalttext) (Nov 25).

## Inmersiones profundas básicas de ASP.NET

### ASP.NET Pipeline Series (6 piezas)

Entender el conducto de solicitud de ASP.NET Core desde cero:

1. [Contextos de la API](/blog/API-CONTEXTS) - Nov 5 - Comprensión de HttpContexto y amigos
2. [Servidor y hosting](/blog/ASPNET-PIPELINE-PART2-SERVER-HOSTING) - 9 de noviembre
3. [Buceo profundo de Middleware](/blog/ASPNET-PIPELINE-PART3-MIDDLEWARE) - 9 de noviembre
4. [Enrutamiento y puntos finales](/blog/ASPNET-PIPELINE-PART4-ROUTING-ENDPOINTS) - 9 de noviembre
5. [Modelos de aplicación](/blog/ASPNET-PIPELINE-PART5-APPLICATION-MODELS) - 9 de noviembre
6. [Extensibilidad avanzada](/blog/ASPNET-PIPELINE-PART6-ADVANCED-EXTENSIBILITY) - 9 de noviembre
7. [Estado entre solicitudes](/blog/ASPNET-STATE-BETWEEN-REQUESTS) - 9 de noviembre

### Serie de servicios de antecedentes

1. [Servicios de antecedentes Parte 1: Fundamentos](/blog/background-services-in-aspnetcore-part1) - 27 de noviembre
2. [Servicios de Antecedentes Parte 2: Patrones Avanzados](/blog/background-services-in-aspnetcore-part2) - 27 de noviembre

### Otros artículos de ASP.NET

- [Características de OpenAPI en .NET 9](/blog/oprnapi-features) - 5 de noviembre
- [HTMX con parciales de núcleo ASP.NET](/blog/htmx-aspnetcore-partials) - 28 de noviembre
- [Fijación de SEO para los blogs principales de ASP.NET](/blog/fixing-seo-for-aspnetcore-blog) - 26 de noviembre
- [EF Migrations the right way](/blog/efmigrationstherightway) - 23 de noviembre
- [CQRS moderno y Abastecimiento de Eventos](/blog/moderncqrsandeventsourcing) - 13 de noviembre
- [Contrapresión en sistemas de cola](/blog/backpressure-queueing-systems) - 23 de noviembre
- [Guía de demostración de SignalR](/blog/signalr-demo-guide) - Nov 4
- [Demostración segura de chat](/blog/securechatdemo) - 11 de noviembre

## Pruebas y calidad

- [Pruebas de HttpClient sin mocks](/blog/httpclient-testing-without-mocks) - 29 de noviembre - Estrategias de prueba HTTP reales
- [PuppeteerSharp E2E Testing](/blog/puppeteersharp-e2e-testing) - 27 de noviembre - Pruebas de automatización del navegador
- [Prueba del dramaturgo E2E](/blog/playwright-e2e-testing) - 27 de noviembre - Moderna estructura de pruebas E2E
- [Uso de CSX para las pruebas](/blog/using-csx-for-testing) - 26 de noviembre - scripting C# para escenarios de prueba

## Docker & DevOps

- [Desarrollo de Docker profunda inmersión](/blog/docker-development-deep-dive) - 9 de noviembre
- [Guía del clúster Docker Swarm](/blog/docker-swarm-cluster-guide) - 12 de noviembre
- [Modernizar el conducto de construcción frontal](/blog/modernising-frontend-build-pipeline) - 11 de noviembre

## El sitio

Como parte de mi exploración de IA también actualicé el sitio para usar un enfoque RAG para buscar en los posts del blog. Esto utiliza una base de datos vectorial (Qdrant) y incrustaciones ONNX (local, CPU) para permitir la búsqueda semántica de los posts del blog. También permite cosas como manejo inteligente 404 (mirando las solicitudes entrantes y emparejandolas con los posts existentes).

Artículos relacionados:

- [La guerra del 404](/blog/the-war-on-404) - 23 de noviembre - Manejo inteligente 404 con emparejamiento semántico
- [Progreso y problemas de la barra de filtro](/blog/filterbarprogressandissues) - 10 de noviembre
- [Progreso de la barra de filtro y errores](/blog/filter-bar-progress-and-bugs) - 10 de noviembre

### Mejoras del diagrama de sirena

He publicado un [Paquete npm](https://www.npmjs.com/package/mostlylucid-mermaid) para diagramas mejorados de sirena:

- [Sirena JS Profundo Buceo](/blog/mermaid-js-deep-dive) - 9 de noviembre
- [Mejorando los diagramas de sirena con PanZoom y Exportar](/blog/enhancingmermaiddiagramswithpanzoomandexport) - Nov 7
- [Publicación de mejoras de la sirena a los mecanismos nacionales de prevención](/blog/publishingmermaidenhancementsnpm) - Nov 7

### Otras actualizaciones del sitio

- [Ayudante de etiqueta de llamada](/blog/pagingtaghelper1) - 7 de noviembre - Ayudante personalizado para la paginación
- [Extensión Markdig Fetch](/blog/markdigfetchextension) - 7 de noviembre - Obtención de contenido externo en Markdown

## EasyNMT → principalmente lucid-nmt

Así que por un tiempo ahora he utilizado el excelente [EasyNMT](https://github.com/UKPLab/EasyNMT) para traducir publicaciones en este sitio, sin embargo, el proyecto original se ha roto. Fue financiado por una subvención de la UE como un proyecto de investigación, por lo que ahora se ha descuidado durante algunos años.

Así que yo [hecho el mío propio](https://github.com/scottgal/mostlyucid-nmt). La imagen Docker `mostlylucid-nmt` es totalmente compatible al revés PERO añade un TON de funcionalidad y características de fiabilidad como:

- Fallback multi-modelo - automáticamente cae de nuevo a los modelos menos performant para obtener la máxima traducción entre miles de pares de idiomas
- Gestión de memoria - gestiona su propia memoria (evicto, carga, etc) para que pueda funcionar DEFINITIVAMENTE de forma fiable
- Construcción mejorada de GPU con un TON de configuración
- Versiones ARM64 (Puede ejecutarse en un Pi)
- Y MUCHOS más alrededor de la fiabilidad, división de oraciones, manejo de marcos, etc

Artículos relacionados:

- [Guía completa de la mayoría de lucid-nmt](/blog/mostlylucid-nmt-complete-guide) - Nov 8
- [Cómo funciona la traducción automática neural](/blog/how-neural-machine-translation-works) - 9 de noviembre

## principalmentelucid.co.uk Content Resurrection

Mi ambición cuando empecé este blog el año pasado fue conseguir TODOS mis viejos contenidos de mi sitio (2004-2010) principalmentelucid.co.uk se mudó aquí.

Esto era un problema, ya que había perdido los datos a lo largo de los años, así que escribí un [Archivo.Org](https://archive.org/) herramienta de extracción de datos que consiguió el contenido antiguo, lo extrajo, fechas asignadas, categorías, etc para adaptarse al nuevo formato y ahora mis primeros posts de blog ahora están arriba [aquí](/blog/538).

- [Recuperando contenido de blog antiguo](/blog/oldblog) - Nov 24 - La historia completa de la recuperación de contenido
- [Reanimación](/blog/reanimation) - 24 de noviembre - Devolviendo el contenido viejo a la vida

Esto TAMBIÉN significó un montón de actualizaciones al sitio para manejar enlaces rotos salientes; crea automáticamente enlaces Archive.org para posts antiguos contemporáneos con el artículo original.

## Uso del código Claude

Una de las grandes ganancias de productividad de este mes fue el uso [Código Claude](https://docs.anthropic.com/en/docs/build-with-claude/code-assistance). Me permitió completar DOZENS de los artículos inacabados que habían estado sentados en borradores. La ayuda de AI para:

- Rellenar ejemplos de código
- Ampliación de los conceptos técnicos
- Corrección de errores en el código de ejemplo
- Generación de escenarios de prueba
- Redacción de series completas con estructura consistente

Es como tener un programador incansable que nunca se molesta por "una cosa más".

## Piezas de opinión y ensayo

Algunas piezas no técnicas sobre cultura de desarrollo de software:

- [Standups ágiles: impuesto a la ceremonia](/blog/agile-standups-ceremony-tax) - 21 de noviembre - ¿Por qué los standups diarios a menudo pierden el tiempo
- [Haz que funcione, entonces hazlo bonito.](/blog/makeitworkthenmakeitpretty) - 19 de noviembre - Sobre el desarrollo iterativo
- [El pitch del elevador](/blog/elevatorpitch) - 19 de noviembre - Comunicación de ideas técnicas
- [Jugar con código: ágil eficiente](/blog/playing-with-code-efficient-agile) - 23 de noviembre
- [Escribir especificaciones de características](/blog/writingfeaturespecs) - 11 de noviembre
- [Una palabra sobre la concesión de licencias](/blog/awordonlicensing) - 23 de noviembre
- [Sistemas ocultos](/blog/hiddensystems) - 11 de noviembre - La infraestructura invisible de la que dependemos

### La serie "DISE" (Ingeniería de Software de la Industria del Desarrollador)

Algunas reflexiones sobre la industria del software:

- [Solo voyager](/blog/disejustvoyager) - 24 de noviembre
- [Parte 2: Aprendizajes](/blog/blog-article-cooking-dise-part2-apprenticeships) - 18 de noviembre
- [Parte 3: Dioses no confiables](/blog/blog-article-cooking-dise-part3-untrustworthy-gods) - 20 de noviembre

## Cosas divertidas

- [Rampage](/blog/rampage) - Nov 8 - Un viaje por el carril de la memoria

## ¿Qué sigue?

Voy a facilitar un poco ... Todavía tengo artículos para todos los paquetes de pepitas aún no lanzados, pero estoy feliz con mi conocimiento de la IA por ahora.

Diciembre probablemente me verá:

- Publicando más paquetes de NuGet en los que he estado trabajando
- Continuando con las mejoras semánticas de la búsqueda
- Más experimentos RAG

¡Gracias por leerte en diciembre!