23 de marzo de 2021

Configurar un lector de DNI electrónico en Firefox con AutoFirma en Ubuntu

Hace poco me he visto en la necesidad de utilizar el DNI electrónico para hacer gestiones por Internet. La verdad es que su configuración no ha sido tan sencilla como debería en Ubuntu 20.04, así que me he decidido a escribir este post para explicarselo a mi yo del futuro (y ya de paso a quien lo necesite).

El lector de tarjetas

Aunque supongo lo aquí escrito funcionará con otros, yo he utilizado el lector de tarjetas 23890 Primo Smart Card Reader de la marca Trust.

Instalación de libpkcs11

Para hacer funcionar el lector de tarjetas en nuestro Ubuntu tenemos que instalar libpkcs11. Esta biblioteca depende de otros paquetes, así que primero los instalamos con el siguiente comando:

sudo apt install pcsc-tools pcscd pinentry-gtk2

Una vez instalados, descargamos de la página oficial de la policía nacional el paquete DEB para nuestra distribución.

Y luego lo instalamos, en nuestro caso con el siguiente comando:

sudo dpkg -i libpkcs11-dnie_1.6.6_amd64.deb

Durante la instalación reiniciará el Firefox y mostrará una página con ayuda de configuración (que explicaremos en los puntos más abajo), y para que la instalación termine tenemos que cerrar Firefox.

Comprobamos el lector de tarjetas

En este punto conectamos el lector de tarjetas a nuestro ordenador y ejecutamos el siguiente comando:

lsusb

Si todo ha ido bien en la consola aparecerá listado el lector de tarjetas, en mi caso:

Alcor Micro Corp. AU9540 Smartcard Reader 

Todavía sin meter el DNI en el lector, pero con este conectado a nuestro ordenador, ejecutamos el siguiente comando:

pcsc_scan

Y deberá aparecer en el terminal que no hay tarjeta insertada, en mi caso:

Card state: Card removed

Y cuando introduzcamos el DNI en el lector, ejecutamos de nuevo el comando anterior:

pcsc_scan

Y deberá aparecer en el terminal que hay tarjeta insertada, en mi caso:

Card state: Card inserted

Configurar el dispositivo de seguridad en Firefox

Ahora vamos a Firefox > Preferencias > Privacidad & Seguridad > Dispositivos de seguridad (es un botón que está abajo)

Pulsamos en el botón "Cargar".

Ponemos un nombre al módulo, por ejemplo "DNI Electrónico".

Indicamos la ruta del archivo del módulo: /usr/lib/libpkcs11-dnie.so

Pulsamos en el botón "Aceptar" y aparecerá en los "Dispositivos de seguridad"

Añadir el certificado raíz de la Policía en Firefox

Ahora vamos a Firefox > Preferencias > Privacidad y Seguridad > Ver certificados (es un botón que está abajo)

Vamos a la pestaña "Autoridades" y pulsamos el botón "Importar".

Indicamos la ruta del certificado raíz: /usr/share/libpkcs11-dnie/ac_raiz_dnie.crt

El asistente le pedirá que establezca la confianza para el certificado.

Marque todas las casillas de confianza, y pulse el botón "Aceptar".

En este momento deberá aparecer el certificado raíz de la policía "Ver certificados".

Verificar que funciona el lector de DNI electrónico en Firefox

Ahora nos vamos a:

https://www.sede.fnmt.gob.es/certificados/persona-fisica/verificar-estado/solicitar-verificacion

Si te falla la primera vez, puede que tengas que entrar en una pestaña privada o borrar las cookies para que te funcione de nuevo.

En cualquier caso, si todo va bien, debería pedirte la contraseña del certificado de tu DNI electrónico, que deberían haberte dado en comisaría cuando te lo sacaste.

Una vez introducida la contraseña, en esa página deberías ver tus datos (nombre, apellidos y DNI).

Instalar las dependencias de AutoFirma

La versión 1.6.5 de AutoFirma, aunque arranca con versiones más modernas de Java, hay algunas cosas, como el que firme directamente desde Firefox, que no funcionan si no es con la versión 8 de Java. Para instalar esta dependencia ejecutamos el siguiente comando:

sudo apt install openjdk-8-jre

Si ya tuviéramos instalados una versión más moderna de Java, tendremos que indicar al sistema que queremos usar la 8. Para ello ejecutamos el siguiente comando:

sudo update-alternatives --config java

Nos saldrá algo parecido a esto:

Existen 2 opciones para la alternativa java (que provee /usr/bin/java).
Selección   Ruta                                            Prioridad  Estado
------------------------------------------------------------
* 0            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      modo automático
  1            /usr/lib/jvm/java-11-openjdk-amd64/bin/java      1111      modo manual
  2            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java   1081      modo manua
Pulse <Intro> para mantener el valor por omisión [*] o pulse un número de selección: 

En mi caso, yo tendré que pulsar la opción 2 para que la versión por defecto de Java sea la 8. Para verificarlo ejecutamos el siguiente comando:

java -version

Si todo ha ido veremos algo así:

openjdk version "1.8.0_282"
OpenJDK Runtime Environment (build 1.8.0_282-8u282-b08-0ubuntu1~20.04-b08)
OpenJDK 64-Bit Server VM (build 25.282-b08, mixed mode)

Luego tenemos que instalar la dependencia "libnss3-tools" y para ello ejecutamos el siguiente comando:

sudo apt install libnss3-tools

Instalar AutoFirma

Para instalar AutoFirma nos tenemos que descargar el ZIP de la página de descarga oficial, descomprimirlo en una carpeta, y ejecutar el siguiente comando:

sudo dpkg -i AutoFirma_1_6_5.deb

Con AutoFirma instalado, si tienes un certificado, ya es bastante fácil firmar documentos. El problema es intentar firmar documentos con el DNI electrónico. Para ello hay que hacer ciertas cosas "raras".

Configurar AutoFirma con el DNI electrónico

El primer problema es que la biblioteca JMulticard no funciona correctamente, así que hay que desactivarla desde "Autofirma > Herramientas":

Para que se hagan efectivos los cambios hay que reiniciar. Y lo raro es que ahora, cuando reinicias, si tienes el el lector de tarjetas instalado con el DNI electrónico introducido, te pedirá la contraseña del certificado. Hasta aquí todo normal. Pero luego en la primera pantalla en vez de pulsar sobre el botón "Continuar con DNIe" tienes que pulsar sobre el botón "Usar cualquier certificado".

Sí, no es nada intuitivo, pero como está enchufado un lector de tarjetas salta esta ventana, y como hemos desactivado la biblioteca JMulticard tenemos que pulsar en el botón "Usar cualquier certificado", y a la hora de firmar te mostrará el certificado del DNI electrónico.

Configurar AutoFirma con Firefox

Si hemos llegado hasta aquí sin problemas ya deberíamos poder utilizar el DNI electrónico tanto desde Firefox como desde AutoFirma. El problema llega cuando en un sitio web te piden desde la propia web firmar con AutoFirma.

