Creando un Google apps script

Primero hay que tener en cuenta que los Google apps script se basan en Javascript. No hay que ser un experto programador, pero si que hay que dominar un poco la sintaxis del lenguaje. Por lo tanto, si no se conoce la sintaxis del Javascript, yo recomiendo se acceda al siguiente enlace y se realicen las actividades que se proponen. Son 16 módulos que se pueden hacer en unas 10 horas, pero tampoco hay que hacerlos todos. Con los 5 o 6 primeros ya es suficiente. http://www.codecademy.com/tracks/javascript

Una vez conocida la sintaxis del Javscript, centrémonos en un ejemplo de script. En este caso, haremos un script para conseguir que un formulario llegue por correo electrónico a la persona que lo contesta. En la web de mi centro tenemos un formulario por si alguna persona de la comunidad educativa quiere hacer llegar a la dirección alguna queja o sugerencia. Es un formulario hecho con Google que sólo tiene 4 campos: Nombre y Apellidos / Dirección de correo / Curso (sólo si es alumno o familia) / Descripción de la queja o sugerencia. Lo que debe hacer el script que quiero presentar es enviar una copia de las respuestas a la persona que conteste el formulario. Si se tiene un GAFE esto se puede hacer obligando al usuario a iniciar sesión, pero en este caso queremos que contesten el formulario personas que no están en nuestro GAFE (familias, empresas …). Primero, lógicamente, hay que crear el formulario de Google y acceder a la hoja de cálculo donde irán a parar las respuestas del formulario. Dentro de esta hoja de cálculo, accederemos a Herramientas / Editor de script

script1

Crearemos un script en blanco y escribiremos el seguiente código:

script2

/**
* Enviar las respuestas de un formulario 
* por mail 
*/ 

function onChange() { 
//Preparamos el inicio del mail 
var cap="Se ha enviado su sugerencia o queja correctamente. A continuación se adjuntan sus respuestas:"; 
var asunto= "Confirmación queja o sugerencia"; 

var cuerpomensaje=cap; 
var dest = ""; 
var camp = ""; 
var libroActual = SpreadsheetApp.getActiveSpreadsheet(); 
var hojaresp = libroActual.getSheets()[0]; 
var rangresp = hojaresp.getDataRange(); 
var ul_fila= rangresp.getNumRows(); 
var encontrado=0; 
//Miramos la última fila de la hoja de respuestas
for (j=1; j<rangresp.getNumColumns()+1;j++){ 
camp = rangresp.getCell(ul_fila,j).getValue(); 
for (i=0;i<camp.length;i++){ if (camp.charAt(i)==='@'){ 
encontrado=1; 
} 
}
if (encontrado===1){ 
dest=camp; 
encontrado=0; 
} else { 
cuerpomensaje= cuerpomensaje+rangresp.getCell(1,j).getValue()+": "+camp+""; 
}
}
//Mandamos el mail 
GmailApp.sendEmail(dest, asunto, '',{ htmlBody: cuerpomensaje}); 
};

Analicemos un poco este código y veamos enlaces interesantes para seguir profundizando. El inicio sólo sirve para definir variables (Asunto del correo que se enviará / Cabecera del correo) y otras variables de programación. Hay que mencionar a tres concretas:

var libroActual = SpreadsheetApp.getActiveSpreadsheet(); 
var hojaresp = libroActual.getSheets()[0]; 
var rangresp = hojaresp.getDataRange();

Para entender estas variables, nos irá muy bien la ayuda de Google. Se encuentra en https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app
Nos muestran todos los objetos propios de las aplicaciones de Google y sus propiedades. En las variables que he definido en el script, la variable libroActual es un libro de cálculo entero. Concretamente el libro activo. La variable hojaresp, es la primera hoja de cálculo del libro. La variable rangresp es un conjunto de celdas, todas las que tienen datos. Hubiéramos podido obtener directamente la última variable, rangresp, escribiendo

var rangresp = SpreadsheetApp.getActiveSpreadsheet().getSheets()[0].getDataRange()

pero así de entrada quizás hubiera sido más difícil de entender. Todos los scripts se basan en esto, objetos y propiedades. Con la ayuda de Google, podemos encontrar cualquier cosa de las aplicaciones de Google (valores celdas, destinatarios de correos, número de filas, texto de ¡un documento …). Siguiendo con el ejemplo,

