domingo, 29 de julio de 2012

Extensión de Moodle: ¿Actividad o Bloque?

Desde que comencé a trabajar en este proyecto, tenía la duda de cómo enfocar, desde el punto de vista de Moodle, el desarrollo del plugin para interactuar con Twitter. Casi toda la documentación que encontré estaba enfocada a la creación de una nueva "Actividad" en Moodle. Un ejemplo de actividad serían todas las funcionalidades que puede tener un curso: Foro, Wiki, Administrador de Tareas...
Aunque claro, pronto me di cuenta que implementarlo de esa forma tenía poco sentido práctico. Ya que no es una Actividad en sí, sino que el plugin a desarrollar lo que hace es tomar datos de las otras actividades. Además, en un curso puedes añadir el número de instancias que quieras de una Actividad, y eso carecía de sentido en este proyecto.
Entonces empecé a ver algo que se llama Bloque. Éste se añadía a los cursos y se quedaba en uno de los márgenes, normalmente cumpliendo alguna utilidad como búsqueda o incluso mostrando un TimeLine de Twitter. En un principio no me pareció lo que buscaba, ya que pensaba que la actividad que tenía un bloque se limitaba a mostrar cosas, y el funcionamiento que pretendo que tenga el plugin es que trabaje de forma interna.
Desde aquí tengo que dar las gracias a Daniel Cabeza y Juan Antonio Caballero del proyecto EVALfor por despejarme muchas de las dudas y orientarme respecto a los bloques en este caso. Resulta que el Bloque es lo que mejor se ajusta a este proyecto, ya que sólo encontramos una instancia de éste en el curso y se puede programar para que internamente trabaje con el cron de Moodle y obtenga información de la base de datos.
Manos a la obra...


domingo, 4 de marzo de 2012

Recapitulando

Acabamos de entrar en el mes de marzo, y es el momento de revisar el trabajo realizado y lo que queda por hacer.

La línea de trabajo hasta ahora seguida ha estado marcada por lo siguiente:
· Investigación sobre la plataforma Moodle (instalación, administración, desarrollo de aplicaciones).
· Conocer el funcionamiento y la estructura interna de los plugin de Moodle.
· Revisar los plugin creados de Moodle buscando coincidencias con el proyecto actual.
· Pruebas sobre el API de Twitter, qué ofrece y cómo puede combinarse con las aplicaciones.
· Repaso de la programación en el lenguaje PHP.
· Uso de la librería cURL de PHP para realizar peticiones al API de Twitter.
· Documentación a través de tutoriales en el blog del proyecto.

En las próximas semanas habrá que tratar las siguientes cuestiones:
· Integrar las peticiones al API de Twitter a través de PHP en la estructura base de un plugin de Moodle, y buscar la forma de representar los resultados, de forma que se puedan hacer pruebas directamente desde la plataforma.
· Empezar a definir funcionalidades concretas para desarrollar dentro del plugin.
· Establecer la lógica de cómo van a funcionar las autentificaciones en el plugin, cuándo se van a realizar peticiones públicas, cuándo se va a usar la cuenta del profesor, si es útil que los alumnos asocien su perfil a su cuenta en tuenti y el plugin pueda hacer uso de ella...

Próximamente en el blog nuevos tutoriales que aún faltan por retocar, sobre las peticiones al API de Twitter en PHP.

sábado, 3 de marzo de 2012

API de Twitter

Ya va siendo hora de que hablemos un poco del otro pie del proyecto: Twitter y su API.
Es obligatorio ahora hacer referencia a la documentación oficial de Twitter, que podemos encontrar aquí.
Me voy a ahorrar un poco el apartado más técnico del API, ya que es una información que podéis encontrar en la documentación, y os voy a contar cómo empecé a trastear un poco con ésta.
Twitter nos proporciona tanto dos API de tipo REST como un API streaming. Nos vamos a decantar por el REST. A través de una consola podemos realizar peticiones públicas al API. Es decir, peticiones que no necesitan autentificarse como una cuenta, como por ejemplo, obtener el TimeLine público en un momento dado.
Para realizar todos los tipos de peticiones, tendremos que hacerlo a través de una autentificación. Para comenzar, iniciaremos sesión con nuestra cuenta de twitter en https://dev.twitter.com/apps/new. Entonces nos aparecerá un formulario en el que tendremos que registrar nuestra aplicación.

