Lecciones impartidas en clase (curso 2019/20)

Introducción

Esta lección contiene un índice de las lecciones que estoy impartiendo en clase durante el curso 2019/20, así como los ejercicios que están realizado los alumnos.

Este índice se basa en las guías de estudio que ofrezco a mis alumnos de la modalidad semipresencial en la plataforma Moodle de la Conselleria de Educación. El trabajo propuesto a estos alumnos es el mismo que han seguido en clase mis alumnos de la modalidad presencial, aunque la distribución temporal no haya sido la misma.

La información se ofrece distribuida en semanas, ya que es así como está organizada la modalidad semipresencial.

También se pueden consultar las lecciones impartidas en el curso anterior, 2018/19, y las lecciones impartidas en el curso 2021/22 (en el curso 2020/21 no impartí este curso).

IAW Semana S13: del 09/12/19 al 15/12/19

Esta semana empieza la parte de Aplicaciones Web que ocupará el resto del curso. El objetivo de esta parte del curso es que os familiaricéis con las aplicaciones web: su instalación, configuración y administración. Cada aplicación es distinta al resto, por lo que el enfoque de este curso es trabajar varios tipos de aplicaciones (comercio electrónico, alojamiento, blogs, CMS, etc.). El objetivo es que en el futuro seáis capaces de administrar otras aplicaciones que necesitéis, a partir de la experiencia adquirida en este curso.

Este año me gustaría también tratar con más profundidad un aspecto que apenas he tocado en cursos anteriores: la automatización de los procesos de instalación y configuración de las aplicaciones, que creo os resultará muy útil no sólo en este módulo.

Los apuntes de esta segunda parte se encuentran en la web https://www.mclibre.org/consultar/webapps/. A medida que avance el curso iré actualizando los apuntes, ya que desde el año pasado se han actualizado prácticamente todas las aplicaciones y mi intención es que utilicemos siempre las últimas versiones.

Estas son las lecciones a leer y las actividades a realizar durante esta semana.

Antes de empezar el curso

  1. Leed la lección Presentación
  2. Leed la lección Consideraciones sobre los ejercicios

    En esta lección se comentan dos temas importante: las bases de datos y los tipos de usuarios.

  3. Leed la lección Configuración general

Administración de bases de datos: phpMyAdmin

  1. Leed la lección phpMyAdmin (administración de MySQL)
  2. Haced los ejercicios phpMyAdmin (1)

    El objetivo de estos ejercicios es trabajar tanto con el phpMyAdmin ya incluido en XAMPP como con el XAMPP que vais a instalar. Tenéis que tener en cuenta que se trata de dos aplicaciones independientes que no estarán ni tienen por qué estar configuradas de la misma manera. Pero como ambas acceden a la misma base de datos MySQL/MariaDB, ambas deberán adaptarse a la configuración de MySQL, especialmente a la existencia o no de contraseña del usuario root.

    Podéis consultar las soluciones a los ejercicios phpMyAdmin (1)

  3. Haced los ejerciciosphpMyAdmin (2)

    El objetivo de estos ejercicios es que os familiaricéis con el principal uso que vamos a dar a phpMyAdmin durante el curso: crear usuarios en MySQL para que sean utilizados por las diferentes aplicaciones. Para ello se trabajarán tres situaciones:

    1. un usuario que sólo puede crear una base de datos y quiere instalar una aplicación
    2. un usuario que puede crear varias bases de datos y quiere instalar varias aplicaciones
    3. un usuario que sólo puede crear una base de datos, pero quiere instalar varias aplicaciones

    La aplicación a instalar será siempre la misma (aunque se podrán utilizar como aplicaciones independientes), la agenda creada en el ejercicio de Bases de datos 2-3.

    Podéis consultar las soluciones a los ejercicios phpMyAdmin (2)

  4. Haced los ejerciciosphpMyAdmin (3)

    El objetivo de estos ejercicios es profundizar un poco más en phpMyAdmin, realizando tareas generales de configuración, copias de seguridad, etc.

    Podéis consultar las soluciones a los ejercicios phpMyAdmin (3)

    Nota: Esta página de ejercicios está muy verde. Intentaré mejorarla.