var ul_fila= rangresp.getNumRows(); 
var encontrado=0; 
//Miramos la última fila de la hoja de respuestas
for (j=1; j<rangresp.getNumColumns()+1;j++){ 
camp = rangresp.getCell(ul_fila,j).getValue(); 
for (i=0;i<camp.length;i++){ if (camp.charAt(i)==='@'){ 
encontrado=1; 
} 
}
if (encontrado===1){ 
dest=camp; 
encontrado=0; 
} else { 
cuerpomensaje= cuerpomensaje+rangresp.getCell(1,j).getValue()+": "+camp+""; 
}
}

miramos celda por celda de la última fila. Para ello definimos una variable ul_fila que es el número de filas del rango con datos. Justamente la última tiene la respuesta que queremos enviar. Podemos mirar el valor de cada celda haciendo un bucle for, así miraremos todas las celdas. Para acceder a su valor, utilizamos las propiedades getCell (para fijar la celda) y getValue (para obtener el valor). Como no sabemos en qué campo el usuario nos indicará el mail, lo que hacemos es mirar letra por letra si esa celda tiene el símbolo @. Para ello, utilizamos un segundo for, que compara cada letra con la @.

Ya sólo queda crear el cuerpo del mensaje, donde pondremos el nombre del campo (que está en la primera fila) y a continuación la respuesta.

El script termina enviando el correo

//Mandamos el mail 
GmailApp.sendEmail(dest, asunto, '',{ htmlBody: cuerpomensaje});

Para ello utilizamos otro objeto de Google. No es de hojas de cálculo, sino de correo. En otro apartado de la página de ayuda de Google podemos encontrar los objetos de Gmail: https://developers.google.com/apps-script/reference/gmail/

Una vez hecho el script y entendido su funcionamiento, sólo nos falta programar que se ejecute cada vez que alguien responda el formulario. Lo haremos con los disparadores.

script4

Configuraremos que el script que acabamos de crear se ejecute cada vez que alguien responda el formulario.

script5

Aquí es importante qué usuario está activando el disparador, ya que este será el usuario que envía el mail. Si estamos creando el script con usuario de profesor, pero queremos que el mail lo envíe a un usuario de centro, deberemos compartir la hoja con el usuario de centro en modo edición y que éste active el disparador.

Si se desea ver cómo funciona este script en la práctica, a continuación hay el enlace a un formulario. Si se contesta, se recibirá un correo mío con la confirmación.

https://docs.google.com/a/insestatut.cat/forms/d/1k_0VSP6qP0S5f66MWe0vwztw-EzJi4sXVcFRhS14zx8/viewform

Creo que los Google apps scripts son una gran herramienta, ya que nos puede servir para infinidad de operaciones (copiar datos entre hojas, combinar información de documetos y hojas de cálculo y mandarolo por email…). Si sabe algo de programación no es difícil entrar en su forma de funcionar y se puede hacer lo que se quiera. Son ideales para automatizar procesos que de otro modo se realizarán de forma manual.

Instalar aplicaciones en el navegador Chrome de los alumnos

Vamos a ver cómo lo debe hacer el Administrador del GAFE. Desde el Panel de Control del dominio, debe acceder a la parte inferior, donde indica Más controles.

aplicacions1

Aparecerá una barra con más iconos y habrá que elegir la opción Otros servicios de Google.

aplicacions2

A continuación, Administración de Chrome.

aplicacions3

Al final de todo, Configuración Avanzada

aplicacions4

Y finalmente llegamos a la opción para indicar qué aplicaciones queremos que se instalen automáticamente

aplicacions5

Haciendo clic en el enlace Administrar aplicaciones preinstaladas, se accederá al tablero para añadirlas. Como se puede ver, en mi dominio tengo 9.

aplicacions6

Una vez añadidas, también pueden fijarse en la barra de aplicaciones. La opción se encuentra un poco por debajo de la opción de Añadirlas.

Pero una vez está configurada la preinstalación automática, los alumnos (y profesores) ¿donde pueden encontrar estas aplicaciones?

Hay varias maneras, pero la que yo utilizo más es la siguiente. Dentro de Chrome, abrir una nueva pestaña

