Vídeos sobre matrices y edición con FreeCAD

Estos últimos días han sido productivos a nivel de vídeos. Por un lado, he añadido dos vídeos nuevos sobre FreeCAD:

Además, he añadido cuatro vídeos sobre matrices, para intentar hacer un amago de Flipped Classroom en mi grupo de matemáticas de este año. Son los primeros vídeos que grabo usando mi proyecto BDKanvas, así que hasta que tenga un poco más de práctica no me critiquéis mucho:

Tenéis la recopilación de todos los vídeos en la sección “Vídeos explicativos“.

Empezamos curso innovando

Ya hemos terminado la primera semana con chavales en el colegio (bueno, en realidad han sido tres días…) y tengo la sensación de haber empezado como quería: innovando.

Llevo todo el verano dando vueltas a cómo hacer algunas cosas de modo diferente. El curso pasado tuvimos una formación fuerte en aprendizaje cooperativo, y tuve la suerte de formar parte del curso “especialista en aprendizaje y tecnología en educación“, ofrecido por Kristau Eskola, dentro del programa #AuKEraRTIC. Tuve también que impartir una nueva asignatura (nueva para mí, y para el colegio) que agrupaba diseño e impresión 3D, electrónica, programación y no estuve nada satisfecho con el resultado… no porque el alumnado no terminase contento, sino porque yo estaba convencido de que una asignatura como esa podía impartirse de forma distinta, exprimirse mucho más por parte de los participantes, enganchar a esos chavales y chavalas de 17-18 años…

Y aunque parezca una tontería, por otro lado, estuve todo el curso usando una pizarra digital en lugar de una pizarra tradicional para dar matemáticas. Lo que empezó como una anécdota porque la tiza no se marcaba bien en la pizarra “de toda la vida” terminó volviéndose una necesidad… ¿cómo había tenido pizarras digitales en el colegio, y no las había usado antes? ¿cómo iba a dar clase a partir de ahora sin ellas? (a ver, se puede, pero como dice Homer Simpson… “¿por qué comer hamburguesa cuando puedes comer solomillo?”).

Por eso he estado obcecado en encontrar las soluciones a ambos problemas: ¿cómo enfocar correctamente la asignatura de la que he hablado? ¿cómo dar clase al estilo “pizarra digital” en un aula que no la tiene?

La respuesta a la primera pregunta ha sido montar la asignatura como lo que he llamado “MOOC híbrido”. Tengo 32 chavales en clase (unos cuantos) y he decidido montar la asignatura como un MOOC en Moodle, con un enfoque social y cooperativo. La asignatura tiene como pilares fundamentales vídeos y foros. Las explicaciones las doy en casa, delante del ordenador, y las grabo en vídeo (y las estoy colgando en Youtube, disponibles para quien quiera verlas), y el alumnado se dedica a verlas en clase, a su ritmo (pero sabiendo que hay unos mínimos, y de qué depende su nota). Los ejercicios se plantean en foros, donde van colgando sus resultados y reflexiones, se tienen que orientar unos a otros y se coevalúan en equipos. ¿Y a qué me dedico yo? Pues en lugar de a explicarles… a atenderles (y esa es la parte “híbrida”… es un MOOC con el profesor en clase). Y de regalo, mientras no hay dudas, voy calificando lo que van colgando en los foros, y ahorrándome trabajo de corrección en casa  😉

Moodle de la asignatura

La verdad es que la clase se ha desarrollado de manera fluida, los chavales han estado metidos en la dinámica de trabajo, y al terminar me han dicho que les ha gustado la forma de trabajar… a ver si en abril aún me dicen lo mismo  😉

¿Y cómo uso una pizarra digital si no la tengo? Pues hoy he podido usar por primera vez en clase de matemáticas, en vivo, y con éxito, el proyecto en el que he estado trabajando este verano: BDKanvas. BDKanvas es un lienzo de dibujo distribuido, en el que varios usuarios pueden interactuar de forma simultánea, con distintos niveles de zoom… vamos, que puedo escribir en la tablet, en grande (no tengo un Galaxy Note, así que un lápiz capacitivo normal tiene poca precisión para escribir en pequeño o pintar detalles), mientras en el proyector normal del aula se ve a un tamaño ajustado lo que voy explicando. Esto me ha dado otra oportunidad “extra”: la explicación la doy junto a los alumnos, moviéndome entre las mesas, hablando junto a ellos, mientras la explicación se va desarrollando en el proyector.

