<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://cesguiro.es/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://cesguiro.es/feed.php">
        <title>cesguiro</title>
        <description></description>
        <link>https://cesguiro.es/</link>
        <image rdf:resource="https://cesguiro.es/lib/exe/fetch.php/wiki/dokuwiki.svg" />
       <dc:date>2026-10-30T10:52:25+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://cesguiro.es/doku.php/start?rev=1793292414&amp;do=diff"/>
                <rdf:li rdf:resource="https://cesguiro.es/doku.php/clase/daw/prog/2eval/practicas/p13?rev=1793264859&amp;do=diff"/>
                <rdf:li rdf:resource="https://cesguiro.es/doku.php/clase/daw/prog/2eval/practicas/p12?rev=1793264845&amp;do=diff"/>
                <rdf:li rdf:resource="https://cesguiro.es/doku.php/clase/daw/prog/2eval/practicas/p11?rev=1793264822&amp;do=diff"/>
                <rdf:li rdf:resource="https://cesguiro.es/doku.php/clase/daw/prog/2eval/practicas/p10?rev=1793264810&amp;do=diff"/>
                <rdf:li rdf:resource="https://cesguiro.es/doku.php/clase/daw/prog/2eval/practicas/p9?rev=1793264791&amp;do=diff"/>
                <rdf:li rdf:resource="https://cesguiro.es/doku.php/clase/daw/prog/2eval/practicas/p8?rev=1793264772&amp;do=diff"/>
                <rdf:li rdf:resource="https://cesguiro.es/doku.php/clase/daw/prog/2eval/practicas/p1b?rev=1793264755&amp;do=diff"/>
                <rdf:li rdf:resource="https://cesguiro.es/doku.php/clase/daw/prog/2eval/practicas/p1a?rev=1793264747&amp;do=diff"/>
                <rdf:li rdf:resource="https://cesguiro.es/doku.php/clase/daw/prog/2eval/practicas/p7?rev=1793264739&amp;do=diff"/>
                <rdf:li rdf:resource="https://cesguiro.es/doku.php/clase/daw/prog/1eval/practicas/p6?rev=1793264713&amp;do=diff"/>
                <rdf:li rdf:resource="https://cesguiro.es/doku.php/clase/daw/prog/1eval/practicas/p5?rev=1793264651&amp;do=diff"/>
                <rdf:li rdf:resource="https://cesguiro.es/doku.php/clase/daw/prog/1eval/practicas/p4?rev=1793264633&amp;do=diff"/>
                <rdf:li rdf:resource="https://cesguiro.es/doku.php/clase/daw/prog/1eval/practicas/p3?rev=1793264615&amp;do=diff"/>
                <rdf:li rdf:resource="https://cesguiro.es/doku.php/clase/daw/prog/1eval/practicas/p2?rev=1793264590&amp;do=diff"/>
                <rdf:li rdf:resource="https://cesguiro.es/doku.php/clase/daw/prog/1eval/practicas/p1?rev=1793264575&amp;do=diff"/>
                <rdf:li rdf:resource="https://cesguiro.es/doku.php/clase/daw/dws/1eval/practicas/p9?rev=1793190799&amp;do=diff"/>
                <rdf:li rdf:resource="https://cesguiro.es/doku.php/clase/daw/dws/1eval/practicas/p8?rev=1793190784&amp;do=diff"/>
                <rdf:li rdf:resource="https://cesguiro.es/doku.php/clase/daw/dws/1eval/practicas/p7?rev=1793190766&amp;do=diff"/>
                <rdf:li rdf:resource="https://cesguiro.es/doku.php/clase/daw/dws/1eval/practicas/p6?rev=1793190748&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://cesguiro.es/lib/exe/fetch.php/wiki/dokuwiki.svg">
        <title>cesguiro</title>
        <link>https://cesguiro.es/</link>
        <url>https://cesguiro.es/lib/exe/fetch.php/wiki/dokuwiki.svg</url>
    </image>
    <item rdf:about="https://cesguiro.es/doku.php/start?rev=1793292414&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-10-29T16:46:54+00:00</dc:date>
        <dc:creator>cesguiro (cesguiro@undisclosed.example.com)</dc:creator>
        <title>Módulos de Formación profesional - Añadir bloque Linux → Variables de entorno</title>
        <link>https://cesguiro.es/doku.php/start?rev=1793292414&amp;do=diff</link>
        <description>Bienvenido a mi página de apuntes y recursos para los ciclos formativos de informática. Esta web está dedicada a proporcionar materiales de estudio para diferentes módulos.