Una vez rellenemos los campos que nos piden, accederemos al perfil de nuestra aplicación. Twitter sigue un sistema de autentificación llamado OAuth. Así que en el apartado OAuth Settings, encontramos los datos necesarios para realizar peticiones que no sean públicas, sino a través de una cuenta, con una consola.
Para no utilizar una aplicación externa, podemos simplemente entrar en la página https://dev.twitter.com/console, donde tenemos una consola que nos proporciona Twitter para hacer pruebas.

Ahora podemos hacer todas las peticiones públicas que queramos. Para hacer peticiones privadas, pulsamos sobre el candado y le damos a "OAuth". Nos dará la opción de iniciar sesión con nuestra cuenta y ya podremos realizar las peticiones privadas.

Vamos a ver dos ejemplos:

· Petición pública.
Podemos pulsar por ejemplo en Trends -> trends/daily. Ahora pulsamos el botón GET. Tenemos dos pestañas, en la pestaña Request podemos ver qué petición se ha realizado y en la pestaña Response podemos ver la respuesta. En este caso, los trending topics de distintas horas en las últimas 24 horas.


· Petición privada.
Por ejemplo, vamos a escribir un tweet desde la consola en nuestra cuenta promocionando el blog del proyecto. Para ello, pulsamos en Tweets -> statuses/update y sustituimos en la petición http "{status" por el texto que queremos publicar en el tweet. En este caso,
http://api.twitter.com/1/statuses/update.json?status=Podeis seguir los avances del blog en http://edu-twitter.blogspot.com/
Esta vez pulsamos sobre POST y no GET, ya que estamos enviando información y no sólo obteniendo. El resultado es el siguiente:


Y con esto ya podemos ir probando diferentes peticiones al API de Twitter.
Antes de finalizar, hay que mencionar que existen un límite de peticiones, 150 es el límite máximo de peticiones por hora en el caso de peticiones no autentificadas y 350 por hora en el caso de que las hagamos a través de una cuenta.





sábado, 21 de enero de 2012

Instalación de un plugin en Moodle

La M de Moodle proviene de la palabra "modular". Moodle está pensado para que se le puedan añadir fácilmente funcionalidades, y éstas se añaden a través de los plugins, que pueden ser de varios tipos.
Como el proyecto consiste en la elaboración de un plugin, voy a explicar aquí cómo podemos instalar un plugin en Moodle, utilizando uno cualquiera como prueba.

El plugin que he escogido es "OU blog", que consiste en una tarea estilo blog. El único criterio de elección que he seguido ha sido la fácil comprobación de funcionamiento del plugin, que consistirá simplemente en crear una actividad en el curso de ese tipo.


Paso 1 - Descarga del plugin

Recientemente, se ha abierto un Directorio de Plugins divididos en categorías por parte de Moodle.org, que podemos encontrar en el siguiente enlace:
http://moodle.org/plugins/index.php

En este caso, el plugin "OU blog" se encuentra en el siguiente enlace:
http://moodle.org/plugins/view.php?plugin=mod_oublog

Ahora sólo queda pinchar en la pestaña "Download versions" y descargar la versión que queramos.
Tendremos entonces un archivo zip con el plugin.

Paso 2 - Copia de la carpeta del plugin en el directorio de Moodle

Descomprimimos el archivo zip y tenemos una carpeta llamada "oublog" con los archivos del plugin.
Aunque en la instalación de plugins sigue un patrón general, leemos el archivo README por si tenemos que realizar alguna modificación especial.
En este caso, lo único que tenemos que hacer es copiar la carpeta "oublog" dentro de la carpeta "mod" de la raíz de instalación de Moodle. En mi caso, "/var/www/moodle/mod".
Si todo ha ido bien, la próxima vez que iniciemos sesión como Admin en Moodle, nos aparecerá una pantalla como esta:


Paso 3 - Comprobaciones

En esta última ventana que nos ha aparecido, pulsamos el botón "Actualizar" y veremos que la versión se ha actualizado correctamente y pulsamos en "Continuar".
Ahora podemos añadir una nueva tarea al curso que deseemos, y podemos comprobar que ha aparecido la opción "ou blog".
Esta es la captura de un post de prueba:


Paso extra - Eliminación del plugin