IAW Semana S14: del 16/12/19 al 22/12/19

Esta semana está dedicada a Opencart, una aplicación de comercio web, y a Packer, una herramienta de automatización.

Comercio electrónico

En los ejercicios os planteo ejercicios básicos de OpenCart, pero os animo a explorar por vuestra cuenta más apartados relacionados con la creación de una tienda.

  1. Leed la lección OpenCart
  2. Haced los ejercicios OpenCart (1)

    El objetivo de estos ejercicios es poner en marcha OpenCart y practicar tareas básicas de administración (instalar, traducir, copias de seguridad, etc.)

    Podéis consultar las soluciones a los ejercicios OpenCart (1)

  3. Haced los ejercicios OpenCart (2)

    El objetivo de estos ejercicios es crear una tienda virtual en la que se comercializan servicios relacionados con las aplicaciones web (cursos, diseño y alojamiento). En estos ejercicios se construye una tienda muy elemental y os invito a ampliarla por su cuenta. El contenido de la tienda podéis cambiarlo y hacerlo de un tema que os interese (crear una tienda de animales, o de frutas, o de herramientas, o de instrumentos musicales, o de cualquier cosa que se os ocurra).

    Podéis consultar las soluciones a los ejercicios OpenCart (2)

  4. Haced los ejercicios OpenCart (3)

    El objetivo de estos ejercicios es practicar las opciones de personalización de OpenCart.

    ⚠️ Esta página tiene muy pocos ejercicios. El primero es muy sencillo y el segundo apenas está esbozado.

    Podéis consultar las soluciones a los ejercicios OpenCart (3)

Automatización: Packer

Como primera herramienta de automatización vamos a ver Packer. Packer es un generador de máquinas virtuales, por ejemplo, para VirtualBox, pero también para sistemas de cloud computing. En principio, mi intención es que trabajemos con VirtualBox, aprovechando que lo usáis en otros módulos y ya lo sabéis manejar.

  1. Leed la lección Packer de presentación de la herramienta.
  2. Instalad Packer 1.5.1
  3. Leed la lección Packer (1)

    En esta lección se muestran dos ejemplos de instalación de sistemas operativos: de forma manual o desatendida.

    • Reproducid el ejemplo 1 (Creación de una máquina virtual de VirtualBox con Ubuntu Server 18.04 LTS de forma manual).

      Me imagino que más de una vez habréis creado una máquina virtual e instalado un sistema operativo a partir de una imagen iso (por ejemplo, de Ubuntu). El primer ejemplo que os propongo en esta lección es ver cómo Packer permite automatizar el proceso de instalación.

      Para poder utilizar Packer tenemos que escribir una plantilla (en formato json) con la configuración que queremos dar a la máquina virtual (cpus, ram, ram de vídeo, tarjetas de red, etc.) y si queremos que Packer haga la instalación, las pulsaciones de teclado y los tiempo de espera necesarios para ir avanzando en el proceso. Packer realiza la instalación a ciegas, es decir, envía las pulsaciones de teclado sin saber qué está pasando. Al terminar, para saber si ha conseguido instalar correctamente el sistema operativo, reinicia la máquina y se intenta conectar por SSH. Si lo consigue, entiende que todo ha ido bien y exporta la máquina obtenida.

      Podéis imaginar que elaborar una plantilla de Packer es un proceso laborioso ya que tenemos que conocer exactamente los pasos de la instalación y cronometrar el tiempo requerido por cada paso de la instalación. La ventaja es que una vez elaborada, podemos generar todas las máquinas que queramos sabiendo que son exactamente iguales.

      En la lección Instalación de Ubuntu 18.04 Server tenéis las capturas de los pasos de instalación de Ubuntu Server. A partir de esos pasos he creado yo la plantilla del ejemplo 1.

      Para reproducir el ejemplo,

      • cread el fichero json de plantilla de Packer y copiar el fichero de ejemplo.
      • modificad los datos pertinentes (al menos, nombre y contraseña de usuario)
      • ejecutad la plantilla
      • vigilad la instalación automática comprobando que se van sucediendo las pantallas esperadas. Si se muestra una pantalla inesperada o un paso tarda más de lo especificado en la plantilla, se perderá la sincronización y más vale interrumpir la ejecución, corregir la plantilla y empezar de nuevo.
      • si la instalación termina correctamente, Packer os producirá un fichero .ova que podéis importar en VirtualBox
    • Reproducid el ejemplo 2 (Creación de una máquina virtual de VirtualBox con Ubuntu Server 18.04 LTS de forma desatendida).

      En la instalación desatendida Packer no suplanta al humano enviando pulsaciones de teclado, sino que envía un archivo de configuración para que el instalador lleve a cabo su trabajo sin necesidad de preguntar las opciones deseadas al usuario

  4. Leed la lección Packer (2)

    Reproducid los ejemplos de esta página.

    En esta lección se muestran varios ejemplos de transformación de máquinas virtuales.

    Los ejemplos siguientes ya no instalan una distribución, sino que aprovechan máquinas ya existentes para efectuar operaciones sobre ellas. En estos casos, Packer pone en marcha las máquinas, se conecta con ellas por SSH, efectúa las operaciones (ejecutar comandos de shell o scripts completos) y si todo va bien, crea una nueva imagen con el resultado final.

  5. [opcional] Intentadlo con otra distribución

    Estaría bien que intentarais automatizar la instalación de alguna distribución que uséis en otros módulos. Confirmad primero que el instalador es en modo texto y que se puede elegir instalar un servidor SSH, porque si no las cosas son más complicadas.