Como hasta aquí, no es difícil la solución, pero hay que conocerla. AutoFirma no se lleva bien con los perfiles de Firefox, solo debería existir uno.

Si abrimos los perfiles de Firefox desde "about:profiles" vemos que por defecto tenemos 2, "default-release" y "default":

También podemos ver los perfiles arrancando Firefox desde la consola con el comando:

firefox -p

O modificando el fichero:

~/.mozilla/firefox/vim profiles.ini

El caso es que tenemos que eleminar los que no se usan y al final solo tenemos que tener el perfil "default-release".

Pero la cosa no acaba aquí, ahora hay que restaurar la instalación de AutoFirma con Firefox cerrado. Para ello cerramos el Firefox, abrimos AutoFirma, nos vamos a "AutoFirma > Herramientas > Restaurar instalación". Luego pulsamos en el botón "Iniciar restauración". Nos pedirá la contraseña de administrador del sistema. Y debería terminar con algo así:

Probar AutoFirma con Firefox

Y si hemos llegado hasta aquí, sin ningún error, ya solo falta probar que AutoForma funciona bien desde esta página: https://valide.redsara.es/valide/firmar/ejecutar.html probando a firmar un documento con el DNI electrónico con AutoFirma desde el navegador.

Recursos

La información para redactar este post la he sacado de:

Comparte:    Facebook Twitter
Leer más

24 de enero de 2021

EducaMadrid, la Plataforma Tecnológica Educativa de la Comunidad de Madrid

Logo de EducaMadrid, la Plataforma Tecnológica Educativa de la Comunidad de Madrid

Aunque ejerzo como tal desde de febrero de 2020, en octubre de 2020 me nombraron oficialmente Jefe del Servicio de Plataformas Educativas de la Dirección General de Infraestructuras y Servicios de la Consejería de Educación y Juventud de la Comunidad de Madrid.

Aunque me gustaría realizar más labores técnicas, mi trabajo consiste fundamentalmente en labores de coordinación y gestión de EducaMadrid.

A continuación os cuento un poco en que consite la plataforma, tanto a nivel funcional, como de números, como técnico.

¿Qué es EducaMadrid?

Para los que no conocéis EducaMadrid, comentar que es una Plataforma Tecnológica Educativa que ofrece múltiples servicios interconectados y complementarios, como los espacios webs, las aulas virtuales, la mediateca, el cloud, el correo, videoconferencias, MAX (un sistema operativo propio y libre basado en GNU/Linux), formularios, boletines, etc.

EducaMadrid ofrece la posibilidad de desarrollar la competencia digital, la comunicación entre alumnado y docentes e implementar los procesos de enseñanza aprendizaje tanto de manera presencial como a distancia en un entorno seguro, independiente y sostenible.

Es un entorno seguro

EducaMadrid es un entorno seguro

EducaMadrid es un entorno seguro, que cumple con la normativa sobre Protección de Datos, fomenta una enseñanza presencial y a distancia supervisada por los docentes y sobre todo favorece la comunicación sin generar huella digital a sus usuarios.

Es un entorno libre

EducaMadrid es un entorno independiente

EducaMadrid es un entorno libre, alojado en servidores propios situados en la Comunidad de Madrid, respeta la autoría de los contenidos generados por sus usuarios, y todo ello, usando Software Libre que otorga libertad tecnológica.

Es un entorno sostenible

EducaMadrid es un entorno sostenible

Y finalmente, pero no por ello menos importante, EducaMadrid es un entorno sostenible, que aporta riqueza a nuestro entorno contratando empresas madrileñas,  facilita la movilidad entre centros y la colaboración entre sus usuarios y promueve el desarrollo de competencias digitales sin generar usuarios cautivos.

¿Cuáles son nuestros servicios?

Como hemos comentado antes, EducaMadrid ofrece múltiples servicios interconectados y complementarios. A continuación una breve descripción de los servicios más importantes.

Gestión de usuarios

Gestión de usuarios de EducaMadrid

Uno de los principales servicios de EducaMadrid es su sistema de autenticación centralizado. Con un mismo login y contraseña, los usuarios de EducaMadrid pueden entrar en todos sus servicios. Además son los propios centros los que pueden gestionar sus usuarios. Y al inicio de curso hacemos un alta masiva de alumnado y profesorado.

Actualmente hay 1,4 millones de cuentas.

Lista con manuales y vídeos de Gestión de Usuarios.

Gestión de webs

Gestión de webs de EducaMadrid

Otro de los los principales servicios de EducaMadrid es la gestión de webs de comunidades virtuales, webs de departamentos y de clases, webs institucionales de los centros y webs personales de los docentes.

Actualmente 1.840 centros tienen su web institucional en EducaMadrid, y 60.000 docentes tienen webs personales. En todo 2020, se sirvieron 694 millones de páginas y hubo 13 millones de visitantes únicos. Sólo el miércoles 13 de enero de 2021 se sirvieron 5,1 millones de páginas.

Lista con manuales y vídeos de Gestión de webs.

Aulas Virtuales

Aulas Virtuales de EducaMadrid

Las Aulas Virtuales son, sin duda, el servicio estrella de EducaMadrid. Permiten al profesorado crear cursos online en donde el alumnado puede asistir a clases por videoconferencia, descargar documentos, visualizar vídeos, entregar ejercicios, recibir correcciones, comunicarse con sus compañeros y docentes por mensajería instantánea o por foros, e incluso hacer exámenes online desde cualquier parte usando teléfonos, tablets y/o ordenadores.

Actualmente hay 1.880 centros con Aula Virtual, y en ellos 155.000 cursos creados. Se conectan al mes 310.000 alumnos y 33.000 docentes. Sólo el miércoles 13 de enero de 2021 se conectaron en un día 203.000 alumnos y 32.000 docentes y se sirvieron 46,8 millones de páginas web.

Lista con manuales y vídeos de Aula Virtual Nivel Básico y lista con manuales y vídeos de Aula Virtual Nivel Avanzado.

Mediateca

La Mediateca de EducaMadrid

Otro servicio cada vez más utilizado es la Mediateca. Es un espacio donde almacenar y visionar contenidos multimedia: vídeos, vídeos interactivos, imágenes, audios, mapas mentales, Scratch, diseños 3D, pdf, rutas… El profesorado puede compartir de forma fácil y segura sus contenidos. El alumnado también puede subir contenidos con autorización de sus docentes. Los contenidos se pueden insertar en otras páginas web. Y son los propios usuarios los que eligen la licencia con la que se publican sus contenidos.

Sólo en diciembre 2020 tuvo 2,4 millones de visitas de 600.000 visitantes únicos.

Lista con manuales y vídeos de Mediateca.

La nube

La nube de EducaMadrid

Otro servicio cada vez más utilizado es la nube, que es un espacio de almacenamiento de hasta 5 GB por usuario (con posibilidad de ampliación para centros y/o docentes) donde alumnado y profesorado pueden guardar sus documentos, tenerlos siempre accesibles desde cualquier lugar, editarlos de manera colaborativa y compartirlos con quien quieran. 

