Hackfest España 2015

Saltar a: navegación, buscar

Mootes15.png

La MoodleMoot España 2015 se celebró entre los días 22 y 24 de octubre de 2015 en la Universitat de les Illes Balears de Palma de Mallorca.

Esta MoodleMoot es la primera en la que se celebra una Hackfest a nivel estatal español.

También es la primera MoodleMoot española en la que se redactan los apuntes de las sesiones colaborativamente mediante la herramienta devpad

Hashtag oficial: #mootes15

Las notas colaborativas de la Moot están disponibles en MoodleMoot España 2015

Moodle Mobile Customization

Gavin Henrick (@ghenrick) & Juan Leyva (@jleyva)

Presentación - Git Moodle Mobile 2

Porqué?

  • Personalizar imagen corporativa
  • Utilizar notificaciones (mucha gente no las tiene activadas!!)

Pasos a seguir

  • Clonar el repositorio GIT
  • Editar el fichero de configuración www/config.json:
  • demo_sites: datos de los sitios demo (usuarios...)
  • www/core/components/settings/lang/en.json (nombre de la aplicación appname)
  • www/errorreport.js Para monitorizar los errores que se producen (reporting system). Juan nos pasará el archivo PHP que se encarga de hacer el envío de los mensajes de error cuando se producen (campo errorUrl)
  • Reemplazar las imágenes (directorio resources). Reemplazar icon.png
  • Añadir estilos personalizados: scss/app.scss. Ejemplo

Construir la app

  • Phonegap build
  • Gratuito para todos los proyectos de software libre (e incluso una gratis para no-libres)
  • Compilación en la nube.
  • Antes de compilar:
  • Desactivar debug. Android no deja enviarlo a producción si está el debug activado.
  • Añadir android o ios para las clases propias en un fichero

Enlaces de interés

La infraestructura de airnotifier no está en Europa?

Atto Plugins

Manuel Cagigas (@manuel_wiris)

Repositorios GitHub de Manuel

  • Clonar el repositorio GIT en moodle/lib/editor/atto/plugins/
  • Se necesita shifter para funcionar:
    • Como instalar Shifter
    • /lib/editor/atto/plugins/$> shifter --watch --recursive
  • Para usar el shifter desde la máquina vagrant:
    • desde la carpeta vagrant_moodle, entrar por ssh a vagrant con el comando vagrant ssh
    • Desde ahí navegar a moodle: /git/moodle y seguir donde queráis ejecutar shifter
  • Clonar el repositorio GIT
    • La diferencia con el anterior es que hace callback
    • Propuesta con este plugin: método que llame al javascript execCommand y ponga negrita

Info sobre document.execCommand

La solución está en las ramas _imp (ejemplo)

High availability & Clusters

Sara Arjona (@sara_arjona)