IAW Semana S15: del 06/01/20 al 12/01/20

Esta semana y la próxima trabajaremos WordPress, quizá la aplicación web más conocida y alrededor de la que existe un gran ecosistema económico: desde la creación de sitios web hasta la programación de plugins o el diseño de temas.

Los ejercicios de esta semana se pueden realizar en poco tiempo, por lo que os pediría que realizarais un proyecto un poco más personal, creando un sitio dedicado a un tema que os interese. Espero que eso os motive a explorar la aplicación un poco más de lo requerido para realizar los ejercicios.

Algunas soluciones están en un estado bastante mejorable, pero creo que os aclararéis sin ellas. Si después de haberlo intentado, seguís en duda, para eso están los foros ;-)

Estas son las lecciones a leer y las actividades a realizar durante esta semana.

Blogs: WordPress (1)

  1. Leed la lección Presentación de WordPress
  2. Haced los ejercicios WordPress (1)

    El objetivo de estos ejercicios es poner en marcha WordPress y practicar tareas básicas de administración (instalar, configurar el acceso, copias de seguridad, etc.)

    Podéis consultar las soluciones a los ejercicios WordPress (1)

  3. Haced los ejercicios WordPress (2)

    El objetivo de estos ejercicios es conocer los elementos y tipos de contenido básicos de WordPress

    Podéis consultar las soluciones a los ejercicios WordPress (2)

IAW Semana S16: del 13/01/20 al 19/01/20

Desarrollador web

  1. Leed la lección Firefox. Herramientas para Desarrollador Web (esta lección están incluida en apuntes de Informática General).

    En esta lección se comenta el uso de las herramientas de desarrollador web de Firefox, concretamente del inspector, que permite analizar las hojas de estilo que se están aplicando a una página web. Esta herramienta nos será muy útil para realizar los ejercicios en los que nos pidan modificar las hojas de estilo de una aplicación. Chrome y Edge disponen de herramientas similares.