Los archivos se pueden sincronizar entre diferentes dispositivos con las aplicaciones para ordenadores y dispositivos móviles. El servicio permite a sus usuarios editar de manera colaborativa textos, presentaciones y hojas de cálculo. También permite la creación y sincronización de calendarios entre usuarios de EducaMadrid. También permite compartir carpetas y archivos mediante un enlace, restringiendo el acceso con contraseña o a determinados usuarios. Además se integra con las Aulas Virtuales de EducaMadrid. Y por último, pero no menos importante, todos los archivos subidos son analizados automáticamente en busca de virus y malware bloqueando todos los archivos maliciosos.

Sólo en diciembre 2020 generó un tráfico de 17 TB y tuvo 500.000 usuarios únicos.

Lista con manuales y vídeos de Cloud y Collabora.

Correo electrónico

Correo electrónico de EducaMadrid

Uno de los primeros servicios con los que empezó EducaMadrid fué con el del correo electrónico. Ofrecemos hasta 5 GB por usuario (con posibilidad de ampliación para centros y/o profesorado). Además, por seguridad, el alumnado, por defecto, sólo puede recibir correos de cuentas de EducaMadrid (limitación que puede ser eliminada por los propios docentes).

Solo en el año 2020 se han recibido 265 millones de correos electrónicos y se han enviado 45 millones, y solo el miércoles 13 de enero de 2021 se enviaron 570.000 correos electrónicos, se recibieron 380.000, y los servidores de correo web sirvieron 25,6 millones de páginas web.

Lista con manuales y vídeos de Correo Electrónico.

Videoconferencias

Videoconferencias de EducaMadrid

Y si el correo electrónico fue uno de los primeros servicios en ser implantado en EducaMadrid, uno de los últimos ha sido el de la videoconferencia. Ahora mismo, este servicio está integrado en las Aulas Virtuales y también lo ofrecemos por separado, y permite la trasmisión de clases online.

Solo el 13 de enero hubo 15.000 salas simultáneas y 136.000 usuarios conectados a lo largo del día.

Lista con manuales y vídeos de Videoconferencias y Streaming.

MAX (MAdrid-linuX)

MAX (MAdrid-linuX)

Dentro de EducaMadrid, además de todos los servicios web de los que hemos hablado, llevamos el desarrollo de MAX, MAdrid_linuX, un sistema operativo propio y libre, basado en GNU/Linux, que instalamos por defecto en las dotaciones de los centros, pero que además se puede instalar gratuitamente en cualquier ordenador. MAX incluye (casi) todos los programas que un usuario puede necesitar en su día a día. Está diseñado por docentes, pensando en el alumnado y en el propio profesorado, pero no solo en ellos, pues viene con utilidades útiles para todos, como programas de oficina, edición de audio y vídeo, la firma digital, etc. Otro de sus puntos fuertes es que está diseñado para poder ejecutarse en ordenadores antiguos con escasos recursos de CPU y memoria, por lo que en muchos casos alargan la vida de estos últimos.

Lista con manuales y vídeos de MAX.

Otros servicios

Y hasta aquí los servicios más importantes, pero EducaMadrid es mucho más. Tenemos un servicio de realización de formularios para la recogida de datos, otro para la gestión de newsletters, otro de streaming, otro de gestión de proyectos, otro de gestión de tickets, otro para la comunicación de equipos, otro para la gestión del catálogo general de las bibliotecas escolares, otro para compartir archivos grandes, otro para las gestión de las dotaciones TIC, etc.

¿Cuáles son nuestros números?

EducaMadrid se creó en el 2002 y ha ido gastado dinero en recursos materiales y personales en función de la demanda. Durante el confinamiento la demanda creció casi un 500%. Teníamos todo bien dimensionado para una tasa de crecimiento de un 100% anual, pero no crecer un 500% en menos de un mes. Las primeras semanas del confinamiento, casi todos los servidores se colapsaron. Afortunadamente, la Consejería de Educación hizo una inversión en máquinas y en personal, y desde Semana Santa el servicio mejoró bastante.

En verano migramos la web, migramos los servidores de correo, migramos también las aulas virtuales, añadimos un sistema de videoconferencia, añadimos más servidores, cabinas de almacenamiento y reestructuramos la red interna. Afortunadamente, ahora damos un servicio, que aunque siempre mejorable, es bastante bueno.

En la primera semana de enero, debido al confinamiento causado por la nieve de la borrasca Filomena, volvimos a tener un aumento considerable de tráfico que afectó al rendimiento. Estábamos inmersos en las últimas ampliaciones, pues los últimos servidores, cabinas de almacenamiento, y elementos de red nos llegaron en diciembre. A marchas forzadas levantamos nuevos servidores de base de datos, nuevos servidores web, y nuevos servidores de correo y de la nube. Estuvimos analizando la utilización de las bases de datos, de los buzones de correo y de los sistemas de ficheros de la nube y en base a ello, migramos las bases de datos, los buzones de correo, y los ficheros de la nube con más utilización a los nuevos servidores. Así mismo estuvimos optimizando todos los servidores, tanto a nivel de software como a nivel de hardware. Y poco a poco todos los servicios fueron mejorando.

El miércoles 13 de enero de 2021 batimos todos nuestros récords superando las 80 millones de páginas servidas en un día solo superada por Google, YouTube y Facebook.

El miércoles 13 de enero de 2021 batimos todos nuestros récords superando las 80 millones de páginas servidas en un día solo superada por Google, YouTube y Facebook.

Ese miércoles 13 de enero de 2021, se conectaron a las Aulas virtuales 203.000 alumnos y 32.000 docentes, se enviaron 570.000 correos electrónicos, y se recibieron 380.000, hubo más de 15.000 salas simultáneas de videoconferencia y 136.000 usuarios conectados a las mismas a lo largo del día.

Para haceros un idea del volumen de datos que procesa EducaMadrid, en el curso 19-20 se sirvieron 4.200 millones de páginas con 150 millones de visitas, actualmente hay 148.000 cursos creados en las Aulas Virtuales y se conectan a las mismas 294.000 alumnos y 32.000 docentes al mes, sólo en diciembre de 2020 la mediateca tuvo 2,4 millones de visitas de 600.000 visitantes únicos y la nube generó un tráfico de 17 TB y tuvo 500.000 usuarios únicos, solo en el año 2020 se han recibido 265 millones de correos electrónicos y se han enviado 45 millones.

Como dato curioso, solo el día 22 de diciembre de 2020, provocado por las felicitaciones navideñas, el Cloud (el servicio de almacenamiento de ficheros en la nube de EducaMadrid) sirvió 3 TB de información, y la Mediateca (que aloja vídeos, audios, imágenes y muchos otros contenidos) sirvió 2,6 millones de páginas.

Y para haceros una idea del crecimiento exponencial que ha tenido la plataforma este año, os voy a poner el ejemplo de las Aulas Virtuales, que en septiembre de 2019 se crearon 4.000 cursos y en septiembre de 2020 se crearon 62.000 cursos.