aplicacions7

y después elegir aplicaciones

aplicacions8

Al alumno se le cargará una página con todas las aplicaciones. Las que el Administrador le haya preinstalado, y las que él mismo decida instalarse (si el administrador ha permitido la instalación de aplicaciones al usuario)

aplicacions9

Para mí es una opción muy interesante, ya que no es necesario que los alumnos busquen aplicaciones por Chrome Store que no conocen. Además, permite que fácilmente, dentro del centro, todo el mundo utilice las mismas aplicaciones, puesto que ya las tiene en su navegador.

Además, las aplicaciones tienen otra ventaja. No dependen del ordenador, si no del usuario que ha iniciado sesión en Chrome. Por tanto, sea cual sea el ordenador desde el que se accede, si se inicia sesión en el Chrome, las aplicaciones se instalan automáticamente y el usuario las tiene disponibles para trabajar.

Cosas a tener en cuenta si compartimos estructuras de carpetas en Google Drive

Ya aviso de entrada que lo que voy a contar no será sencillo de entender. Si no se está familiarizado con compartir estructuras de carpetas entre usuarios y se conocen los permisos que Google permite, no será sencillo que se pueda seguir la explicación. Si se está familiarizado, no prometo nada, pero intentaré ser claro.

Compartir una estructura de carpetas solo puede tener un inconveniente: que en algunas carpetas demos permiso de edición a muchos usuarios (normalmente a todo el claustro de profesores).
Si la estructura se utiliza en un solo sentido, es decir, unos pocos usuarios cuelgan información (normalmente el equipo directivo) y un grupo numeroso de usuarios sólo visualizan esta información (normalmente el profesorado), no hay ningún problema. Como los profesores sólo pueden ver las carpetas y ficheros, si el equipo directivo tiene claro el funcionamiento del Drive, todo funciona correctamente. Los profesores pueden arrastrarse la estructura de carpetas a su unidad o destacarla para encontrarla con facilidad.

El problema está cuando, en algunas carpetas, el profesorado tiene permiso de escritura, porque tendrá que subir archivos (programaciones, listas de alumnos, actas de reuniones…). En este caso hay que vigilar, ya que sin tener ninguna intención, los profesores pueden hacer que algunas carpetas desaparezcan del Drive de todos los demá profesores. Y que sólo la pueda encontrar el propietario, a través del buscador.

Vayamos por partes y explico un caso concreto de carpetas compartidas con edición que pueden desaparecer. Supongamos que el equipo directivo crea la siguiente estructura de carpetas para compartir con todos los profesores del centro. Supongamos también que tenemos cuatro grupos creados : profes , profes_eso , profes_batx y profes_ciclos.

Entre paréntesis indico el permiso que tienen los profesores (entiendo que el equipo directivo tiene permiso de edición en todas partes):

  • Organitzación general curso XX (profes visualización)
    • Evaluaciones (profes visualización)
      • ESO (profes_eso visualización)
      • BATX (profes_batx visualización)
      • Ciclos (profes_ciclos visualización)
    • Disciplina (profes visualización)
      • ESO (profes eso edición / profes visualización)
        • 1o ESO (profes eso edición / profes visualización)
        • 2o ESO (profes eso edición / profes visualización)
        • 3o ESO (profes eso edición / profes visualización)
        • 4o ESO (profes eso edición / profes visualización)
      • BATX (profes batx edición / profes visualización)
        • 1o Batx (profes batx edición / profes visualización)
        • 2o Batx (profes batx edición / profes visualización)
      • Ciclos (profes ciclos edición / profes visualización)
    • Guardias (profes visualización)
    • Horarios (profes visualización)
      • ESO (profes visualización)
      • BATX (profes visualización)
      • Ciclos (profes visualización)
    • Poyectos de centro (profes visualización)

Hay que fijarse que hay unas carpetas (Disciplina) donde los profesores pueden editar, así pueden colgar documentos explicando las incidencias que tienen en el aula o similar.

Si los profesores entras en el apartado Compartidos conmigo de su Google Drive verán las carpetas compartidas. Y, ojo, que no sólo verán la carpeta Organización general curso XX, sino que también verán las carpetas donde tienen permiso de edición.

gd4