Code is like humor. When you have to explain it, it’s bad.
Cory House</description>
    </item>
    <item rdf:about="https://cesguiro.es/doku.php/clase/daw/prog/2eval/practicas/p13?rev=1793264859&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-10-29T09:07:39+00:00</dc:date>
        <dc:creator>cesguiro (cesguiro@undisclosed.example.com)</dc:creator>
        <title>12 - La Forja: acceso identificado al gremio - creado</title>
        <link>https://cesguiro.es/doku.php/clase/daw/prog/2eval/practicas/p13?rev=1793264859&amp;do=diff</link>
        <description>12 - La Forja: acceso identificado al gremio

La API es pública: cualquiera puede borrar héroes y nadie sabe quién consulta. El último paso aplica el tema: autenticación y autorización, tokens opacos, renovación y rotación, Principal y filtro Servlet</description>
    </item>
    <item rdf:about="https://cesguiro.es/doku.php/clase/daw/prog/2eval/practicas/p12?rev=1793264845&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-10-29T09:07:25+00:00</dc:date>
        <dc:creator>cesguiro (cesguiro@undisclosed.example.com)</dc:creator>
        <title>11 - La Forja: peticiones que llegan a la vez - creado</title>
        <link>https://cesguiro.es/doku.php/clase/daw/prog/2eval/practicas/p12?rev=1793264845&amp;do=diff</link>
        <description>11 - La Forja: peticiones que llegan a la vez

La API funciona de maravilla... con un usuario. El programa del paso 02 era secuencial: una acción a la vez. Ahora cada petición vive en su hilo, y todos los hilos tocan el mismo bean de repositorio. El paso aplica los conceptos del tema:</description>
    </item>
    <item rdf:about="https://cesguiro.es/doku.php/clase/daw/prog/2eval/practicas/p11?rev=1793264822&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-10-29T09:07:02+00:00</dc:date>
        <dc:creator>cesguiro (cesguiro@undisclosed.example.com)</dc:creator>
        <title>10 - La Forja en Spring Boot - creado</title>
        <link>https://cesguiro.es/doku.php/clase/daw/prog/2eval/practicas/p11?rev=1793264822&amp;do=diff</link>
        <description>10 - La Forja en Spring Boot

El contrato diseñado a mano en el paso 09 se implementa: La Forja pasa de consola a API REST con Spring Boot. Las capas del paso 08 se quedan (negocio, persistencia, modelo); lo que cambia es la capa de presentación, que en vez de menú de consola atiende</description>
    </item>
    <item rdf:about="https://cesguiro.es/doku.php/clase/daw/prog/2eval/practicas/p10?rev=1793264810&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-10-29T09:06:50+00:00</dc:date>
        <dc:creator>cesguiro (cesguiro@undisclosed.example.com)</dc:creator>
        <title>09 - La Forja: el contrato de la API - creado</title>
        <link>https://cesguiro.es/doku.php/clase/daw/prog/2eval/practicas/p10?rev=1793264810&amp;do=diff</link>
        <description>09 - La Forja: el contrato de la API