En cuanto a personas, hasta hace poco eramos 2 funcionarios, 3 técnicos de soporte y 6 técnicos encargados del desarrollo, de sistemas y del alojamiento. Hemos tenido que reforzar la plantilla y para inicio de este 2021 hemos doblado esos números.

¿Qué tecnologías usamos?

Una de las peculiaridades de EducaMadrid es que no hemos migrado a entornos “As A Service” en la nube y seguimos comprando hierro. Este último año hemos hecho una gran inversión. En nuestro CPD tenemos balanceadores, firewalls, WAFS, switches, servidores y cabinas de almacenamiento. Aunque todo lo tenemos virtualizado, uno de los pasos que todavía no hemos dado es la dockerización de las aplicaciones. En entornos “As A Service” en la nube tiene mucho sentido la dockerización para poder escalar de forma rápida sin gastar dinero de más. Pero en nuestro caso, que ya hemos hecho la inversión en hierro, nos cuesta lo mismo tener una máquina virtual más encendida, por lo que intentamos dimensionar por exceso, y si en un momento hacen falta más máquinas, simplemente clonamos las mismas.

La gestión de 1.2 millones cuentas de centros, docentes y alumnado la hacemos mediante 1 servidor OpenLDAP principal y 5 servidores secundarios.

Para la gestión de webs de comunidades virtuales, de departamentos y de clases, para las webs institucionales de 1.840 centros, y las personales de 60.000 docentes usamos 4 frontales Liferay con 1 servidor de base de datos PostgreSQL. También tenemos 2 servidores para algunas webs con Wordpress.

Tenemos instancias de Moodle independientes para dar servicio de Aulas Virtuales a 1.880 centros en donde hay 148.000 cursos creados y se conectan 294.000 alumnos y 32.000 docentes al mes. Todo lo gestionamos con 40 frontales web y 10 servidores de base de datos PostgreSQL.

La Mediateca que es un espacio donde almacenar y compartir contenidos multimedia, sólo en diciembre de 2020 tuvo 2,4 millones de visitas de 600.000 visitantes únicos  Para dar este servicio usamos 2 frontales, 1 servidor MySQL y 1 servidor de conversión de videos.

Ofrecemos 5 GB de almacenamiento en la nube con sincronización entre equipos, la posibilidad de compartir archivos y la opción de editar documentos de forma colaborativa. Solo en el mes de diciembre de 2020 generó un tráfico de 17 TB y tuvo 500.000 usuarios únicos. Para dar este servicio usamos ownClowd con 7 DATAS, 7 frontales, 1 servidor MySQL, 1 servidor de edición de contenidos.

Ofrecemos también 5 GB de almacenamiento de correo electrónico. Para dar servicio usamos 4 servidores de correo saliente, 4 servidores de correo entrante, 14 servidores de qmail, 11 frontales de roundecube y 1 servidor de sympa para las listas de centros y profesores.

Uno de los problemas más grandes que nos encontramos con EducaMadrid, es que cada vez que añadimos un nuevo servicio, tenemos que pensar primero como lo vamos a escalar, porque de la noche a la mañana lo usan cientos de miles de personas.

Y de los retos técnicos más interesantes que tenemos por delante, es la personalización de todo el Software Libre que usamos para que todos los servicios tengan una cierta homogeneidad. Otro de los aspectos importantes es la integración de todos los servicios. Y para terminar, otro de los retos más importantes que tenemos es devolver a la comunidad del Software Libre al menos una parte de lo que hemos recibido de ella, apoyando técnica y económicamente proyectos de Software Libre, como liberando proyectos internos nuestros.

¿Por qué usamos Software Libre?

Mapa conceptual del Software Libre

Una de las particularidades de EducaMadrid es que basamos casi todos nuestros servicios en Software Libre. La mayor ventaja de usar Software Libre es que este ofrece independencia tecnológica, al no tener que depender del pago de licencias de software privativas, pues aunque estas pueden ser gratis en un primer momento, también pueden aumentar de precio considerablemente si la empresa propietaria lo decide unilateralmente. Esto permite, además de ahorrar gastos, dar estabilidad al proyecto. Esto no quiere decir que sea gratis, pues pagamos licencias de soporte por dicho software, o pagamos a desarrolladores de empresas locales para instalar y personalizar dicho software.

Además usando Software Libre, no creamos usuarios cautivos, pues los alumnos cuando acaban su etapa educativa, pueden seguir usando el software de EducaMadrid en otros entornos, pues son libres de instalarlo donde quieran, o elegir cualquier software propietario para los que estarán totalmente capacitados. En EducaMadrid se pueden enseñar competencias digitales utilizando Software Libre, estas son de utilidad tanto para desarrollar las competencias de los alumnos con Software Libre como con software propietario.

¿Cómo gestionamos las incidencias y sugerencias?

EducaMadrid dispone de un Centro de Asistencia al Usuario con un número de teléfono, el 900 100 172 y un correo electrónico de contacto cau@educa.madrid.org desde donde se atienden las incidencias y sugerencias de los usuarios.

Tenemos muchas peticiones de mejora, y nos gustaría atenderlas todas, pero eso imposible, no solo porque los recursos que tenemos son limitados, si no porque a veces usuarios diferentes nos piden cosas antagónicas, como que añadamos cierta funcionalidad, y una vez añadida otros usuarios nos piden que la quitemos. En cualquier caso todas las peticiones las estudiamos y por lo general, si no necesitan un desarrollo muy grande, las ponemos en marcha.

Algo muy habitual es la petición de plugins. En este caso, primero los funcionarios (profesores de primaria, secundaria y F.P. que trabajan con nosotros en comisión de servicios) estudian si la funcionalidad que aportan los plugins es necesaria y no está cubierta ya por la propia herramienta o por otro plugin ya instalado. Pasado este primer filtro, los técnicos estudian el plugin técnicamente, si tiene una cierta trayectoria, si está activo, si no necesita requisitos especiales. En cuyo caso se instala en un entorno de pruebas, y si pasan las mismas, entonces se toma la decisión de instalarlo en el entorno de producción, en este caso para todos los centros.

En cualquier caso, una de las tareas fundamentales de los técnicos, es ir actualizando el software de toda la plataforma todos los años a las últimas versiones. Durante esos cambios intentamos mejorar la plataforma añadiendo mejoras de usabilidad en las herramientas y de integración entre las mismas, y cómo no, las mejoras que nos piden nuestros usuarios, priorizando las que nos piden de forma más habitual.

---

Iconos con licencia Creative Commons de https://thenounproject.com/ y de https://material.io/resources/icons/.

Comparte:    Facebook Twitter
Leer más

6 de enero de 2021

Mis propósitos para el 2021


Después de hacer mi retrospectiva del 2019, y como vengo haciendo desde el 2013, ahora toca plasmar mis propósitos para este 2021.

Como el año pasado, voy a intentar que los propósitos de este año sean desafiantes y motivadores, pero sobre todo realizables. De nada vale ponerse unos bonitos propósitos si sabes de ante mano que no vas a poder realizarlos. También quiero que, en la medida de lo posible, sean medibles para poder evaluar su consecución. De esta forma podré comprobar de forma fehaciente su ejecución. Así mismo voy a intentar que dependan fundamentalmente de mi. Creo que tus propósitos no pueden depender de terceras personas. Y para terminar quiero cubrir todas las áreas importantes de mi vida: la salud, el dinero y el amor.