¿Qué debe hacer el profesor?

  • Primera opción: arrastrar toda la carpeta Organización general curso XX en su unidad de Drive. No hay problema, en esta carpeta solo tiene permiso de visualización. Una vez allí, podrá desplegar las carpetas y arrastrar archivos que ya tenga en otras carpetas de su unidad dentro de la estructura de carpetas (donde tiene edición).

gd5

Inconveniente: si el profesor tiene instalada la aplicación Google Drive en su ordenador, de golpe se le empiezan a bajar un montón de documentos en su disco duro. Según sea el centro, estos documentos pueden tener un tamaño importante.

  • Segunda opción: destacar la carpeta Organización general curso XX (por encontrarla con facilidad) y arrastrar a su carpeta sólo aquellas carpetas donde deba poner documentos. Así evitamos que se le copien un montón de documentos en el disco duro.
    En el caso de un profe de ESO (pongamos de 1 º) sería la carpeta Disciplina/ESO/1r de ESO.
    Y aquí tenemos el problema.
    Como en la carpeta superior (Disciplina / ESO) tiene permiso de edición, si mueve esta carpeta, la está moviendo para todos los usuarios. O sea que está sacando la carpeta de la estructura de carpetas. Él la tendrá en su unidad, pero el resto de profesores dejarán de verla. Incluso el propietario dejará de verla (aunque utilizando el buscador podrá encontrarla y colocarla de nuevo en su sitio).
    Puesto que Google ya ve que esto es peligroso, al usuario le muestra un mensaje. Pero habitualmente los profesores dicen Mover y listos.

gd6

Hay que tener en cuenta que es difícil formar a los profesores. Si el profesor arrastra a su unidad una carpeta de la estructura que está dentro de una carpeta donde sólo tiene permiso de visualización, todo funciona bien.
El problema está en arrastrar a su unidad una carpeta de la estructura que está dentro de una carpeta donde tiene permiso de edición.

Y, normalmente, el profesor no tiene ni idea si tiene permiso de edición o de visualización.

Soluciones

  • Hay centros que optan por pedir a su profesorado que no arrastre una carpeta compartida a su unidad (a no ser que explícitamente se lo indiquen). Pero esta solución, desde el punto de vista de la seguridad, no es aceptable. Siempre puede haber algún profesor que por ignorancia arrastre la carpeta que no toca y la haga desaparecer.
  • Otra solución es no compartir carpetas con permiso de edición para los profesores. Pero así perdemos uno de los grandes ventajas de Google Drive: poder compartir información entre todos los miembros del centro en todas direcciones. Y que todo el mundo la pueda localizar fácilmente.
  • La tercera solución es que las carpetas donde los profesores tengan permiso de edición no tengan subcarpetas. Es decir, sólo pueden ser de edición las últimas carpetas de la estructura . De esta manera no hay peligro de hacer desaparecer carpetas.
    Alguien me dirá que entonces lo que se puede hacer desaparecer son los documentos que haya en estas últimas carpetas. Y tendrá razón. Pero arrastrar documentos sueltos ya es más difícil que se realice.
  • La última, y la más complicada pero más segura, es que primero se compartan con permiso de edición las carpetas donde los profesores (o subgrupos de profesores) deben tener derecho. Se comparten las carpetas, sin ponerlas dentro de la estructura.
    Aquellos con quienes hemos compartido la carpeta, la arrastran a su unidad.
    Una vez esto ya ha sido hecho, entonces el propietario ya puede arrastrar la carpeta dentro de la estructura y dar permiso de visualización al resto.
    Como los que la necesitan ya se la han arrastrado, ya no lo vuelven a hacer y por lo tanto, no sacan la carpeta de la estructura.
    Y los otros, los que solo deben visionar, la podrán encontrar dentro de la estructura.
    Evidentemente tampoco es una solución perfecta, ya que si durante el curso los permisos deben cambiar, las cosas se nos complican.

No hay ninguna solución perfecta, al menos de momento. Lo ideal sería que Google permitiera compartir una carpeta con permiso de edición, pero sin permiso de mover su contenido. Pero, de momento, eso no existe.

Espero no haber aburrido demasiado y que se haya entendido (cosa que no tengo muy clara) . Si alguien en su centro utiliza alguna otra solución, estaré encantado de conocerla a través de los comentarios.