La presentación es la consola: un solo usuario, en el mismo ordenador, tecleando. El paso que viene la pondrá en Spring Boot; pero primero hay que diseñar el contrato: qué recursos existen, qué endpoints los atienden y qué código de estado devuelve cada caso. El paso es papel y lápiz.</description>
    </item>
    <item rdf:about="https://cesguiro.es/doku.php/clase/daw/prog/2eval/practicas/p9?rev=1793264791&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-10-29T09:06:31+00:00</dc:date>
        <dc:creator>cesguiro (cesguiro@undisclosed.example.com)</dc:creator>
        <title>08 - La Forja: en capas - creado</title>
        <link>https://cesguiro.es/doku.php/clase/daw/prog/2eval/practicas/p9?rev=1793264791&amp;do=diff</link>
        <description>08 - La Forja: en capas

El programa principal mezcla menú, reglas de negocio y estado interno, y pensar en “cambiar la consola por una API” implica rehacerlo todo. El paso aplica el tema: arquitectura por capas, DTO con Java records, mapeadores e inyección de dependencias (IoC manual)</description>
    </item>
    <item rdf:about="https://cesguiro.es/doku.php/clase/daw/prog/2eval/practicas/p8?rev=1793264772&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-10-29T09:06:12+00:00</dc:date>
        <dc:creator>cesguiro (cesguiro@undisclosed.example.com)</dc:creator>
        <title>07 - La Forja: proyecto profesional - creado</title>
        <link>https://cesguiro.es/doku.php/clase/daw/prog/2eval/practicas/p8?rev=1793264772&amp;do=diff</link>
        <description>07 - La Forja: proyecto profesional

Todas las clases viven en el paquete por defecto, el fichero de configuración se parsea a mano y compilar la aplicación de otro compañero depende de dónde tenga colgado cada .class. El paso aplica el tema: paquetes e importaciones, librerías externas y Apache Maven</description>
    </item>
    <item rdf:about="https://cesguiro.es/doku.php/clase/daw/prog/2eval/practicas/p1b?rev=1793264755&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-10-29T09:05:55+00:00</dc:date>
        <dc:creator>cesguiro (cesguiro@undisclosed.example.com)</dc:creator>
        <title> - borrado</title>
        <link>https://cesguiro.es/doku.php/clase/daw/prog/2eval/practicas/p1b?rev=1793264755&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://cesguiro.es/doku.php/clase/daw/prog/2eval/practicas/p1a?rev=1793264747&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-10-29T09:05:47+00:00</dc:date>
        <dc:creator>cesguiro (cesguiro@undisclosed.example.com)</dc:creator>
        <title> - borrado</title>
        <link>https://cesguiro.es/doku.php/clase/daw/prog/2eval/practicas/p1a?rev=1793264747&amp;do=diff</link>
        <description></description>
    </item>
    <item rdf:about="https://cesguiro.es/doku.php/clase/daw/prog/2eval/practicas/p7?rev=1793264739&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-10-29T09:05:39+00:00</dc:date>
        <dc:creator>cesguiro (cesguiro@undisclosed.example.com)</dc:creator>
        <title>06 - La Forja: los informes del gremio en una línea - creado</title>
        <link>https://cesguiro.es/doku.php/clase/daw/prog/2eval/practicas/p7?rev=1793264739&amp;do=diff</link>
        <description>06 - La Forja: los informes del gremio en una línea

Los informes siguen con bucles manuales: sumar el poder de toda la plantilla exige acumulador, filtrar ítems de una rareza exige un if dentro de un for, y buscar un héroe es la tercera vez que se escribe el mismo bucle de búsqueda. El paso aplica el tema:</description>
    </item>
    <item rdf:about="https://cesguiro.es/doku.php/clase/daw/prog/1eval/practicas/p6?rev=1793264713&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-10-29T09:05:13+00:00</dc:date>
        <dc:creator>cesguiro (cesguiro@undisclosed.example.com)</dc:creator>
        <title>05 - La Forja: las reglas que no se rompen - creado</title>
        <link>https://cesguiro.es/doku.php/clase/daw/prog/1eval/practicas/p6?rev=1793264713&amp;do=diff</link>
        <description>05 - La Forja: las reglas que no se rompen