Salud:
  • Coger de nuevo la rutina de andar al menos 8 kilómetros al día.
  • Coger de nuevo la rutina de correr al menos 8 kilómetros a la semana.
  • Realizar ejercicio al menos 3 días a la semana.
  • Beber como mucho 3 cervezas a la semana.
  • Dormir al menos 8 horas al día.
  • Perder peso y estabilizarlo en 78 Kg.

Dinero:

  • Dar lo mejor de mi como Jefe del Servicio de Plataformas Educativas de la Consejería de Educación y Juventud de la Comunidad de Madrid.
  • Ayudar a Jesús, Ana, Ángel, Belén, Javier y María con Hackathon Lovers.
  • Ayudar a mi gran amigo Fernando Redondo con Pronoide.
  • Colaborar con la Universidad de Alcalá como profesor de algún Máster.
  • Prepararme e impartir un nuevo curso que no haya dado hasta ahora.
  • Escribir al menos 6 entradas en mi blog este año.

Amor:
  • Dedicar al menos 1 día a la semana a hacer algo en familia con mi mujer y mis hijas.
  • Dedicar al menos 1 día a la semana a hacer algo solo con mis hijas.
  • Dedicar al menos 10 horas a la semana a tareas de la casa y/o familiares.
  • Realizar al menos 2 viajes al año con mi mujer y mis hijas.
  • Dedicar al menos 2 días al mes a hacer algo con amigos.
  • Dedicar al menos 2 días al mes a hacer algo con familiares.

Iconos con licencia Creative Commons: salud, dinero y amor.

Comparte:    Facebook Twitter
Leer más

Retrospectiva del 2020

 

Este año ha sido bastante especial. Primero porque aunque ejerzo como tal desde de febrero de 2020, en octubre de 2020 me nombraron oficialmente Jefe del Servicio de Plataformas Educativas de la Dirección General de Infraestructuras y Servicios de la Consejería de Educación y Juventud de la Comunidad de Madrid. Y aunque me gustaría realizar más labores técnicas, mi trabajo consiste fundamentalmente en labores de coordinación y gestión de EducaMadrid. Y segundo porque ha sido un año marcado por la pandemia del COVID.

Como otros años, me gusta hacer una retrospectiva chequeando los propósitos que me marqué a principio de año y ver cuales de ellos he conseguido:

Salud:

El confinamiento rompió todos mis hábitos saludables. Dejé de andar regularmente. Dejé de correr. Dejé el gimnasio. No he mejorado mis hábitos alimenticios. Y he cogido un par de kilos que me tendré que quitar. Es verdad que he realizado ejercicio en casa pero nada que ver con otros años. Es un aspecto de mi vida en el que tengo mucho que mejorar en el 2021.

  • [No conseguido] Andar al menos 8 kilómetros al día.
  • [No conseguido] Correr al menos 8 kilómetros a la semana.
  • [A medias] Practicar, además de correr, al menos 1 hora de ejercicio a la semana.
  • [A medias] Beber como mucho 3 cervezas a la semana.
  • [A medias] Comer fruta y verduras todos los días.
  • [A medias] Dormir al menos 8 horas al día.
  • [No conseguido] Estabilizar mi peso actual.

Dinero:

Justo un mes antes de empezar el confinamiento empecé a ejercer como Jefe del Servicio de Plataformas Educativas de la Dirección General de Infraestructuras y Servicios de la Consejería de Educación y Juventud de la Comunidad de Madrid. Y desde que empezó el confinamiento la avalancha de trabajo ha sido tal que mi trabajo ha tomado gran parte de mi tiempo. He trabajado una media de 12 horas diarias, fines de semana inclusive. Desde aquí dar las gracias a todas las personas que me han ayudado en esta ardua tarea: Fernando, Quirino, Cristina, Juanma, Isma, Roberto, Pedro, Aitor, Edu, Esther, Víctor, Teresa, Christian, Roberto, Jose, Daniel, Adolfo, Irene, Rubén, y un gran número más de gente inquieta. No he podido ayudar a Fernando con Pronoide. Ni dedicar tiempo a formación o a mi blog. Espero que este año la carga de trabajo se normalice y pueda conciliar mi vida profesional con mi vida personal.

  • [Conseguido] Dar lo mejor de mi en la Consejería de Educación, Juventud y Deporte de la Comunidad de Madrid.
  • [No conseguido] Ayudar a mi gran amigo Fernando Redondo con la Transformación Digital de Pronoide.
  • [Conseguido] Colaborar con la Universidad de Alcalá como profesor de algún Máster.
  • [No conseguido] Dedicar al menos 10 horas al mes en proyectos de Software Libre.
  • [No conseguido] Dedicar al menos 5 horas a la semana en formación.
  • [No conseguido] Escribir al menos 24 entradas en mi blog este año.
  • [Conseguido] Dar un salto en mi vida profesional.

Amor:

Si algo bueno trajo el confinamiento, es que hemos pasado más tiempo en casa y hemos pasado más tiempo con la familia. Ahora bien, los viajes y las quedadas con amigos o familiares se cancelaron. Y para terminar, a pesar del COVID, sin que yo hiciera aparentemente nada especial, por fin he encontrado un nuevo líder en Hackathon Lovers.

  • [Conseguido] Dedicar al menos 1 día a la semana a hacer algo en familia con mi mujer y mis hijas.
  • [Conseguido] Dedicar al menos 10 horas a la semana a tareas de la casa y/o familiares.
  • [A medias] Dedicar al menos 1 día a la semana a hacer algo solo con mis hijas.
  • [No conseguido] Realizar al menos 2 viajes al año con mi mujer y mis hijas.
  • [No conseguido] Dedicar al menos 2 días al mes a hacer algo con amigos.
  • [No conseguido] Dedicar al menos 2 días al mes a hacer algo con familiares.
  • [Conseguido] Buscar un/a nuevo/a líder/sa que me sustituya en Hackathon Lovers.
Comparte:    Facebook Twitter
Leer más

22 de marzo de 2020

Programando un "Guitar Hero" con p5js y ToneJS


Hace poco he ayudado a montar el CoderDojo de Carabanchel, que es un club de programación donde niños y niñas de entre 7 y 17 años aprenden a programar ayudados por mentores. Hasta antes de la cuarentena, nos reunimos los sábados por la tarde, y yo intentaba ir siempre que podía con mis dos hijas. Además, a veces preparaba talleres.

Al principio preparé un taller de p5js, que es una librería de JavaScript para crear arte interactivo en el navegador que gustó bastante.

Luego preparé un taller de iniciación a ToneJS, una librería JavaScript para programar música en el navegador.

Luego también preparé un taller de iniciación a ToneJS, una librería JavaScript para programar música en el navegador.

Luego preparé un taller en donde mezclaba tanto p5js como ToneJS.