bdkanvas tweet

Dos innovaciones apoyadas en la tecnología: una implica disponer de un equipo por alumno, y da una vuelta a la metodología tradicional de “os explico, y luego ya practicaréis”; la otra ayuda a que el docente se sienta cómodo dando clase, lo que en mi opinión te permite dar mejores explicaciones, aprovechando los apoyos que brinde la tecnología que se use en cada caso.

¿Y si no puedo usar nada de esto? ¿Lo que hacía hasta ahora estaba mal? Pues no, evidentemente… los modelos educativos usados hasta ahora han sido capaces de educar a la gran mayoría de la población, así que algo harían bien… pero los docentes somos los primeros que tenemos que aprender, y que algo esté bien, no implica que no vaya a haber cosas mejores en determinadas situaciones. ¿Lo importante? No tener miedo, experimentar, darte batacazos (y ser justo con el alumnado cuando lo haces) y querer aprender para poder exprimir al máximo el tiempo que tienes para ayudar a construir el proyecto personal de los chavales y chavalas que pasan por tus clases.

P.D: innovar grabando vídeos lleva tiempo de procesado… así que si un alma caritativa quiere que innove más rápido y me regala un portátil con un i7 de 5ª generación, 8 o 16 GB de RAM y un buen disco duro (o dos, uno SSD y otro de los de toda la vida), le estaré muy agradecido y le dedicaré uno de los vídeos explicativos que grabe 😀

Mi nueva página: projects.bardok.net

Sólo quería compartir una nota rápida sobre mi nuevo “metaproyecto” (vamos, porque es un proyecto sobre proyectos).

Llevaba un tiempo queriendo poner en marcha algunos proyectos de software libre que tenía entre manos, y finalmente he decidido pasar esta web a un servidor VPS para poder gestionar ciertos aspectos, y he creado la sede projects.bardok.net, en la que podréis encontrar información sobre algunos proyectos que ando desarrollando (eso sí, en inglés).