La versión actual tumba si se teclean letras en el nivel (NumberFormatException), el límite de niveles se corrige sin avisar y consultar un ítem que no está en la forja acaba en un null que nadie controla. El paso aplica el tema:</description>
    </item>
    <item rdf:about="https://cesguiro.es/doku.php/clase/daw/prog/1eval/practicas/p5?rev=1793264651&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-10-29T09:04:11+00:00</dc:date>
        <dc:creator>cesguiro (cesguiro@undisclosed.example.com)</dc:creator>
        <title>04 - La Forja: el inventario deja de tener techo - creado</title>
        <link>https://cesguiro.es/doku.php/clase/daw/prog/1eval/practicas/p5?rev=1793264651&amp;do=diff</link>
        <description>04 - La Forja: el inventario deja de tener techo

Los límites de la plantilla y de la forja son techos artificiales: cuando uno se agota, no hay forma de crecer. Además, consumir una poción del inventario de un héroe exige eliminar elementos mientras se recorre. El paso aplica el tema:</description>
    </item>
    <item rdf:about="https://cesguiro.es/doku.php/clase/daw/prog/1eval/practicas/p4?rev=1793264633&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-10-29T09:03:53+00:00</dc:date>
        <dc:creator>cesguiro (cesguiro@undisclosed.example.com)</dc:creator>
        <title>03 - La Forja: el modelo del gremio - creado</title>
        <link>https://cesguiro.es/doku.php/clase/daw/prog/1eval/practicas/p4?rev=1793264633&amp;do=diff</link>
        <description>03 - La Forja: el modelo del gremio

La plantilla vive en arrays paralelos que se desincronizan a la primera, la clase de juego sigue siendo un número (1) que solo entiende un switch, la validación está repartida por todo el código y la forja todavía no existe ni como modelo. Este paso construye de una vez el</description>
    </item>
    <item rdf:about="https://cesguiro.es/doku.php/clase/daw/prog/1eval/practicas/p3?rev=1793264615&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-10-29T09:03:35+00:00</dc:date>
        <dc:creator>cesguiro (cesguiro@undisclosed.example.com)</dc:creator>
        <title>02 - La Forja: primera versión funcional</title>
        <link>https://cesguiro.es/doku.php/clase/daw/prog/1eval/practicas/p3?rev=1793264615&amp;do=diff</link>
        <description>02 - La Forja: primera versión funcional

El diseño del paso 01 pasa a Java: La Forja existe y atiende a un solo usuario en la consola. Se usa el repertorio del tema y solo él: variables y constantes, la clase IO, estructuras de selección, bucles,</description>
    </item>
    <item rdf:about="https://cesguiro.es/doku.php/clase/daw/prog/1eval/practicas/p2?rev=1793264590&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-10-29T09:03:10+00:00</dc:date>
        <dc:creator>cesguiro (cesguiro@undisclosed.example.com)</dc:creator>
        <title>01 - La Forja: la app existe antes de escribir código</title>
        <link>https://cesguiro.es/doku.php/clase/daw/prog/1eval/practicas/p2?rev=1793264590&amp;do=diff</link>
        <description>01 - La Forja: la app existe antes de escribir código

La Forja todavía no es un programa: es una idea que hay que especificar. Antes de escribir una línea de Java (la app nace en el paso 02), hay que decidir qué tiene que hacer y cómo se le va a hacer, con las herramientas del tema: el modelo</description>
    </item>
    <item rdf:about="https://cesguiro.es/doku.php/clase/daw/prog/1eval/practicas/p1?rev=1793264575&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-10-29T09:02:55+00:00</dc:date>
        <dc:creator>cesguiro (cesguiro@undisclosed.example.com)</dc:creator>
        <title>00 - La Forja: la práctica del curso</title>
        <link>https://cesguiro.es/doku.php/clase/daw/prog/1eval/practicas/p1?rev=1793264575&amp;do=diff</link>
        <description>00 - La Forja: la práctica del curso