Y por último, aunque todavía no lo he impartido en el CoderDojo, he preparado un taller en donde se programa un "Guitar Hero" con p5js, y ToneJS.

Si tenéis chicos y/o chicas, puede ser un bonito taller para realizar en casa durante esta cuarentena.

Tenéis todo el código y las librerías que necesitáis en un repositorio de mi GitHub.

En el taller he preparado varios ejercicios de dificultad creciente que podéis ver resultado en los siguientes enlaces:

Y a continuación os inserto el último ejemplo en un iframe para que lo disfrutéis desde mi blog :-)


Comparte:    Facebook Twitter
Leer más

2 de marzo de 2020

Taller de p5js y de ToneJS

Hace poco he ayudado a montar el CoderDojo de Carabanchel, que es un club de programación donde niños y niñas de entre 7 y 17 años aprenden a programar ayudados por mentores. Nos reunimos los sábados por la tarde, y yo intento ir siempre que puedo con mis dos hijas. Además, a veces preparo talleres.

Al principio preparé un taller de p5js, que es una librería de JavaScript para crear arte interactivo en el navegador que gustó bastante.

Luego preparé un taller de iniciación a ToneJS, una librería JavaScript para programar música en el navegador. Este último taller está muy relacionado con un artículo que escribí hace justo un año en dónde explicaba cómo programar la música de Star Wars con Gibber. Esto lo digo porque en ese taller voy explicando en ejercicios de cada vez más dificultad, como ir programando notas, y al final terminamos tomando el 'Cumpleaños Feliz', y la música de 'Star Wars'.

Y por último he preparado un taller en donde mezclo p5js, y tonejs.

Tenéis todo el código y las librerías que necesitáis en un repositorio de mi GitHub.

En el taller he preparado varios ejercicios de dificultad creciente que podéis ver resultado en los siguientes enlaces:

Y a continuación os inserto el último ejemplo en un iframe para que lo disfrutéis desde mi blog :-)


Comparte:    Facebook Twitter
Leer más

5 de febrero de 2020

Charlas técnicas que más me han gustado II


Hace unos meses publiqué una entrada con las últimas charlas técnicas que había visto y que más me habían gustado. Parece que gustó bastante, así que ahora he hecho una recopilación de las charlas que más me han gustado desde ese último post. Como la última vez, he puesto un * en las charlas que más me han gustado de todas.

Blockchain

Blockchain - EthicHub, Blockchain financiando agricultores desbancarizados (Raúl Martínez) *
Blockchain - Creación de una criptomoneda como técnica de gamificación en la empresa (Angel Miguel Martinez Pulido) *
Blockchain - SOLID - Internet sin espías - Pilar Barbero y Laura Fernando)

Inteligencia Artificial

IA - AI to hack the Universe (Clara Luis Mingueza & Nerea Luis)
IA - Aprendizaje por refuerzo con OpenAI Gym (Ana Laura Diedrichs)
IA - Arte e Inteligencia Artificial - todas GANamos (Nerea Luis) *
IA - Big Data e IA para el bien social (Nuria Oliver)
IA - Caja negra, caja blanca y el futuro inmediato de la Inteligencia Artificial (Nerea Luis) *
IA - Cómo crear equipos de Data Science (Antonio Molins) *
IA - Conferencia Inaugural Evento central de Semana Europea de la Robótica #erw2018 (Nerea Luis)
IA - Del Software 1.0 al Software 2.0 (Andrés Torrubia) *
IA - La IA más allá de la minería de datos (Nerea Luis)
IA - #MiEmpleoMiFuturo - un documental sobre robots, economía, clase media... y el fin del mundo (COTEC)
IA - #MiEmpleoMiFuturo 2 - un documental sobre robots, economía, clase media... y el fin del mundo (COTEC)
IA & Educación - StarCraft Education - Aprendiendo a programar jugando con IA (Moisés Martínez y Nerea Luis)

Inspiracional

Inspiracional - Hackeando el futuro para mejorar el presente (Esther Estévez)
Inspiracional - Keynote AdaloversConf (Nerea Luis) *
Inspiracional - Cómo crear una aplicación adictiva y por qué no deberíamos hacerlo (Rubén García)
Inspiracional - Papá, llévame a clases de tecnología, ¡me lo prometiste! (Alai Miranda Blanco)
Inspiracional - Principios cognitivos aplicados al desarrollo de videojuegos (Rocío Tomé)
Inspiracional - Preventing the Collapse of Civilization (Jonathan Blow)*
Inspiracional - Próxima parada... ¡la que quieras! (Irene M. Morgado)*

Desarrollo

Desarrollo - Asistentes de voz, una charla para dominarlos a todos (Joaquín Engelmo, Jordi Martí y Diego Zapico)
Desarrollo - Cómo gestionar 20 millones de peticiones en 24 horas y no morir en el intento (Chema Roldán)
Desarrollo - Cómo mejorar como desarrollador, no te fíes, es justo al revés (Jorge Franco y Angélica Sanz)
Desarrollo - Descubriendo Quarkus, Java sub-atómico en acción (Aurea Muñoz y Katia Aresti)
Desarrollo - Git avanzado (Jesús Amieiro Becerra)
Desarrollo - Historia de una gran bola de lodo escrita en JavaScript (Alfredo Artiles)
Desarrollo - Micronaut y GraalVM, La combinación perfecta (Iván López)
Desarrollo - Refactorizar rima con Simplificar, o por qué el miedo conduce a código inmantenible (Javier Abadía) *
Desarrollo - Rust & WebAssembly para JavaScripters (Pablo Magaz)
Desarrollo - ¿Qué ocurre cuando escribo una URL en mi navegador (Javier Gamarra, Victor Galán Grande)

Managment

Managment - Cómo convertir un fracaso en un éxito (Rita Madariaga)
Managment - Del caos al equilibrio (Félix López)
Managment - De su padre y de su madre (Isabel Aguilar)
Managment - Jardineros, artesanos o ingenieros pero no juglares (Modesto San Juan) *
Managment - La crisis de los 40 (Javi Santana)
Managment - Mis retrospectivas se han roto. Antipatrones de equipo (María Berenguer)
Managment - Motivating teams (Josefina Pérez) *
Managment - Tu Scrum Master te engaña y lo sabes! (Benjamín Garrido)
Managment - Unbiasing teams (Félix López) *

Psicología

Psicología - 25 sesgos cognitivos (Euge Oller)
Psicología - 7 Sesgos cognitivos que debes conocer y evitar para tomar mejores decisiones.
Psicología - Sesgos cognitivos y adaptación al medio (Helena Matute)
Psicología - Heurísticas: los atajos de tu mente (Martin Schleicher) *

Seguridad

Seguridad - Hackeando que es gerundio (Pablo Espada Bueno)
Seguridad - Nodejs 4 Hackers (Ulises Gascon) *
Seguridad - OSINT, la exposición a Internet y los peligros de las Redes Sociales (Ruth González y Miguel Hernández)
Seguridad - Social Engineering (@JR_kneda)
Seguridad & IA - Machine Learning aplicado a la Ciberseguridad (José Manuel Ortega) *
Seguridad & IA - Machine Learning aplicado a la Ciberseguridad (Claudio Caracciolo y Enrique Blanco)