Por ahora he añadido algo de información sobre el simulador de redes que desarrollé el pasado curso para mi alumnado de informática y sobre BDKanvas, el canvas (lienzo) distribuido en el que he estado trabajando este verano (para hacer de sustituto barato de una pizarra digital, en caso de tener sólo un ordenador con proyector normal y una tablet, y querer proyectar de forma sencilla escritura manual y dibujos o imágenes.

Nos vemos en projects.bardok.net!

Feliz Navidad y buen 2015

Pues eso, sólo desearos una feliz Navidad y un buen 2015. Aquí tenéis la felicitación que Sauron y yo os enviamos:

http://bardok.net/networksnavidad/greetings.html

Eso sí, está hecha con HTML5, así que vas a necesitar un navegador moderno (Chrome o Firefox actualizado, o Internet Explorer 11).

And here you can find the english version:

http://bardok.net/networksnavidad/greetings-en.html

You will need a modern browser, as it is developed with HTML5 (updated Firefox or Chrome, or Internet Explorer 11).

A vueltas con Linux y Active Directory

Hace algo así como un año escribí un post que titulado Montando un sistema para clonar Linux y Windows en un colegio, en el que, entre otras cosas, comentaba cómo permitir que los usuarios de un Active Directory pudiesen acceder a los ordenadores del colegio (o la empresa, o lo que sea).

El escenario es el siguiente:

  • Servidor Active Directory
  • Dos perfiles de usuarios: profesorado y alumnado (por simplificar)
  • El profesorado tiene acceso a una serie de carpetas en red, y el alumnado a otras
  • Estas carpetas tienen que montarse y ser accesibles tanto en Windows como en Linux

El caso es que, a lo largo del curso, el enfoque del anterior artículo ha dado algunos problemas (sobre todo con aplicaciones no Gnome que intentaban guardar ficheros en las carpetas en red, por el método usado para montarlas), y he tratado de pulirlo para usarlo correctamente este curso. También he cambiado el escritorio que va a usarse a KDE (básicamente, porque soy más de KDE que de Unity / Gnome), aunque es posible que el curso próximo tengamos unos cuantos ordenadores poco potentes, siguiendo este enfoque con LXDE o XFCE.

Bueno, vamos al grano. Vamos a realizar las siguientes suposiciones:

  • El dominio se llama: “midominio”
  • El nombre FQDN del dominio es: “midominio.fqdn.com”
  • El usuario administrador del dominio (o con permisos para añadir equipos al dominio) es “admin”
  • El profesorado accede a: una carpeta con su nombre de usuario, una carpeta “Publica” y otra “mediateca”. Las dos primeras están en el mismo servidor (fileserver) y la última en otro (mediaserver). Su grupo en el Active Directory es “teachers”.
  • El alumnado accede sólo a las dos primeras, no a la mediateca. Su grupo en el Active Directory es “students”
  • En el servidor “fileserver” tenemos dos carpetas compartidas, “teachers.scripts” y “students.scripts” que contienen una serie de scripts de usuarios. En estas carpetas hay un fichero “version” con la versión de los scripts (sólo un número, nada más, que incremento si cambio los scripts), y una carpeta “bin” con los scripts que hay que ejecutar.

Si queremos usar KDE en Ubuntu, lo lógico sería instalar KUbuntu, pero debido a este bug que ya he reportado, vamos a tener que instalar Ubuntu y después KDE. Ahí van los pasos:

  • Instalación base de Ubuntu, iniciar sesión y actualizar (y liberar espacio):
    sudo apt-get update
    sudo apt-get dist-upgrade
    sudo apt-get autoremove
    sudo apt-get clean
  • Instalar algunos paquetes que vamos a necesitar:
    sudo apt-get install samba cifs-utils smbclient ssh kde-standard kde-l10n-es smbnetfs bindfs

    Cuando nos pregunte qué gestor de acceso queremos usar, diremos que lightdm.

  • Para añadir el equipo al Active Directory usaremos “PowerBroker Identity Services, Open Edition”, conocido hasta hace poco como Likewise open. Es necesario instalarlo a mano, pero es muy sencillo:
    1. Accede a la web de PowerBroker Identity Services, Open Edition y descarga la versión que necesites.
    2. En mi caso, suelo descargar el fichero con wget, y así ya lo tengo donde lo quiero.
    3. Cambia el fichero descargado a ejecutable:
      chmod u+x pbis-....sh
    4. Ejecuta e instala (yo le indico que no cree links para aplicaciones legacy, no  los necesito).

Ya tenemos instalado todo lo que necesitamos. Ahora vamos a cambiar la configuración necesaria:

Edita /etc/samba/smb.conf e indica el dominio que se va a utilizar:

workgroup = midominio

Reinicia samba:

sudo service samba restart

Añade el equipo al dominio:

sudo domainjoin-cli join midominio.fqdn.com admin@midominio.fqdn.com
sudo /opt/pbis/bin/config AssumeDefaultDomain true
sudo /opt/pbis/bin/config UserDomainPrefix midominio
sudo /opt/pbis/bin/config LoginShellTemplate /bin/bash

Edita el fichero /usr/share/pam-configs/pbis y cambia:

sufficient     pam_lsass.so

Por:

[success=ok default=ignore]     pam_lsass.so

Edita el fichero /etc/nsswitch.conf y cambia:

hosts: files mdns4_minimal [NOTFOUND=return] dns

Por:

hosts: files dns mdns4_minimal [NOTFOUND=return] mdns4

Reinicia los servicios necesarios:

sudo /opt/pbis/bin/lwsm restart lwio

Crea el fichero /usr/share/pam-configs/my_mkhomedir:

Name: activate mkhomedir
Default: yes
Priority: 900
Session-Type: Additional
Session:
 required pam_mkhomedir.so umask=0022 skel=/etc/skel

Actualiza la configuración de PAM:

sudo pam-auth-update

Edita el fichero /usr/share/lightdm/lightdm.conf.d/50-unity-greeter.conf para permitir logins manuales, y que el escritorio a utilizar sea KDE. Añade:

allow-guest=false
user-session=kde-plasma
greeter-show-remote-login=false
greeter-show-manual-login=true

Ahora, para que los usuarios puedan loguearse en el dominio y acceder a sus carpetas, necesitamos un par de ficheros en sus perfiles de usuarios, por lo que los copiaremos en /etc/skel. Además, meteremos también un script que se ejecutará al inicio de cada sesión en KDE y creará los accesos necesarios a las unidades de red correspondientes.

sudo mkdir /etc/skel/.smb
sudo cp /etc/samba/smb.conf /etc/skel/.smb
sudo cp /etc/smbnetfs.conf /etc/skel/.smb
sudo chmod o+r /etc/fuse.conf
sudo mkdir -p /etc/skel/.kde/Autostart
sudo nano /etc/skel/.kde/Autostart/10-login.sh
sudo chmod u+x /etc/skel/.kde/Autostart/10-login.sh

El código del script “10-login.sh” lo indico más adelante.

Reiniciamos:

sudo reboot

Con esto ya podemos loguearnos con cualquier usuario del active directory. Ahora vamos con los scripts.

El primer script que vamos a copiar (10-login.sh) va a hacer lo siguiente:

  1. Si los scripts del servidor ya se han descargado anteriormente, comprobará la versión de éstos. Si es la última no se hace nada, en caso contrario, o si nunca se han descargado,  los descarga y los copia en la carpeta “.midominio”.
  2. El comando “smbnetfs” mapea todas las carpetas compartidas del dominio a una carpeta local. Comprobamos que la carpeta exista, y si es el caso, por si las moscas, desmontamos lo que pueda tener montado. La carpeta que vamos a usar es “.servers”.
  3. Si el usuario pertenece al dominio, mapeamos la estructura de carpetas compartidas. En caso de ser alumno o profesor, copiamos los scripts correspondientes (si la versión lo requiere) y ejecutamos el script de inicio.

Y aquí el código del script:

#! /bin/bash

function checkandcopy()
{
  localversion=$1
  remotepath=$2
  remoteversion=`cat $remotepath/version`
  if [ $localversion != $remoteversion ]
  then
    rm -r ~/.midominio/*
    cp -r $remotepath/* ~/.midominio/
  fi
}

isalumno=`pbis list-groups-for-user $USER | grep students`
isprofesor=`pbis list-groups-for-user $USER | grep teachers`
isdominio=`pbis list-groups-for-user $USER | grep usuarios^del^dominio`

version=-1

if [ -d ~/.midominio ]
then
  if [ -f ~/.midominio/version ]
  then
    version=`cat ~/.midominio/version`
  fi
else
   mkdir ~/.midominio
fi

if [ -d ~/.servers ]
then
  # For if the flies
  fusermount -u ~/.servers
else
  mkdir ~/.servers
fi

if [ ! -z "$isdominio" ]
then
  smbnetfs ~/.servers
  sleep 5
fi

if [ ! -z "$isalumno" ]
then
  checkandcopy version ~/.servers/MIDOMINIO/FILESERVER/students.scripts
  ~/.midominio/bin/login.sh
fi

if [ ! -z "$isprofesor" ]
then
  checkandcopy version ~/.servers/MIDOMINIO/FILESERVER/teachers.scripts
  ~/.midominio/bin/login.sh
fi

El script “login.sh” que hay en la carpeta de los profesores vuelve a comprobar que el grupo de seguridad es el adecuado, y usa otro script auxiliar para montar las carpetas necesarias.

#! /bin/bash

userhome=/home/local/MIDOMINIO/$USER
scriptbase=$userhome/.midominio
serversbase=$userhome/.servers

isprofesor=`pbis list-groups-for-user $USER | grep teachers`

if [ ! -z "$isprofesor" ]
then
  $scriptbase/bin/mountsecure.sh $serversbase/MIDOMINIO/FILESERVER/$USER $userhome/Personal
  $scriptbase/bin/mountsecure.sh $serversbase/MIDOMINIO/FILESERVER/Publica $userhome/Publica
  $scriptbase/bin/mountsecure.sh $serversbase/MIDOMINIO/MEDIASERVER/mediateca $userhome/Mediateca
fi

Y el script “mountsecure.sh” al que se hace referencia sólo comprueba que los directorios necesarios existen. Si existen, desmonta lo que pueda haber montado, por si las moscas, y si no, crea el directorio, para después montar la carpeta de red indicada.

#! /bin/bash
remote=$1
local=$2

if [ -d $local ]
then
  # For if the flies
  fusermount -u $local
else
  mkdir -p $local
fi

bindfs -ono-allow-other $remote $local

¡Y listo! Ahora, para el alumnado, copiamos y adecuamos los scripts del profesorado, y ale, a trabajar. Por supuesto, estos scripts se podrían adecuar para comprobar la pertenencia a otros grupos, configurar otro tipo de recursos, etc.

Pero con esto, por ahora, a mí me vale  🙂

Crear un disco virtual cifrado en GNU/Linux

Hace un tiempo, en otro ordenador, tuve un disco virtual cifrado en mi máquina GNU/Linux. Tenía ganas de ver si la manera de hacerlo había cambiado, y veo en la siguiente dirección un modo muy interesante de hacerlo, que incluso permite montar el disco virtual en una máquina Windows (por ejemplo, para poder llevar información sensible en un pendrive, como en mi caso, al ser profesor, podrían ser las notas de mis alumnos, cumpliendo así con la LOPD, al no sacar dicha información personal del centro en un soporte sin cifrar):

http://kailaspatil.blogspot.com.es/2009/08/encrypted-virtual-file-system-evfs.html

Para aportar algo sobre el artículo original, vamos a scriptear la creación del disco virtual con tres pasos: Continue reading

Montando un sistema para clonar Linux y Windows en un colegio

En el colegio en el que trabajo tenemos una red de ordenadores relativamente grande (para ser un colegio, hay unos 1300 alumnos y 100 empleados): dos aulas de informática de unos 30 equipos cada una con su red propia, un ordenador en cada clase, varios en salas de profesores, secretaría y dirección, etc. En total, unos 165 equipos de usuario, junto con cinco servidores virtualizados y algún que otro dispositivo extra conectado a la red, como discos de backup (y no cuento con los ordenadores del programa Eskola 2.0, porque esos van a parte). Los ordenadores del colegio están actualmente dentro de un dominio Active Directory bajo Windows Server 2012, por lo que es requisito indispensable que todos los equipos estén dentro del dominio y se pueda utilizar la autenticación con los usuarios del dominio en todos ellos, incluyendo las máquinas Linux (cada empleado y alumno tiene su usuario y clave personal). Una de las tareas que más tiempo lleva todos los años es reinstalar equipos, y evidentemente, hacerlo a mano es perder el tiempo. No sólo el sistema operativo, el problema son todos los programas que se utilizan en las diferentes asignaturas. Para ello lo habitual es crear una imagen maestra y clonarla en los equipos en los que hay que reinstalar, configurando después cada instalación, e intentado que la configuración post-clonado sea lo más rápida y sencilla posible. Puestos en situación, el resumen de lo que voy a contar en este artículo es el siguiente:

  1. Cómo realizar la imagen maestra con dos sistemas operativos (Windows 7 y Ubuntu Linux 13.04)
  2. Cómo preparar la imagen para clonarla
  3. Cómo clonar esa imagen
    1. en un ordenador individual
    2. con un servidor Clonezilla para realizar un clonado multicast en varios equipos al mismo tiempo
  4. Cómo facilitar los pasos posteriores al clonado en Windows
  5. Cómo facilitar los pasos posteriores al clonado en Ubuntu Linux 13.04, incluyendo la integración de los mismos en el directorio activo

Continue reading