Crear vídeos como recurso didáctico, en plataforma Windows

En mi entorno, es muy habitual que los profesores utilicen las presentaciones orales como recurso. Un alumno o un grupo de alumnos preparan una exposición oral (ya sea sobre un tema de clase, un proyecto que han realizado o un problema que han resuelto) y la exponen ante toda la clase. No hace falta decir que me parece una actividad excelente si los alumnos han aprendido a realizarlas. No es propósito de este artículo analizar si los profesores sabemos realizar un presentación oral de forma correcta y, por tanto, si lo transmitimos a los alumnos. Sería un tema con demasiado debate, quizás en otro artículo.

En cambio, es menos utilizado el recurso del vídeo. Yo lo encuentro una herramienta fantástica. Al igual que la exposición oral obliga a los alumnos a sintetizar, a argumentar… y suele ser una actividad muy motivadora para ellos. Supongo que si no se utiliza más es por la dificultad técnica.

En mi instituto todavía utilizamos Windows (y no parece que vaya a cambiar pronto) y por tanto lo que explicaré a continuación será en esta plataforma. Disculpadme los que utilizais software libre.

imagesPara trabajar con vídeo, inicialmente lo hago con Windows Movie Maker (ya sea en su versión Live, como en cualquier otra ). Es un programa del que me gusta mucho su sencillez. Sin saber mucho, en un santiamén tienes un video editado, con títulos y créditos y música de fondo si la necesitas. El problema, y para mí bastante grave, es la incompatibilidad entre versiones. El alumno que tiene Windows XP, que todavía hay un montón (de hecho muchos ordenadores de mi centro es lo que tienen) no pueden abrir proyectos hechos con una versión superior. Y entre algunas versiones de Windows Live lo mismo.
Además, tiene otros problemas (inestabilidad, exportación sólo a wmv…) pero nos acabamos apañando y conseguimos trabajar de manera bastante decente.

Pero cuando los alumnos son un poco más grandes (los de 15 y 16 años que ya han editado vídeos otras veces), en seguida se les queda corto. Su sencillez y facilidad de uso es también una limitación para realizar ediciones más complicadas.

images2Es en este momento que introduzco VSDC Free Video Editor. Como dice el nombre es un editor gratuito que funciona bien con cualquier versión de Windows (incluido Windows 8) y que no tiene incompatibilidades entre versiones de Windows.

Además, permite un grado más de edición. Es cierto que al principio a los alumnos les cuesta un poco entender su funcionamiento. A diferencia del anterior, aquí no hay un video base, sino que hay objetos (vídeos, audios, fotografías…) que se pueden mezclar y sobreponerse sin problemas. De esta forma, por ejemplo, se puede dividir la pantalla y enseñar simultáneamente dos o más vídeos y alguna foto.

Una vez entienden la idea y aprenden a no perderse entre todas las propiedades que ofrece, lo utilizan con mucha eficacia. Y pueden realizar vídeos un poco más elaborados.

Entre alguna característica interesantes que tiene, destaco la posibilidad de realizar vídeos con fondos transparentes (croma) y, por tanto, añadir una fotografía de fondo (u otro vídeo). Además, incorpora un capturador de vídeo de pantalla ideal para realizar vídeotutoriales.

Para los títulos y los créditos es más molesto. Se puede realizar casi de todo, pero hay que hacerlo manualmente, no hay efectos preconfigurados. Es por eso que muchas veces vamos pasando de Movie Maker al VSDC para ir realizando diferentes tareas. Preparan los créditos con Movie Maker, exportan el vídeo y la importan a VSDC para añadir el resto de vídeos.

memplaiPor último, también utilizo alguna vez la web Memplai.com. Es un editor muy parecido a Windows Movie Maker. Tiene más o menos las mismas posibilidades (o limitaciones), pero con una ventaja importante: es una herramienta colaborativa. Si los alumnos se registran de forma gratuita (ya sabemos que nada es gratuito del todo y algo deben hacer con la información que les facilitamos), pueden subir vídeos y compartirlos con compañeros. A partir de aquí varios alumnos podrán editarlos simultáneamente.

El mayor inconveniente de este editor online no es un problema del editor, sino de los centros. Al menos en mi centro, es bastante impensable que 30 alumnos suban simultáneamente un vídeo, pongamos de 40 MB . En mi caso, nos podríamos pasar la hora entera y no terminar. 🙁