Si quisiéramos a continuación o en cualquier otro momento eliminar el plugin, tenemos que seguir las siguientes instrucciones:
- Nos vamos a Administración del sitio -> Extensiones -> Módulos de actividad -> Gestionar actividades
- Pulsamos en "Borrar" en la fila de "OU blog" y luego en el botón "Continuar".
- Para completar el proceso, tenemos que borrar la carpeta "oublog" del directorio mod de Moodle, para evitar reinstalación la próxima vez que entremos.




jueves, 19 de enero de 2012

Instalación de Moodle 2.2.1

En esta actualización voy a explicar como instalar la última versión estable de Moodle, la 2.2.1, en el sistema operativo Ubuntu.


Paso 1 - Instalar MySQL

Escribimos en la consola:
sudo apt-get install mysql-server php5-mysql

Luego establecemos la contraseña del Root:
mysqladmin -u root password Contraseña

En este paso encontré un problema, ya que lo instalaría y desinstalaría anteriormente, no recordaba la contraseña anterior y me daba un error. Si alguien tiene este problema, le recomiendo el siguiente enlace:
http://www.tecnologiadiaria.com/2008/11/contrasena-del-root-en-ubuntu.html

Ahora tenemos que crear la base de datos de Moodle en MySQL:
mysql -u root -p
> CREATE DATABASE moodle DEFAULT CHARACTER SET utf8 COLLATE utf8_unicode_ci;
> GRANT ALL PRIVILEGES ON moodle.* TO moodleuser@localhost IDENTIFIED BY 'Contraseña';
> GRANT SELECT,LOCK TABLES on moodle.* TO moodlebackup@localhost IDENTIFIED BY 'Contraseña_Backup_Moodle';
> FLUSH PRIVILEGES;
> QUIT

Paso 2 - Instalar Apache

Escribimos en la consola:
sudo apt-get install apache2 libapache2-mod-php5 php5-gd

Opcionalmente, por temas de seguridad, podemos instalar:
sudo apt-get install libapache2-mod-security php5-ldap php5-odbc

Y reiniciamos Apache:
sudo /etc/init.d/apache2 restart

Paso 3 - Instalación de otras utilidades

Podemos instalar otras utilidades complementarias:
sudo apt-get install openssh-server unattended-upgrades
sudo apt-get install unzip zip aspell-en aspell-fr aspell-de aspell-es
sudo apt-get install curl php5-curl php5-xmlrpc
sudo apt-get install clamav-base clamav-freshclam clamav

Paso 4 - Instalación de Moodle

Lo primero es descargar la versión que queremos del siguiente enlace, recomiendo bajar la última versión estable:
http://download.moodle.org/

Ahora lo movemos a:
sudo mv /ubicacion/moodle.tgz /var/www

Extraemos su contenido:
sudo tar zxf moodle.tgz

Creamos el siguiente directorio:
sudo mkdir /var/moodledata

Y cambiamos permisos:
sudo chown -R www-data:www-data /var/moodledata
Donde www-data es el grupo creado automáticamente en la instalación de Apache

Para terminar, reiniciamos apache2:
sudo service apache2 restart

Paso 5 - Configuración de Moodle

Entramos en la dirección:
http://localhost/moodle

Y nos llevará al archivo de install.php, con el que procedemos a la instalación:
1-Elegimos el idioma.
2-Confirmamos las diferentes rutas.
3-Seleccionamos el controlador de la base de datos.
4-Aceptamos los términos y condiciones.
5-Se realizan las comprobaciones del servidor.
6-Esperar que se complete la instalación y continuar.
7-Configuramos la cuenta del administrador y completamos la descripción del sitio.

Y ya tenemos listo el entorno.





¿Qué es EDUtwitter?

EDUtwitter es uno de los proyectos presentados al Concurso Universitario de Software Libre en su sexta edición.
Consiste en la creación de un módulo o plugin para la plataforma Moodle, que permita su interacción con la conocida red social Twitter, de forma que se puedan realizar tareas y establecer una comunicación de datos y estadísticas entre las dos plataformas.
Para ello, contaremos con una instalación de Moodle de prueba y utilizaremos una implementación en PHP del API de Twitter. En futuros posts daré más detalles al respecto.
Este blog pretende ser un diario de los distintos avances que se produzcan en el desarrollo.
Comenzamos.