Presentación

  • ¿Cúal es el cuello de botella cuando la base de datos está en un disco SSD? En las comunicaciones?
  • Caso UB: base de datos con SSD, más rápida la cache de DB que con memcached. Tomad nota!
  • Caso UIC: Base de datos postgre en disco SSD. Código en RAM en opcache.
  • Memcached dedicado VS compartido
  • Caso Universidad de Zaragoza: Código en NFS con opcache sin caducidad. De manera que carga en memória el código para siempre! Muy interesante!!!
  • Memcached para sesiones (redis también se puede valorar)
  • Servidor centinela para ejecutar crons.
  • Cache store en base de datos de moodle.org
  • Carlos III: Mejora rendimiento pasando las Máquinas a virtualizadas. Un único frontal web virtualizado.
  • Universidad de Oviedo: Memcache soluciona los bloqueos de base de datos en pglocks
  • Oracle pierde la partida contra MySQL...MaríaDB sólo lo usa el ministerio de educación de Israel.
  • Redis para gestionar sesiones de Moodle. Guarda las sesiones de tanto en tanto en disco por si cae.
  • Apache sigue siendo mayoritario (tambien hay algunos con nginx). ¿Alquien utiliza lighttpd?
  • Actualizar Moodle.....me entran sudores frios de pensarlo.
  • Instalación en cloud:
    • Azzure está verde. Juan confirma que da problemas
    • Moodle Cloud, con Amazon
  • HA
    • Arquitectura
      • Balanceador (¿capa 4 o capa 7? Capa 7 puede finalizar ssl y filtrar por URL
    • Herramientas de despliegue devops: ParalellSSH, Ansible, Puppet, chef
  • Para conectar como si estuviesemos fuera -> tor browser (un firefox modificado para usar la red Tor)
  • RedIris puede monitorizar tus servicios desde fuera.
  • HTTPS? 3-5% de CPU, no implica mucho. Cuidado con el KeepAlive=0 en Apache y HTTPS, con 3 segundos puede ser suficiente
  • Tener en cuenta que con solo HTTPS puede haber contenido externo embebido en HTTP y que el navegador se queje. CORS
  • Let's encrypt Certificacion gratis! Con API REST para ser autoactualizables.
  • DevOps:
    • Metodologia ágil, integración continua (Gitlab), testing automatizado, despliegue continuo, monitorización (nagios, jmeter/selenium)
    • Selenium: test cada 5 minuts, tiempo más real a un usuario final. Great!
    • JMeter: para tests de carga.

Balanceado

  • Las sesiones con balanceo por ip no se llevan bien con las tablets y móviles, cambian de ip constantemente
  • Balanceo por peticion + sesiones en memcached central :-D
  • Balanceo por IP o similar + memcache te hace independiente de caídas, actualizaciones de nodos.
  • Balancear tráfico de móvil a un nodo concreto.
  • Balanceadores software:
    • Capa 4: ldirector (no termina ssl), ha_proxy
    • Capa 7: ha_proxy , nginx ( pueden terminar ssl)

MOE Moodle cluster

Nadav Kavalerchik (@moodlemagic)

Photo of the Architecture design in Foro

  • El rendimiento de Nginx es mucho mejor que Apache
  • clustered memcached instance on each web front-end (mucho mejor que remote memcached server. local: 0.003ms < remote: 0.263ms !)
  • CouchDB es una alternativa a memcached (also Redis)
  • We also use MOOSH to manage each Moodle instance in the cluster
  • And also system administrate different servers in the cluster with Ansible (send moosh commands to each Moodle instance in the cluster)
  • We monitor the cluster with CollectD + Grafana , & Piwik
  • We manage the development with GitLab

Plugins Time

Juan Leyva (@jleyva)

Hablamos de un caso práctico: ¿cómo filtrar o no etiquetas HTML en Moodle? Cómo funciona con mathml

  • Xref (permite buscar : texto dentro de moodle): Xref
  • Existen varias funciones de tratamiento de cadenas de caracteres:
    • s()
    • print_text()
    • purify_html()
  • Se comenta que hace un tiempo apareció código Javascript malicioso. Se trata de un problema que se dió en diversos espacios Moodle de diferentes organizaciones y la sospecha es que se trataba de código heredado de Moodle 1.9 (porque el editor actual no permite introducir este código).
  • Propondremos (bueno, Juan Leyva) un issue en el tracker para habilitar tags trusted definidos por el propio filter de Moodle. Los demás podremos votarlo y suscribirnos para hacer seguimiento sobre la evolución.

Usability & Accessibility (sesión no técnica)

Mary Cooch (@moodlefairy) & Helen Foster (@moodlehelen)

El Tracker es una herramienta básica para seguir los "issues" relacionados con la Accesibilidad, de hecho existe la "Accesibilidad" como componente con entidad propia: Tracker. Obviamente, se pueden sugerir nuevas funcionalidades creando nuevos "Issues" dentro de este mismo componente.

Por otra parte, otra herramienta útil es el Foro de Usabilidad de moodle.org mediante el cual los miembros de la comunidad pueden compartir dudas y aportar mejoras en relación al UX/UI.

Ciertamente, la usabilidad (UX) abarca muchos aspectos más allá de la propia actividad centrada en la Interfície de Ususario (UI). La usabilidad no está solamente relacionada con aquello que resulta intuitivo para el usuario sino sobre todo está relacionada con las expectativas que tiene un usuario o un grupo de usuarios en relación a un comportamiento, una actividad, una acción, una funcionalidad.

La usabilidad, entendida como la experiencia de usuario ciertamente es una de las prioridades de Moodle HQ y esta preocupación se traduce en distintas mejoras de las últimas versiones de Moodle (2.7, 2.8, 2.9). De hecho, en la release de la 2.8 aparece (por primera vez?) la referencia a la usabilidad: Notas de lanzamiento de Moodle 2.8 sobre usabilidad

En la versión 2.9 se hace aún más patente la preocupación de Moodle por el UX/UI:

Notas de autoría

Este documento fue realizado en un devpad compartido durante los eventos de la MoodleMoot. Los autores del documento original son:

  • Carlos (@CarlosAlAl)
  • Juan Manuel Díaz Nevado
  • Iñigo (@izendegi)
  • Jordi (@jpahullo)
  • Sara (@sara_arjona)
  • Roger Domínguez @rutx
  • Pau (@crazyserver)

Y algunos autores anónimos más.