Blogs: WordPress (2)

  1. Haced los ejercicios WordPress (3)

    El objetivo de estos ejercicios es conocer el mecanismo de widgets y plugins de WordPress.

    • Los widgets son pequeños elementos que se pueden añadir a WordPress y son mucho menos importantes que los plugins.
    • Los plugins permiten ampliar las funcionalidades de WordPress y explican gran parte de su popularidad. Existen muchos plugins gratuitos, pero la mayoría de plugins son comerciales, aunque ofrecen parte de sus funcionalidades de forma gratuita.

    A la hora de crear un sitio web real, es necesario realizar un estudio detallado de las necesidades del sitio y de los plugins disponibles, porque es posible que algún plugin gratuito o la parte gratuita de un plugin comercial cubra nuestras necesidades. Otro aspecto importante en un sitio real es que los plugins vayan a seguir disponibles en el futuro, lo que obviamente es imposible saber con seguridad, aunque nos puede servir de orientación el tiempo que ya lleve disponible, la cantidad de actualizaciones publicadas, el número de instalaciones, los comentarios de los usuarios, etc.

    En esta página se proponen la instalación y prueba de algunos plug-ins, pero podrían valer otros muchos y se recomienda explorar la biblioteca de plug-ins de WordPress y probar los que los alumnos encuentren atractivos. En algunos casos se propone un plugin determinado, en otros se proponen varios plugins alternativos, pero no es necesario seguir al pie de la letra los ejercicios.

    En dos ejercicios se proponen plugins que facilitan la incorporación de mapas de Google Maps o calendarios de Google Calendar. Como Google cobra a partir de cierta cantidad de uso, os aconsejo que creéis las claves API necesarias, las utilicéis para probar los plugins y después las borréis (en vuestra cuenta de Google), para que no tengáis que pagar nada.

    Podéis consultar las soluciones a los ejercicios WordPress (3)

  2. Haced los ejercicios WordPress (4)

    La página 4 de ejercicios está dedicada al aspecto visual, en especial a los temas. Los tres primeros ejercicios están relacionados con la configuración básica de los temas y los siguientes con la creación de nuevos temas a partir de temas ya existentes (temas hijo).

    Para los ejercicios relacionados con la modificación del aspecto visual (CSS), deberéis utilizar el Inspector de Firefox. No es necesario llegar a comprender en detalle la organización general de las etiquetas HTML y de las hojas de estilo CSS de WordPress, que son bastante complicadas, basta con poder modificar elementos concretos.

    Podéis consultar las soluciones a los ejercicios WordPress (4)

IAW Semana S17: del 20/01/20 al 26/01/20

Ejercicios de repaso

  1. Esta semana está dedicada a practicar las tareas generales (instalación, comprobación de funcionamiento, configuración básica, etc.) habituales en cualquier aplicación web. Para ello, suelo proponer los ejercicios de examen que se encuentran en la sección de exámenes. Veréis que no son difíciles.

    Tened en cuenta que:

    • Los exámenes están preparados para una versión concreta que se puede descargar desde la página de cada examen o de la página de Descarga de aplicaciones.
    • Las aplicaciones de exámenes de cada curso funcionaban con la versión de XAMPP que utilizábamos en cada uno de esos cursos, pero pueden no funcionar con el XAMPP 7.3 que estamos utilizando este curso. Este puede ser el caso, por ejemplo, de Feng Office, cuya versión 3.7.0.5 es incompatible con PHP 7.2.
    • Si una aplicación no funciona con XAMPP 7.3, una posible solución sería descargar una versión más actual de la aplicación desde la página web de la aplicación. Si la aplicación no ha cambiado demasiado, los ejercicios del examen se podrán hacer en la versión actual, pero si la aplicación ha cambiado mucho, puede que los ejercicios no tengan ya sentido.
    • En la página de exámenes únicamente aparecen los exámenes de los tres últimos cursos porque la mayoría de las versiones de las aplicaciones utilizadas en cursos anteriores son incompatibles con PHP 7 y las versiones actuales en muchos casos son bastante distintas. El principal motivo de esa incompatibilidad suele ser que esas versiones antiguas utilizaban la biblioteca mysql que no está disponible en PHP 7.
    • En los apuntes no incluyo soluciones de los ejercicios de examen.
    • El examen de este año será similar a los de años anteriores (es decir, no habrá preguntas con Bitnami, Docker o Ansible, que veremos en las dos últimas semanas). Pero tened en cuenta que cada año intento hacer la parte de PHP un poco más fácil y la parte de Aplicaciones web un poco más difícil, para equilibrar la dificultad de cada parte.

IAW Semana S18: del27/01/20 al 02/02/20