Durante todo el curso construiremos La Forja, una única aplicación que evoluciona con nosotros:

	*  Al principio es una aplicación de consola para gestionar el Gremio de Héroes: registrar héroes, consultar su ficha y gestionar el inventario de la forja.</description>
    </item>
    <item rdf:about="https://cesguiro.es/doku.php/clase/daw/dws/1eval/practicas/p9?rev=1793190799&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-10-28T12:33:19+00:00</dc:date>
        <dc:creator>cesguiro (cesguiro@undisclosed.example.com)</dc:creator>
        <title>09 - Integración con Spring Security - creado</title>
        <link>https://cesguiro.es/doku.php/clase/daw/dws/1eval/practicas/p9?rev=1793190799&amp;do=diff</link>
        <description>09 - Integración con Spring Security

El hito 08 autentica y protege a mano: lista de rutas en el filtro, comprobaciones sueltas. Este hito aplica el tema 07 — Integración con Spring Security: el flujo de autenticación no cambia; cambia quién construye y orquesta la maquinaria.
 Pieza  Cambio en este hito</description>
    </item>
    <item rdf:about="https://cesguiro.es/doku.php/clase/daw/dws/1eval/practicas/p8?rev=1793190784&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-10-28T12:33:04+00:00</dc:date>
        <dc:creator>cesguiro (cesguiro@undisclosed.example.com)</dc:creator>
        <title>08 - Login con JWT</title>
        <link>https://cesguiro.es/doku.php/clase/daw/dws/1eval/practicas/p8?rev=1793190784&amp;do=diff</link>
        <description>08 - Login con JWT

La tienda ya vende con transacciones; le falta saber quién compra y quién administra. Este hito aplica el tema 06 — Login con JWT: el módulo users con registro y login, el par de tokens — access JWT de vida corta y refresh opaco persistido — y la validación stateless en un filtro propio. La autorización declarativa llega en el hito siguiente.</description>
    </item>
    <item rdf:about="https://cesguiro.es/doku.php/clase/daw/dws/1eval/practicas/p7?rev=1793190766&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-10-28T12:32:46+00:00</dc:date>
        <dc:creator>cesguiro (cesguiro@undisclosed.example.com)</dc:creator>
        <title>07 - Persistencia con JPA</title>
        <link>https://cesguiro.es/doku.php/clase/daw/dws/1eval/practicas/p7?rev=1793190766&amp;do=diff</link>
        <description>07 - Persistencia con JPA

El punto débil que dejó el hito 06 — stock reservado sin pedido cuando la persistencia falla — es el mejor argumento para este hito. Aplica el tema 05 — Persistencia: Spring JPA: la inversión de dependencias ya existe desde la partida — las interfaces de repositorio viven en</description>
    </item>
    <item rdf:about="https://cesguiro.es/doku.php/clase/daw/dws/1eval/practicas/p6?rev=1793190748&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2026-10-28T12:32:28+00:00</dc:date>
        <dc:creator>cesguiro (cesguiro@undisclosed.example.com)</dc:creator>
        <title>06 - Módulos: pedidos y API pública</title>
        <link>https://cesguiro.es/doku.php/clase/daw/dws/1eval/practicas/p6?rev=1793190748&amp;do=diff</link>
        <description>06 - Módulos: pedidos y API pública

Hasta aquí la tienda era un solo bloque por capas. Este hito aplica el tema 04 — Monolito modular: se añade el segundo problema de negocio, pedidos, y con él la organización en módulos — cada uno protege su interior y expone una API</description>
    </item>
</rdf:RDF>