Varios

Varios - Accesibilidad - ¿Quieres que use tu app? (Sandra Timón Mayo, Ane Iturzaeta)
Varios - AR/VR - Building the Decentralized Metaverse (Alberto Elias)
Varios - Tips para mejorar la gestión de tu tiempo (Adolfo Sanz de Diego)
Varios - SoftwareLibre - #OpenSource para un mundo #OpenData - data por el pueblo, para el pueblo (Jorge Aguilera)

UX/UI

UX/UI - Historia de la UX, para entendernos mejor (Meri Fernández)
UX/UI - UX de guerrilla, manual de supervivencia para devs (Meri Fernández) *
UX/UI - Visualización de Datos Interactiva en aplicaciones con Vue.js y React (Javier Abadía)
UX/UI - Problemas de UX ocultados detrás de bonita UI (James Heda Weng)
Comparte:    Facebook Twitter
Leer más

3 de febrero de 2020

Taller de iniciación a ToneJS, una librería JavaScript para programar música en el navegador


Hace poco he ayudado a montar el CoderDojo de Carabanchel, que es un club de programación donde niños y niñas de entre 7 y 17 años aprenden a programar ayudados por mentores. Nos reunimos los sábados por la tarde, y yo intento ir siempre que puedo con mis dos hijas. Además, a veces preparo talleres. Al principio preparé un taller de p5js, que es una librería de JavaScript para crear arte interactivo en el navegador que gustó bastante, y ahora he preparado un taller de ToneJS una librería JavaScript para crear música interactiva en el navegador. Este último taller está muy relacionado con un artículo que escribí hace justo un año en dónde explicaba cómo programar la música de Star Wars con Gibber.

Tenéis todo el código y las librerías que necesitáis en un repositorio de mi GitHub.

Este es el código más básico para crear un botón que al pulsarlo haga sonar una nota, en este caso un DO, en el navegador:

<!DOCTYPE html>
<html>
  <head>
    <title>ToneJS - 01 una nota</title>
    <script src="../lib/Tone.js"></script>
  </head>

  <body>
    <button id="do">UNA NOTA</button>
  </body>

  <script type="text/javascript">
    const synth = new Tone.Synth().toMaster();
    Tone.Transport.start();

    document.querySelector("#do")
      .addEventListener("click", async () => {
        synth.triggerAttackRelease("C4", "4n");
    });
  </script>
</html>
El resultado es el siguiente (pulsa el botón para probar):

En este punto hay que remarcar que las notas se ponen en el estilo anglosajón:
  • DO=C
  • RE=D
  • MI=E
  • FA=F
  • SOL=G
  • LA=A
  • SI=B
El número que sigue a la nota hace referencia a la octava (ya sea esta más grave o más aguda).

A continuación, parte del código para hacer una especie de piano con botones:

<!DOCTYPE html>
<html>
  <head>
    <title>ToneJS - 02 varias notas</title>
    <script src="../lib/Tone.js"></script>
  </head>

  <body>
    <button id="do">DO</button>
    <button id="re">RE</button>
    ...
  </body>

  <script type="text/javascript">
    const synth = new Tone.Synth().toMaster();
    Tone.Transport.start();

    document.querySelector("#do")
      .addEventListener("click", async () => {
        synth.triggerAttackRelease("C4", "4n");
    });

    document.querySelector("#re")
      .addEventListener("click", async () => {
        synth.triggerAttackRelease("D4", "4n");
    });

    ...
  </script>
</html>
El resultado es el siguiente (pulsa los botones para probar):

A continuación mostramos el código para que suene una escala:

<!DOCTYPE html>
<html>
  <head>
    <title>ToneJS - 03 escala</title>
    <script src="../lib/Tone.js"></script>
  </head>

  <body>
    <button id="escala">ESCALA</button>
  </body>

  <script type="text/javascript">
    const synth = new Tone.Synth().toMaster();
    Tone.Transport.start();

    document.querySelector("#escala")
      .addEventListener("click", async () => {
        synth.triggerAttackRelease("C4", "8n", 1);
        synth.triggerAttackRelease("D4", "8n", 2);
        synth.triggerAttackRelease("E4", "8n", 3);
        synth.triggerAttackRelease("F4", "8n", 4);
        synth.triggerAttackRelease("G4", "8n", 5);
        synth.triggerAttackRelease("A4", "8n", 6);
        synth.triggerAttackRelease("B4", "8n", 7);
        synth.triggerAttackRelease("C5", "8n", 8);
    });
  </script>
</html>
El resultado es el siguiente (pulsa el botón para probar):

Ahora hacemos algo un poco más elaborado utilizamos 2 arrays: uno para las notas y otro para las duraciones de las notas.

Aquí hay que remarcar que para los tiempos hay que tener en cuenta que:
  • 1n hace referencia a una redonda (4 tiempos)
  • 2n hace referencia a una blanca (2 tiempos)
  • 4n hace referencia a una negra (1 tiempo)
  • 8n hace referencia a una corchea (0,5 tiempos)
  • 16n hace referencia a una semicorchea (0,25 tiempos)
Teniendo en cuenta esto, a continuación el código para hacer una escala con diferentes tiempos:

<!DOCTYPE html>
<html>
  <head>
    <title>ToneJS - 04 notas</title>
    <script src="../lib/Tone.js"></script>
    <script src="../lib/Rhythm.js"></script>
  </head>

  <body>
    <button id="notas">NOTAS</button>
  </body>

  <script type="text/javascript">
    var synth = new Tone.Synth().toMaster();

    document.querySelector("#notas").addEventListener("click", async () => {

      var notas = [
        "C4","D4","E4","F4","G4","A4","B4","C5"];
      var duraciones = [
        "2n","4n","8n","16n","16n","8n","4n","2n"];

      var cancion = Rhythm.mergeDurationsAndPitch(duraciones, notas);

      var part = new Tone.Part(function(time, value){
        console.log(value.note + " " + value.duration);
        synth.triggerAttackRelease(value.note, value.duration, time);
      }, cancion );
      
      part.start(0);
      Tone.Transport.start();
    });
  </script>
</html>
El resultado es el siguiente (pulsa el botón para probar):

Ahora vamos a coger una partitura sencilla, la del cumpleaños feliz:

Y la codificamos con ToneJS:

<!DOCTYPE html>
<html>
  <head>
    <title>ToneJS - 05 cumpleaños feliz</title>
    <script src="../lib/Tone.js"></script>
    <script src="../lib/Rhythm.js"></script>
  </head>

  <body>
    <button id="notas">CUMPLEAÑOS FELIZ</button>
  </body>

  <script type="text/javascript">
    var synth = new Tone.Synth().toMaster();

    document.querySelector("#notas").addEventListener("click", async () => {

      var notas = [
        "C4", "C4", 
        "D4", "C4", "F4", 
        "E4", "C4", "C4", 
        "D4", "C4", "G4",
        "F4", "C4", "C4",
        "C5", "A4", "F4",
        "E4", "D4", "Bb4", "Bb4",
        "A4", "F4", "G4",
        "F4"];
      var duraciones = [
        "8n", "8n", 
        "4n", "4n", "4n",
        "2n", "8n", "8n",
        "4n", "4n", "4n",
        "2n", "8n", "8n", 
        "4n", "4n", "4n", 
        "4n", "4n", "8n", "8n",
        "4n", "4n", "4n",
        "2n"];

      var cancion = Rhythm.mergeDurationsAndPitch(duraciones, notas);

      var part = new Tone.Part(function(time, value){
        console.log(time + " " + value.note + " " + value.duration);
        synth.triggerAttackRelease(value.note, value.duration, time);
      }, cancion );
      
      part.start(0);
      Tone.Transport.start();
    });
  </script>
</html>
El resultado es el siguiente (pulsa el botón para probar):

Y para terminar, hacemos lo mismo con la partitura de Star Wars:

Aquí hay que tener en cuenta que los trisillos se codifican con una t, en vez de con una n (ejemplo 8t). Y para los puntillos hay que disminuuir su número (ejemplo 3n).

<!DOCTYPE html>
<html>
  <head>
    <title>ToneJS - 06 Star Wars</title>
    <script src="../lib/Tone.js"></script>
    <script src="../lib/Rhythm.js"></script>
  </head>

  <body>
    <button id="notas">Star Wars</button>
  </body>

  <script type="text/javascript">
    var synth = new Tone.Synth().toMaster();

    document.querySelector("#notas").addEventListener("click", async () => {

var notas = [
        "F3", "C4",
        "Bb3", "A3", "G3", "F4", "C4",
        "Bb3", "A3", "G3", "F4", "C4",
        "Bb3", "A3", "Bb3", "G3", "C3", "C3", "C3",
        "F3", "C4",
        "Bb3", "A3", "G3", "F4", "C4",
        "Bb3", "A3", "Bb3", "G3", "C3", "C3",
        "D3", "D3", "Bb3", "A3", "G3", "F3",
        "F3", "G3", "A3", "G3", "D3", "E3", "C3", "C3",
        "D3", "D3", "Bb3", "A3", "G3", "F3",
        "C4", "G3", "G3", "C3", "C3",
        "D3", "D3", "Bb3", "A3", "G3", "F3",
        "F3", "G3", "A3", "G3", "D3", "E3", "C4", "C4",
        "F4", "F3",
        "C4", "C3", "C3", "C3",
        "F3", "C4",
        "Bb3", "A3", "G3", "F4", "C4",
        "Bb3", "A3", "G3", "F4", "C4",
        "Bb3", "A3", "Bb3", "G3", "C3", "C3", "C3",
        "F3", "C4",
        "Bb3", "A3", "G3", "F4", "C4",
        "Bb3", "A3", "G3", "F4", "C4",
        "Bb3", "A3", "Bb3", "G3", "C3", "C3", "C3",
        "F4", "F4", "F4", "F4", "F4"];
      var duraciones = [
        "2n", "2n",
        "8t", "8t", "8t", "2n", "4n",
        "8t", "8t", "8t", "2n", "4n",
        "8t", "8t", "8t", "2n", "8t", "8t", "8t",
        "2n", "2n",
        "8t", "8t", "8t", "2n", "4n",
        "8t", "8t", "8t", "2n", "8n", "8n",
        "3n", "8n", "8n", "8n", "8n", "8n",
        "8t", "8t", "8t", "8n", "8n", "4n", "8n", "8n",
        "3n", "8n", "8n", "8n", "8n", "8n",
        "8n", "8n", "2n", "8n", "8n",
        "3n", "8n", "8n", "8n", "8n", "8n",
        "8t", "8t", "8t", "8n", "8n", "4n", "8n", "8n",
        "2n", "2n",
        "1n", "8t", "8t", "8t",
        "2n", "2n",
        "8t", "8t", "8t", "2n", "4n",
        "8t", "8t", "8t", "2n", "4n",
        "8t", "8t", "8t", "2n", "8t", "8t", "8t",
        "2n", "2n",
        "8t", "8t", "8t", "2n", "4n",
        "8t", "8t", "8t", "2n", "4n",
        "8t", "8t", "8t", "2n", "8t", "8t", "8t",
        "4n", "8t", "8t", "8t", "4n"];

      var cancion = Rhythm.mergeDurationsAndPitch(duraciones, notas);

      var part = new Tone.Part(function(time, value){
        console.log(time + " " + value.note + " " + value.duration);
        synth.triggerAttackRelease(value.note, value.duration, time);
      }, cancion );
      
      part.start(0);
      Tone.Transport.start();
    });
  </script>
</html>
El resultado es el siguiente (pulsa el botón para probar):

Espero os haya gustado ;-)
Comparte:    Facebook Twitter
Leer más

4 de enero de 2020

Quitar el fondo verde (Chroma Key) a un vídeo en Ubuntu Linux con Kdenlive


Hoy quiero explicar para mi yo del futuro (y para quien lo necesite) como quitar el fondo verde (Chroma Key) a un vídeo en Ubuntu Linux con Kdenlive.

Lo primero que tenemos que hacer es grabar un video con fondo verde, también llamado croma. Yo, para el ejemplo he grabado este vídeo corto:


Si no tenemos instalado el editor de vídeo Kdenlive lo hacemos con el siguiente comando:

$ sudo apt install kdenlive
Una vez instalado, lo abrimos:

Entonces añadimos el vídeo que hemos grabado seleccionando el menú "Proyecto > Agregar clip". Luego lo añadimos a la línea de tiempo pinchando y arrastrando el vídeo:

Luego, en la línea de tiempo, pinchamos en el vídeo con el botón derecho y seleccionamos el menú: "Agregar efecto > Manipulación del canal alfa > Inserción croma":

Por defecto el color seleccionado es uno azul. Entonces tenemos que primero pinchar en la gota que hay al lado del color azul y luego pinchamos el color verde en la previsualización del vídeo:

Automáticamente, todo lo que está en ese tono se vuelve transparente. Podemos ajustar la varianza un poco. En mi caso la he bajado un poco hasta 120:

Ahora vamos a poner un vídeo de fondo. También podíamos haber puesto una imagen, pero en mi caso he puesto este pequeño vídeo de la subida en ascensor a la Torre Eiffel:


Como hemos hecho antes, añadimos el nuevo vídeo seleccionando el menú "Proyecto > Agregar clip". Y luego lo añadimos a la línea de tiempo pinchando y arrastrando el vídeo, pero en este caso lo ponemos en la línea de abajo:

Para terminar pinchamos en el botón "Procesar", seleccionamos las opciones de exportación que queramos (en mi caso MP4), le ponemos un nombre al archivo que vamos a exportar y le pinchamos en "Procesar a un archivo":

Después de procesar el archivo nos queda el vídeo montado:


Comparte:    Facebook Twitter
Leer más