Si se tiene un buena conexión a Internet, es una buena opción. Al menos con alumnos noveles en edición de vídeo.

De los tres editores que he mostrado, se pueden encontrar un montón de tutoriales en internet. Así que si eres profesor y todavía no utilizas la creación de vídeo en el aula, te animo que los busques y lo intente. Verás que la respuesta del alumnado es muy positiva. Y empezar con motivación del alumnado siempre facilita mucho el aprendizaje.

Utilización de redes sociales como instituto

Para empezar, los medios de comunicación electrónicos que utilizamos en nuestro centro para comunicar con el exterior (familias y población en general): Web, SMS, correo electrónico, twitter, facebook y instagram. El SMS se utiliza únicamente para informar de las ausencias de los alumnos, así que no diré nada más .

La web: en la web del centro se debe intentar colgar información de interés para las familias . Está muy bien poner el proyecto de centro, los proyectos que se realizan… pero esta información las familias ya la conocen . Por tanto , hay que añadir información que pueda ser útil a las familias que ya tienen hijos en el centro: horarios de los grupos, tutores, horarios de tutoría …
Además, la web es un buen instrumento para mostrar actividades que ya se han hecho ( salidas, actividades de aula, reuniones informativas … ) .
Nuestra experiencia nos dice que la web no es un buen lugar para poner avisos. Las familias y población en general, solo consulta la web para consultas muy concretas. La mayoría no lo hace de forma periódica, por lo tanto los avisos tienen poca difusión.

La web acaba siendo un archivo de actividades que realizan los alumnos del centro, un archivo de documentación para conocer el estilo del centro y un archivo de la información útil del curso para las familias.

Twitter y Faebook : Estas dos redes sociales sí son muy útiles para dar avisos a familias, alumnos, exalumnos, a medios de comunicación locales o población en general. De momento, facebook es mucho más utilizada por alumnos y exalumnos, y twitter por organizaciones y medios de comunicación . En todo caso, las dos redes son ideales para dar información «en tiempo» real de lo que ocurre en el centro .
Además, Facebook tiene una ventaja que se puede aprovechar para aumentar la comunicación. La facilidad que tiene de permitir comentarios facilita la bidireccionalidad. Con twitter también es posible , pero es un poco más complicado seguir las conversaciones y en nuestro caso no se utiliza tanto.
Nosotros también utilizamos estas redes sociales para avisar de artículos que colgamos en la web.
Así pues, twitter y facebook nos permiten una comunicación en tiempo real, para dar avisos, para explicar lo que está pasando y nos permiten feedback de la comunidad educativa .

Alguien podría echar de menos en este artículo la red Google+. Actualmente no la utilizamos porque en nuestro entorno tiene un uso muy limitado. Los alumnos del centro no la pueden utilizar con el correo del centro porque hay limitaciones de edad. Y las familias no parece que de momento la utilizan demasiado . No descartamos añadirla, pero en todo caso tendría el mismo uso que el Facebook.

Instagram: para terminar, una red para mostrar imágenes . Como nos gusta la fotografía y la educación artística, el centro tiene una cuenta en esta red donde colgamos imágenes del centro y su entorno. Tenemos la suerte de estar ubicados en un entorno de naturaleza bastante privilegiado y animamos a los alumnos a que se den cuenta y hagan fotografías que colgamos en esta cuenta.

Es cierto que el centro podría estar en mas redes que serían interesantes (Pinterest, Delicious …), pero también hay que tener en cuenta que sin una actualización periódica de estas redes pierden todo su sentido .

Las publicaciones se hacen de forma distribuida y en algunos casos de forma automática (como el anuncio de nuevos artículos en la web a través de facebook y twitter ) pero se necesita alguien que vele por impulsarlo y por mantener una cierta coherencia estética y de contenidos.

Me parece que no podemos tener centros que educan alumnos que constantemente viven rodeados de redes sociales y al mismo tiempo dejar el centro fuera. Muchas veces el día a día de los centros hace que esta comunicación se olvide, pero debería ser un punto estratégico de todo centro. Tan importante es hacer bien las cosas , cómo explicar lo que se hace .