Esta semana está dedicada a la virtualización "clásica", es decir, con máquinas virtuales completas, como las que estáis acostumbrados a utilizar en otros módulos. Aunque en la semana S14 vimos Packer, una herramienta que facilita la creación de máquinas virtuales, esta semana recurriremos a los instaladores de Bitnami. Como veréis, los instaladores de Bitnami facilitan la instalación de aplicaciones en todo tipo de sistemas, lo que nos va a permitir ver diferentes maneras de abordar el problema.

Bitnami

  1. Leed la lección Presentación de Bitnami

    En esta lección se comentan los diferentes tipos de instaladores de aplicaciones que ofrece Bitnami, que aumentan cada año.

  2. Leed la lección Bitnami - Varios

    Esta lección recopila unas cuantos comandos útiles para la realización de los ejercicios. Me imagino que conoceréis la mayoría de ellos por haberlos trabajado en otros módulos, pero puede que os sirve alguno de ellos.

  3. Haced los ejercicios Bitnami (1)

    En estos ejercicios vamos a probar las máquinas virtuales de aplicación de Bitnami, que corresponden a la situación de tener un servidor dedicado a una única aplicación.

    Podéis consultar las soluciones a los ejercicios Bitnami (1)

  4. Haced los ejercicios Bitnami (2)

    En estos ejercicios vamos a probar las máquinas virtuales de infraestructura de Bitnami, que corresponden a la situación de tener un servidor con varias aplicaciones instaladas.

    Podéis consultar las soluciones a los ejercicios Bitnami (2)

  5. Haced los ejercicios Bitnami (3)

    Estos ejercicios corresponden a la instalación "clásica" de aplicaciones sobre Windows con instaladores de Bitnami y es la menos novedosa de todas.

IAW Semana S19: del 03/02/20 al 09/02/20

Esta semana está dedicada a la virtualización "moderna", es decir, con contenedores. Concretamente trabajaremos con contenedores Docker sobre una máquina virtual de Ubuntu. Las imágenes en las que basaremos los contenedores serán también imágenes preparadas por Bitnami.

Como la semana pasada, los ejercicios están planteados principalmente como ejercicios guiados puesto que el objetivo es que entendáis el funcionamiento de este tipo de virtualización.

En cualquier caso, tened en cuenta que esta semana estará dedicada únicamente a la instalación, sin llegar a utilizar realmente las aplicaciones instaladas. La semana que viene estará dedicada a la administración de una aplicación instalada como contenedor en una máquina virtual Ubuntu y complementará lo visto esta semana.

Docker

  1. Leed la lección Presentación de Docker

    En esta lección se comenta qué es Docker y los comandos básicos que practicaréis en las páginas de ejercicios

  2. Haced los ejercicios Docker (1)

    Son ejercicios guiados para aprender los conceptos básicos de Docker.

    Vamos a trabajar con Docker en una máquina virtual de Ubuntu. Aunque el primer ejercicio pide crear la máquina virtual, se puede utilizar la máquina creada en el ejercicio 4 de Packer (2). Si queréis descargar la ova que se obtenía en ese ejercicio, podéis descargarla de mclibre. El usuario es mclibre con contraseña mclibre.

  3. Haced los ejercicios Docker (2)

    En estos ejercicios vamos a probar la instalación de aplicaciones web completas, primero con actividades guiadas y después con ejercicios.

    Podéis consultar las soluciones a los ejercicios Docker (2)

IAW Semana S20: del 10/02/20 al 16/02/20

Nextcloud es un sistema de sincronización y compartición de archivos que apareció en 2016 como fork de ownCloud, que apareció en 2010.

Nextcloud

  1. Leed la lección Presentación de Nextcloud
  2. Haced los ejercicios Nextcloud (1):

    El objetivo de estos ejercicios es poner en marcha Nextcloud en Docker y realizar algunas tareas de configuración básicas.

    Podéis consultar las soluciones a los ejercicios Nextcloud (1)

  3. Haced los ejercicios Nextcloud (2):

    El objetivo de estos ejercicios es probar el funcionamiento de Nextcloud (crear usuarios, compartir y editar documentos, etc) y las posibilidades de ampliación de la herramienta (sincronización, aplicación para móviles, etc.).

    Podéis consultar las soluciones a los ejercicios Nextcloud (2). Estas soluciones están muy incompletas, pero creo que no os costará mucho realizar estos ejercicios.