Lecciones impartidas en clase (curso 2018/19)

Introducción

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

Para elaborar este índice he utilizado como base 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 pasado curso 2017/18.

Semana S14: del 10/12/18 al 16/12/18

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.

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 familiariceis 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.

Semana S15: del 17/12/18 al 23/12/18

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 muy poco ejercicios. El primero es muy sencillo y el segundo apenas está esbozado. A ver si puedo ampliarlo durante las vacaciones de Navidad.

    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 para haceros una idea de las posiblidades de Packer.
  2. Instalad Packer 1.3.3
  3. Reproducid el ejemplo 1 (Creación de una máquina virtual de VirtualBox con Ubuntu Server 18.04.1 LTS).

    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.
    • cuando todo vaya bien, Packer os producirá un fichero .ova que podéis importar en VirtualBox
  4. Reproducid los ejemplos siguientes.

    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. [optativo] Intentadlo con otra distribución

    Estaría bien que intentárais 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.

Semana S16: del 07/01/19 al 13/01/19

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 realizárais 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.

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)

Semana S17: del 14/01/19 al 20/01/19

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 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, 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)

Semana S18: del 22/01/18 al 28/01/18

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 examen.
    • 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.2 que estamos utilizando este curso.
    • Si una aplicación no funciona con XAMPP 7.2, 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. Por ejemplo, la versión de ResourceSpace del examen del curso 15/16 no se puede utilizar con PHP 7, pero una versión más actual de ResourceSpace sí. El problema es que algunas preguntas del examen han dejado de tener sentido porque el interfaz de la aplicación es distinto.
    • 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 son bastante distintas. El principal problema suele ser que esas versiones antiguas utilizaban la biblioteca mysql que no está disponible en PHP 7.
    • 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.

Semana S19: del 28/01/19 al 03/02/19

Las lecciones de esta semana NO irán para examen.

Esta semana está dedicada a la virtualización, en dos vertientes:

Los ejercicios están planteados principalmente como ejercicios guiados puesto que el objetivo es que entendais el funcionamiento de ambos tipos de virtualización. En algunos casos se proporcionan también soluciones.

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.

En resumen, el trabajo de esta semana es en gran parte "experimental" y espero que disculpéis que los apuntes están en un estado más "experimental" de lo habitual ;-). Por ello, estas formas de instalación no irán para examen, pero espero que os resulten muy interesantes y os permitan poner en práctica conocimientos adquiridos en otros módulos.

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.

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 crada en el ejercicio 3 de Packer (1). Si queréis descargar la ova que se obtenía en ese ejercicio (no tiene Docker), 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)

Semana S20: del 04/02/19 al 10/02/19

Esta semana vamos a ver Nextcloud la aplicación "culpable" de que hayamos tenido que ver Docker, ya que no se puede instalar en Windows ni está disponible como instalador de Bitnami.

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

El curso pasado empezé a preparar lecciones sobre Docker, con idea de llegar a basar esta parte del curso en Docker. El problema que me he encontrado es que si todos los años esta parte del curso ya me exige mucha dedicación para actualizar los apuntes a las nuevas versiones de las aplicaciones, preparar lecciones completamente nuevas como las de Docker me ha desbordado. Espero que después de los exámenes encontréis tiempo para trabajar las lecciones de la semana pasada y esta y yo encuentre tiempo para actualizarlas y ampliarlas.

Os recuerdo que este curso Docker no va para examen.

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.