rdesktop-fnmt: un contenedor para usar con los certificados digitales de la FNMT

Aviso Importante

El autor no se hacen responsables de ningún daño o perjuicio derivado de la información contenida en esta entrada ni del uso de rdesktop-fnmt o los contenedores generados por el mismo. Utilice bajo su propio riesgo y responsabilidad.

La Fábrica Nacional de Moneda y Timbre proporciona certificados digitales para su uso en las administraciones del estado español. Como es bien sabido, el soporte de GNU/Linux por las administraciones públicas es bastante deficiente e intentar gestionar o utilizar dicho certificado con las webs de estas administraciones suele ser un calvario, como yo he experimentado personalmente.

La última vez que intenté renovar mi certificado la experiencia fue tan frustrante que decidí crear un contenedor que pudiera utilizar de manera confiable cada vez que tuviera que realizar una gestión con la administración pública. Este pequeño esfuerzo se ha traducido en rdesktop-fnmt, un escritorio para acceder via RDP.

Para ir al grano y asumiendo que tienes ciertos conocimientos en un entorno GNU/Linux, estos son los comandos para utilizarlo:

$ mkdir -p $HOME/rdesktop-fnmt-home # Crea un directorio donde guardar tu "home"
$ podman run -d \
  --name=rdesktop-fnmt \
  -e PUID=1000 \
  -e PGID=1000 \
  -e TZ=Europe/Madrid \
  -p 3389:3389 \
  -v $HOME/rdesktop-fnmt-home:/config \
  --shm-size="1gb" \
  --restart unless-stopped \
  tanty/rdesktop-fnmt # Lanza el contenedor
$ rdesktop -g 90% localhost # Lanza el cliente RDP

El usuario y la contraseña por defecto son abc/abc.

Nótese que utilizo podman como motor de contenedores pero igualmente se puede usar docker.

Para parar y eliminar el contenedor:

$ podman stop rdesktop-fnmt
$ podman rm rdesktop-fnmt

La imagen está hospedada en Docker Hub y, si necesitas más información, puedes dirigirte al repositorio de rdesktop-fnmt.

Cómo ver A La Carta en tu Samsung SmartTV si vives en el extranjero

O, en otras palabras, cómo poder instalar las aplicaciones de España en una Samsung SmartTV si es que vives en otro país.

Tal y como mencionaba en una entrada anterior, soy el dueño de una Samsung 3D SmartTV que compré en Finlandia, el país dónde resido.

Este tipo de «Smart TV» disponen de una tienda de aplicaciones proporcionada por Samsung. Entre estas aplicaciones se encuentra una para el servicio A la carta de RTVE.es.

Entonces, ¿cuál es el problema?

Pues que Samsung, entiendo que en su celo por proteger derechos de autor por limitación geográfica, incluye sólo en una categoría local las aplicaciones disponibles para el mercado español. En otras palabras, sólo podrás instalar aplicaciones para España si tu televisor lo compraste en España. En mi caso, como vivo y compré mi televisor en Finlandia, no puedo instalarme la aplicación de RTVE.es … o eso se supone.

La verdad es que esta limitación es bastante estúpida.

  • Por un lado, servicios de streaming como «A la carta», u otras emisoras de televisión, ya tienen algún tipo de limitación geográfica mediante la identificación de IP. Es decir, si detectan que te estás conectando desde otro país que no es España, no te servirán el video que pides.
  • Por otro, es posible cambiar la configuración de tu SmartTV para que use la tienda de aplicaciones de España. La pega es que, si escoges un país distinto, entonces no podrás hacer uso de la tienda de aplicaciones del país donde resides. Es más, si tienes instaladas aplicaciones de otro país y cambias la tienda de tu SmartTV a España, ¡la TV desinstalará de forma automática las aplicaciones no disponibles para España!.
  • Finalmente, también es posible que los responsables de la aplicación de RTVE.es para la tienda de Samsung no hayan sido conscientes de que la aplicación no estaría disponible de forma internacional y todo se solucionaría de manera más sencilla, con una petición por parte de RTVE.es de que su aplicación no sólo esté disponible localmente.

Lo mires por donde lo mires, esta limitación no tiene ni pies ni cabeza y no está consiguiendo que le tenga mucho aprecio a los productos de Samsung.

Vamos a lo que interesa, ¿cómo narices hago que mi Samsung SmartTV use la tienda de aplicaciones de España?

Lo primero, la receta que sigue a continuación es para la serie de SmartTVs cuya numeración «empieza» por «F» o «H», para otras series de modelos puedes consultar aquí. La mía es una UE46F6400AW. Los 4 primeros caracteres indican Unión Europea (UE) y 46″ (el tamaño de la pantalla). El resto es el modelo concreto: F6400AW.

Los pasos son:

  1. Si no estás ya viendo la señal de TV, escoge ésta como fuente.
  2. Pulsa «Menu» en el mando a distancia.
  3. Navega en el menú hasta «System».
  4. En el submenú de «System», escoge «Setup».
  5. Continúa a través de las pantallas de configuración hasta parar en la que se solicita confirmación para los términos y condiciones (Smart Hub Terms & Conditions, Privacy Policy).
  6. En esta pantalla, pulsa la siguiente combinación de teclas del mando a distancia:

    Samsung SmartTV: F series, country selection keys combination

  7. Aparecerá un listado de países en el que podremos seleccionar España (o cualquier otro en el que estemos interesados).
  8. Continua y finaliza el proceso de configuración.

¡Hecho!

Ahora ya podrás navegar en el «Smart Hub» de tu televisón a la tienda de aplicaciones en la que podrás ver las aplicaciones de España, entre ellas, la de RTVE.es.

Pestañas laterales en Empathy

Vamos directamente a la parte interesante de esta entrada.

Si usas Ubuntu Saucy 13.10 y quieres tener pestañas laterales en Empathy, sólo tienes que ejecutar los comandos siguientes:


$ sudo add-apt-repository ppa:tanty/ppa

Si además de Ubuntu Saucy 13.10 también utilizas el PPA del GNOME3 Team, también tienes que ejecutar:


$ sudo add-apt-repository ppa:tanty/gnome3

Sin más, actualiza tus repositorios, actualiza Empathy y escoge la configuración adecuada:


$ sudo apt-get update && sudo apt-get install empathy
...
$ gsettings set org.gnome.Empathy.conversation tab-position 'left'

Lo siguiente es abrir una ventana de chat desde una nueva instancia de ejecución de Empathy. Esta es una captura de algo similar a lo que deberías de ver:

Side tabs in Empathy by ::Tanty::
Side tabs in Empathy, a screenshot by ::Tanty:: on Flickr.

Motivación

Desde hace mucho tiempo soy usuario de Jabber y Empathy. Los uso a diario en mis comunicaciones y en Igalia tenemos también salas internas que usamos para coordinarnos. Debido a la cantidad de salas en las que estoy habitualmente, la ventana de chat de Empathy no es capaz de mostrar todas las pestañas en la barra superior de las conversaciones.

Esto me obliga, o bien a abrir diferentes ventanas en las que repartir las pestañas, o bien a navegar entre las pestañas de la ventana en busca de alguna actualización interesante. Una tarea bastante molesta 🙂 .

Hace tiempo fue reportado el bug #586145 que pide tener la posibilidad de posicionar las pestañas no sólo en una barra superior sino, especialmente, también en los laterales.

Por esto, decidí retomar la propuesta de parche existente y hacer unos cuantos pequeños cambios sobre el trabajo previo de Neil Roberts completando la posibilidad de tener estas pestañas laterales.

Con esta característica nueva es posible cambiar la posición de las pestañas sólo con cambiar la configuración pertinente ya que ambas están conectadas. Para posicionar las pestañas ‘arriba’, a la ‘izquierda’, ‘abajo’ o a la ‘derecha’ respectivamente, sólo tenemos que ejecutar:


$ gsettings set org.gnome.Empathy.conversation tab-position 'top'
$ gsettings set org.gnome.Empathy.conversation tab-position 'left'
$ gsettings set org.gnome.Empathy.conversation tab-position 'bottom'
$ gsettings set org.gnome.Empathy.conversation tab-position 'right'

Tras los cambios, he actualizado el parche propuesto y ya sólo estoy esperando pasar la revisión e integrarlos en el código.

Esta característica es una pequeñísima mejora del gran trabajo realizado por varios desarrolladores de GNOME a lo largo de los años. Sin embargo, significa una importante diferencia en mi uso cotidiano y es por esto que he decidido compartirla lo más pronto posible por si hubiera más gente interesada ya que llevará un tiempo hasta que alcance a las principales distribuciones. Para ello, he migrado el parche a la versión de Empathy que estoy utilizando en mi Ubuntu Saucy 13.10.

Si quieres probarla, simplemente sigue las instrucciones que he escrito al principio de esta entrada.

Notas finales

Además de Empathy, también puedes encontrar en mis PPAs:

  • Una versión personalizada del paquete icecc oficial que no funciona. En ella he aplicado los parches que corrigen el bug LP#1182491.
  • Una versión personalizada de webkitgtk en la que he aplicado los parches que arreglan el bug WK#115650. Estos cambios aceleran sustancialmente la velocidad a la que se abren pestañas nuevas en Web.

Que disfrutes de Emapthy!

Actualización: Recientemente he añadido las versiones parcheadas de empathy también para Ubuntu Trusty 14.04.

Actualización 2: Recientemente he añadido las versiones parcheadas de empathy también para Ubuntu Utopic 14.10.

Cómo publicar rápidamente en tu PPA de Ubuntu

Esta entrada es, principalmente, unas cuantas notas personales con instrucciones para publicar rápidamente un paquete (habitualmente parcheado) en mis propios PPAs.

Parcheando un paquete existente

Lo primero es descargar las fuentes del paquete del repositorio que está proporcionando la versión que queremos parchear y cuyo binario tenemos instalado en el sistema.

Por ejemplo, para parchear webkitgtk, si el paquete que está instalado procede directamente de Ubuntu, sólo tendremos que comprobar que tenemos el repositorio de fuentes oficial de Ubuntu. Sin embargo, si el paquete procede de otro PPA, tendremos que comprobar que también tenemos el repositorio con las fuentes de ese mismo PPA. De no ser así, tendremos que descargar los ficheros necesarios de forma manual. Asumamos que el paquete que tenemos instalado procede del PPA del GNOME3 Team:

$ cd ~/ppa/ && mkdir -p webkitgtk/gnome3 && cd webkitgtk/gnome3
$ apt-get source webkitgtk
Reading package lists... Done
Building dependency tree
Reading state information... Done
NOTICE: 'webkitgtk' packaging is maintained in the 'Git' version control system at:
git://git.debian.org/git/pkg-webkit/webkit.git
Need to get 9,440 kB of source archives.
Get:1 http://ppa.launchpad.net/gnome3-team/gnome3/ubuntu/ saucy/main webkitgtk 2.3.2-1ubuntu6~saucy1 (tar) [9,353 kB]
Get:2 http://ppa.launchpad.net/gnome3-team/gnome3/ubuntu/ saucy/main webkitgtk 2.3.2-1ubuntu6~saucy1 (diff) [82.2 kB]
Get:3 http://ppa.launchpad.net/gnome3-team/gnome3/ubuntu/ saucy/main webkitgtk 2.3.2-1ubuntu6~saucy1 (dsc) [4,577 B]
Fetched 9,440 kB in 3s (2,769 kB/s)
gpgv: Signature made Sun 22 Dec 2013 01:34:25 AM EET using RSA key ID 153ACABA
gpgv: Can't check signature: public key not found
dpkg-source: warning: failed to verify signature on ./webkitgtk_2.3.2-1ubuntu6~saucy1.dsc
dpkg-source: info: extracting webkitgtk in webkitgtk-2.3.2
dpkg-source: info: unpacking webkitgtk_2.3.2.orig.tar.xz
dpkg-source: info: unpacking webkitgtk_2.3.2-1ubuntu6~saucy1.debian.tar.gz
dpkg-source: info: applying 02_notebook_scroll.patch
dpkg-source: info: applying aarch64.patch
dpkg-source: info: applying fix-ppc.diff
dpkg-source: info: applying fix-aarch64.patch
dpkg-source: info: applying remove-use-lockfree-threadsaferefcounted.patch
dpkg-source: info: applying no-jit-build-failure.patch
dpkg-source: info: applying 0001-GTK-Fails-to-build-with-freetype-2.5.1.patch
dpkg-source: info: applying disable-jit-harder.patch
dpkg-source: info: applying fix-llint-c-loop.patch
dpkg-source: info: applying fix-armv7.patch
dpkg-source: info: applying bugzilla_clear_surface.patch
dpkg-source: info: applying ppc64el.patch
$ cd webkitgtk-2.3.2

Por si acaso, algo que me gusta hacer es añadir el código descargado a un sistema de control de versiones local con git:

$ git init
$ git add *
$ git commit -m "Initial commit"
...

Ahora es el momento de realizar los cambios al código fuente. Esta es mi principal razón por la que git puede resultarnos útil si es que los cambios no son triviales y necesitamos realizar algo de trabajo para tener una versión funcional. Una vez que hemos finalizado los cambios debemos añadirlos al paquete debian como un parche adicional al código fuente original. Esto lo haremos con dpkg-source:

$ dpkg-source --commit
dpkg-source: info: local changes detected, the modified files are:
 webkitgtk-2.3.2/Source/WebKit2/GNUmakefile.am
 webkitgtk-2.3.2/Source/WebKit2/GNUmakefile.list.am
 webkitgtk-2.3.2/Source/WebKit2/Shared/Plugins/Netscape/NetscapePluginModule.h
 webkitgtk-2.3.2/Source/WebKit2/Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp
 webkitgtk-2.3.2/Source/WebKit2/UIProcess/Plugins/gtk/PluginInfoCache.cpp
 webkitgtk-2.3.2/Source/WebKit2/UIProcess/Plugins/gtk/PluginInfoCache.h
 webkitgtk-2.3.2/Source/WebKit2/UIProcess/Plugins/unix/PluginInfoStoreUnix.cpp
Enter the desired patch name: 0001-GTK-WK2-Blocks-when-fetching-plugins-information.patch
...

Escribimos el nombre del parche y la descripción de los cambios realizados:

$ cat debian/patches/0001-GTK-WK2-Blocks-when-fetching-plugins-information.patch
Description: [GTK][WK2] Blocks when fetching plugins information
 https://bugs.webkit.org/show_bug.cgi?id=115650
 .
 Patch by Carlos Garcia Campos.
 Reviewed by Gustavo Noronha Silva.
 .
 Use a persistent cache to store the plugins metadata to avoid
 having to load all the plugins everytime a plugin is used for the
 first time.
 .
 * GNUmakefile.am:
 * GNUmakefile.list.am:
 * Shared/Plugins/Netscape/NetscapePluginModule.h:
 * Shared/Plugins/Netscape/x11/NetscapePluginModuleX11.cpp:
 (WebKit::NetscapePluginModule::parseMIMEDescription): Make this
 method public.
 (WebKit::NetscapePluginModule::buildMIMEDescription): Added this
 helper to build the MIME description string.
 * UIProcess/Plugins/gtk/PluginInfoCache.cpp: Added.
 (WebKit::PluginInfoCache::shared):
 (WebKit::PluginInfoCache::PluginInfoCache):
 (WebKit::PluginInfoCache::~PluginInfoCache):
 (WebKit::PluginInfoCache::saveToFileIdleCallback):
 (WebKit::PluginInfoCache::saveToFile):
 (WebKit::PluginInfoCache::getPluginInfo):
 (WebKit::PluginInfoCache::updatePluginInfo):
 * UIProcess/Plugins/gtk/PluginInfoCache.h: Added.
 * UIProcess/Plugins/unix/PluginInfoStoreUnix.cpp:
 (WebKit::PluginInfoStore::getPluginInfo): Check first if we have
 metadata of the plugin in the cache and update the cache if we
 loaded the plugin to get its metadata.
...

Finalmente, modificaremos la información de publicación añadiendo o incrementando el digito «non-maintainer». Por ejemplo, para este caso la versión del código descargado es 2.3.2-1ubuntu6~saucy1 por lo que modificaremos la versión a 2.3.2-1ubuntu6~saucy1.1. Debemos también acordarnos de proporcionar el nombre adecuado de distribución o bien modificarlo al adecuado cuando estemos introduciendo el resumen de los cambios realizados. En este caso la distribución sería saucy. Comprueba también que estás utilizando la dirección de correo electrónico adecuada en el resumen de los cambios. En el caso de mis PPAs, uso mi cuenta personal:

$ DEBEMAIL="mi@cuenta-de.correo" dch -n -D saucy
$ cat debian/changelog
webkitgtk (2.3.2-1ubuntu6~saucy1.1) saucy; urgency=low

  * Fixes #115650:
    - debian/patches/0001-GTK-WK2-Blocks-when-fetching-plugins-information.patch

 -- Andres Gomez   Wed, 19 Mar 2014 14:26:19 +0200
...

Con esto habremos terminado de modificar el código fuente del paquete.

Alternativa mediante la importación de un parche

Quizá esta es la forma más limpia y rápida de parchear el código fuente del paquete descargado. En vez de modificar el código y ejecutar dpkg-source –commit, símplemente podemos importar un parch ya existente que se pueda aplicar sin problemas sobre el código fuente.

Para ello ejecutaremos:

$ quilt import //mi_parche.patch

Este método es también válido para versiones de paquetes Debian en los que no funciona el comando dpkg-source –commit. Además, es la forma más rápida de reutilizar un parche para un paquete de una versión previa de Ubuntu en una nueva versión, por ejemplo.

A partir de este punto retomaremos los mismos pasos que se describieron anteriormente para añadir la información de publicación.

Construyendo el paquete con el código fuente

Sólo tenemos que tener en cuenta que, si tenemos más de una clave GPG, el firmado del paquete fallará, tal y como muestra la siguiente línea:

$ debuild -S -rfakeroot
...
Finished running lintian.
Now signing changes and any dsc files...
 signfile webkitgtk_2.3.2-1ubuntu6~saucy1.1.dsc Andres Gomez 
gpg: skipped "Andres Gomez ": secret key not available
gpg: /tmp/debsign.vhpVY32w/webkitgtk_2.3.2-1ubuntu6~saucy1.1.dsc: clearsign failed: secret key not available
debsign: gpg error occurred!  Aborting....
debuild: fatal error at line 1280:
running debsign failed

Debido a esto, tenemos que especificar el id de la clave a usar mediante el parámetro -k.

Además, si el código fuente del paquete no procede de uno de los repositorios oficiales de Ubuntu, tendremos que proporcionar el código fuente original para que también sea transferido al PPA. Esto lo haremos pasando el parámetro -sa. En nuestro ejemplo, como el código fuente proced del PPA del GNOME3 Team, el comando sería algo como:

$ debuild -S -sa -rfakeroot -k3FEA1034

Mientras que para otros paquetes que hayamos modificado a partir de fuentes que procedan directamente de uno de los repositorios oficiales de Ubuntu, usaremos:

$ debuild -S -rfakeroot -k3FEA1034

Construcción local opcional

Construir el paquete localmente no es un paso realmente necesario pero nos dirá si los cambios realizados están «rompiendo» la compilación.

La mejor manera de hacer esto de una manera confiable es mediante pbuilder.

Cuando usemos pbuilder nos tendremos que asegurar de que estamos usando los paquetes adecuados, no sólo los que proceden de los repositorios oficiales de Ubuntu, si no también que estamos usando los que proporcionan los PPAs de los cuales depende nuestro PPA y también los proporcionados por nuestro propio PPA.

Yo ya me he creado los ficheros comprimidos con los «chroot» necesarios con las distribuciones adecuadas para mis PPAs. Sin embargo, con el ánimo de mostrar un ejemplo, usaríamos un comando parecido al que sigue para crear este fichero comprimido si mi PPA objetivo fuese gnome3, que depende de mi otro PPA ppa y también del PPA gnome3 del GNOME3 Team:

$ sudo pbuilder --create --distribution saucy --mirror "http://fi.archive.ubuntu.com/ubuntu/" --othermirror "deb http://fi.archive.ubuntu.com/ubuntu/ saucy restricted universe multiverse|deb http://fi.archive.ubuntu.com/ubuntu/ saucy-updates main restricted universe multiverse|deb http://fi.archive.ubuntu.com/ubuntu/ saucy-proposed main restricted universe multiverse|deb http://fi.archive.ubuntu.com/ubuntu/ saucy-security main restricted universe multiverse|deb http://archive.canonical.com/ubuntu saucy partner|deb http://ppa.launchpad.net/gnome3-team/gnome3/ubuntu trusty main|deb http://ppa.launchpad.net/tanty/ppa/ubuntu saucy main|deb http://ppa.launchpad.net/tanty/gnome3/ubuntu saucy main" --basetgz //saucy-gnome3.tgz --buildplace //build --aptcache  //aptcache/

Utilizo <ruta_base_de_pbuilder> porque, por defecto, todo el proceso de la creación del fichero comprimido se realiza en /var y no siempre tengo el espacio necesario allí.

Una vez que el fichero comprimido ha sido creado y siguiendo nuestro ejemplo, construiríamos el paquete para el PPA objetivo gnome3 tal y como sigue:

$ sudo pbuilder --build --mirror "http://fi.archive.ubuntu.com/ubuntu/" --othermirror "deb http://fi.archive.ubuntu.com/ubuntu/ saucy main restricted universe multiverse|deb http://fi.archive.ubuntu.com/ubuntu/ saucy-updates main restricted universe multiverse|deb http://fi.archive.ubuntu.com/ubuntu/ saucy-proposed main restricted universe multiverse|deb http://fi.archive.ubuntu.com/ubuntu/ saucy-security main restricted universe multiverse|deb http://archive.canonical.com/ubuntu saucy partner|deb http://ppa.launchpad.net/gnome3-team/gnome3/ubuntu trusty main|deb http://ppa.launchpad.net/tanty/ppa/ubuntu saucy main|deb http://ppa.launchpad.net/tanty/gnome3/ubuntu saucy main" --basetgz //saucy-gnome3.tgz --buildplace //build --aptcache  //aptcache/ ../webkitgtk_2.3.2-1ubuntu6~saucy1.1.dsc

Ya sólo resta esperar y comprobar los resultados.

Publicando en el PPA

El último paso es transferir el paquete con los cambios a nuestro PPA.

En mi caso, tengo un PPA para pruebas por cada PPA estable. Estos PPAs no están pensados para su utilización por el usuario de Ubuntu general sino, simplemente, para poder jugar con los cambios que realizo hasta que siento que son lo suficientemente estables como para ser publicados en mis PPAs estables. Por esto, los 4 PPAs que manejo son:

  • ppa: Donde publico los paquetes procedentes de repositorios oficiales de Ubuntu con cambios que me son útiles.
  • ppa-next: No dirigido al público general. Aquí tengo los paquetes inestables hasta que son suficientemente estables como para ser publicados en el PPA ppa.
  • gnome3: Donde publico los paquetes procedentes del PPA del GNOME3 Team con cambios que me son útiles.
  • gnome3-next: No dirigido al público general. Aquí tengo los paquetes inestables hasta que son suficientemente estables como para ser publicados en el PPA gnome3.

Durante el primer ciclo de desarrollo publico los cambios en mis PPAs inestables antes de publicarlos en los estables. Siguiendo nuestro ejemplo, el PPA en el que publicaría por primera vez sería gnome3-next:

$ dput ppa:tanty/gnome3-next ../webkitgtk_2.3.2-1ubuntu6~saucy1.1_source.changes

Cuando ya estoy lo suficientemente convencido de mis cambios, lo siguiente sería publicar en el PPA estable:

$ dput -f ppa:tanty/gnome3 ../webkitgtk_2.3.2-1ubuntu6~saucy1.1_source.changes

El argumento -f lo utilizo para evitar el error que se produce cuando ya existe un fichero de «log» procedente de una publicación anterior de un fichero «.changes» mediante dput.

Tras esto, sólo tenemos que esperar a que el paquete sea contruído en los bots del PPA, actualizar nuestros repositorios y actualizar el sistema:

$ sudo apt-get update && sudo apt-get upgrade

Disfruta tu nuevo paquete!

Cómo convertir un video

Versión ultra rápida: descarga Miro Video Converter y sigue los pasos de este video tutorial.

Motivación

Cómo todo informático que se precie, aunque mi plataforma de trabajo personal y profesional es un escritorio GNOME en una distribución de GNU/Linux, de manera recurrente mis amigos y familiares me hacen el mismo tipo de preguntas: «¿cómo hago x en Windows?».

No importa que repita sin parar que no tengo ni idea de Windows desde la última vez que lo usé de forma habitual, allá por Windows 2000, la respuesta es siempre la misma: «Ya, pero seguro que sabes… ¿Qué clase de informático eres, si no?».

El caso es que mi conocimiento de Windows se limita a lo que cualquiera puede obtener haciendo búsquedas en Internet. Es decir, yo no sé de Windows. Sé cómo funciona un sistema operativo en general y, sobre todo, sé inglés y sé cómo buscar información. De cualquier manera, mientras GNOME no acabe llegando masivamente al usuario final de ordenadores, supongo que tendré que seguir enfrentándome a seguir dando soporte de Windows, aunque cada vez menos …

Pero vamos a la parte sustancial de esta entrada. Una de esas preguntas recurrentes es: «¿cómo convierto este video?». En realidad, esta pregunta esconde información que está implícita y que es: ¿cómo convierto este video, gratis, en Windows?.

Aún así, voy a contestar a esta pregunta también para el caso de GNU/Linux.

Windows y Mac

  • Un conversor GPL muy sencillo y es Miro Video Converter. Aquí dejo un video tutorial.
  • También GPL y algo más complejo y con más opciones es Avidemux.
  • GPL, parecido a Avidemux por tener más opciones, y usando el potente conversor proporcionado por MEncoder, es TEncoder.
  • Finalmente, en esta pequeña lista, añado otro programa llamado Ligtworks que, sin ser libre como los dos anteriores, sí que (por ahora) es de uso gratuíto. Es un programa orientado al uso profesional, así que su complejidad es mucho mayor y sólo lo recomendaría para quien de verdad quiera hacer edición de videos.

Por supuesto, hay multitud de otros programas que podrían usarse para convertir videos, algunos tan conocidos como Virtualdub o SUPER, pero no quiero añadir más para no marear con opciones. Quién de verdad esté interesado sabrá cómo encontrar más alternativas.

GNOME en GNU/Linux

Las posibilidades en GNU/Linux son realmente numerosas. Encontramos entre ellas de nuevo tanto Avidemux como Lightworks o múltiples opciones para usar con MEncoder, pero también alguna más que pueden ser útiles.

  • Arista es un programa muy similar en su concepción a Miro Video Converter. Aquí tenéis un video tutorial.
  • Otra opción sería Transmageddon, aunque los mismos autores recomiendan usar Arista si no eres un usuario con algo más de conocimientos.
  • Los creadores de Miro Video Converter también proporcionan el reproductor Miro para GNU/Linux que permite convertir videos de una manera muy similar al primer programa. Este reproductor también está disponible para Windows y Mac.
  • Como opción más compleja en esta lista añado Kdenlive, que estaría también orientado a usuarios que no sólo quieren convertir un video si no realizar modificaciones.

Como digo, las opciones en GNU/Linux son bastante más numerosas, incluyendo programas muchos más completos y complejos como Cinelerra, PiTiVi, OpenShot, LiVES, Flowblade o Shotcut.

¿Tendra alumnos la FIC para el curso 2012/2013?

Cualquiera podría pensar que no o, al menos, que no es lo que está buscando la mismisima plantilla educativa que trabaja en la facultad.

Y es que es difícil no pensar en esta posibilidad a la vista de esta oferta de contratación, Ref. 2012/CP/062, dónde el requisito formativo, nuevamente, no llega más allá de estar en posesión del título de bachillerato, aparte de la posible experiencia profesional.

¡Total, ¿para qué vas a querer estudiar una carrera en la FIC cuando la propia facultad no exige la titulación que imparte para realizar contrataciones?!

Dejo aquí el PDF de la oferta, por si acaso desapareciera en un tiempo.

Esta es una convocatoria que en realidad ya es vieja. El contrato era de 3 meses y la fecha estimada de inicio era mediados de junio de 2012, así que a estas alturas es posible hasta que el contrato ya se haya extinguido.

Uno no dispone de mucho tiempo para sentarse y escribir con todo el cuidado necesario este tipo de entradas. Aún así, no quería dejar de comentar esta oferta de contratación. Como ya decía anteriormente en No estudies Ing. Informática, no le interesa ni a tu facultad, aquel caso era sólo «un ejemplo más de una práctica bien generalizada» y a eso mismo suena también esta oferta de contratación.

Esta vez, además de la titulación de bachillerato se requiere «Traballo previo en investigación para tarefas de I+D, al menos 6 meses en puesto similar. Experiencia de 2 años entorno .NET C#, Hibernate, Spring, Javascript, Servicios Web WCF, SOAP.». Vamos, que si el CV no es técnicamente tan explícito como en la anterior, tampoco es que se queden muy cortos en cuanto a detallar lo que necesitan. Sobre todo por el hecho de pedir haber trabajado 6 meses en un puesto similar. Como es I+D, ya sabemos cuantas posibilidades hay de que haya alguien investigando algo similar en otro sitio: prácticamente ninguna.

«¡Oye, que si no has trabajado con nosotros ya 6 meses antes, te puedes volver por donde has venido!».

En todo caso, si se necesita un perfil tan especializado, lo mínimo sería pedir la titulación de Ing. Informática, ¿no?. Y con más razón cuando es un puesto para un laboratorio de la Universidad que imparte dichas titulaciones … Vamos, que estamos asistiendo de nuevo a un caso de enchufe. Esa práctica que ya incluso se está haciendo tristemente famosa como «typical Spanish» y lacra de nuestro propio desarrollo con artículos hasta en The Guardian.

Lo que no entiendo de estas convocatorias es por qué no ponen ya el nombre y apellido en los requisitos. Así nos enteraríamos mucho antes de quién es el agraciado.

El puesto es para participar en el proyecto «Axudas para a consolidación e estruturación de unidades de investigación competitivas do sistema universitario de Galicia».

El nombre es de un abstracto que da la risa pero, resumiendo, es un puesto de trabajo financiado con fondos públicos, por si no quedaba todavía totalmente claro al ser una convocatoria de la UDC (Universidade da Coruña).

La persona admitida para estas ayudas, que es el investigador principal del proyecto y quien firma la convocatoria de contratación es Alejandro Pazos Sierra. Como vemos en su linkedin (aquí una captura), es profesor en la UDC y participa en el equipo de investigación SABIA (Sistemas Adaptativos y Bioinspirados en Inteligencia Artificial), que está integrado en el grupo de excelencia RNASA (Redes de Neuronas Artificiales y Sistemas Adaptativos), a quien pertenece el laboratorio para donde se ofertaba este contrato.

Como decía, en realidad no sé a quién estaba dirigida esta oferta de contratación. Ya dije en su momento que yo no estoy buscando perjudicar particularmente a los implicados en este tipo de convocatorias. Más al contrario, para mi está claro que son cosas como estas las que están perjudicando al común de los ingenieros al no hacer las cosas de una forma justa.

Es simplemente triste ver como las cosas en España y la Universidad no cambian y los ecos de estos comportamientos ya llegan hasta a medios internacionales.

¿Seguirá la FIC desprestigiando a su propia titulación con convocatorias como esta? Lo veremos en el futuro …

La ley de transparencia según la embajada española en Finlandia

Hace unos minutos me han reenviado un correo electronico original de la embajada de España en Finlandia. En él se informa a los inscritos como residentes permanentes en Finlandia en dicha embajada de la posibilidad de colaborar aportando sugerencias al actual Anteproyecto de ley de «Transparencia, Acceso a la Información Pública y Buen Gobierno». Muy de agradecer que tengan, por una vez, en cuenta las opiniones de la ciudadanía 🙂

El problema es que han debido de pensar que la transparencia y acceso a la información debía de empezar con los propios ciudadanos y, así, han añadido en el campo «Para» del correo todas las direcciones de los ciudadanos inscritos en la embajada. La parte buena es que ahora ya puedo saber, directamente, quienes son los españoles residentes en Finlandia.

Por el bien de la embajada, esperemos que la Agencia de Protección de Datos no ande cerca …

PD: Si os fijáis, entre todas las direcciones en rojo aparecen algunas excepciones en negro. Estas son direcciones que mi programa de correo ni siquiera acepta como direcciones válidas. Ay, ay, ay …

PPD: Por si les sirve de algo a los trabajadores de la embajada, aquí les dejo un enlace a una entrada anterior mía sobre netiquette.

Actualización: Hoy me han reenviado otro correo procedente de la embajada en el que piden disculpas por el incidente. La copia, al final de esta entrada.

Emb Finlandia 1 - 6
Emb Finlandia 2 - 6
Emb Finlandia 3 - 6
Emb Finlandia 4 - 6
Emb Finlandia 5 - 6
Emb Finlandia 6 - 6

Disculpas Emb Finlandia

2 puntos para ilustrar a Esperanza Aguirre sobre la educación en inglés

La presidenta de la comunidad de Madrid dice que le ponen «trabas sindicales» que  le obligan «a tener un profesor español que quizá no sabe inglés» y que le «impiden contratar profesores nativos irlandeses o ingleses. ¿No dicen que estamos en la Unión Europea?»:

  1. Que una persona sea nativa no la cualifica para dar clase de su idioma. Es fácil de entender. Que yo sea nativo en español no me hace un buen profesor de español para extranjeros o de lenguaje en un colegio o instituto español.
  2. Que en la UE haya libre tráfico de trabajadores no hace que los trabajadores de UK o Irlanda no tengan que someterse a los mismos procesos de selección que cualquier otro trabajador español. Las oposiciones son el proceso de entrada que intenta garantizar la igualdad de oportunidades para un puesto de trabajo pagado con dinero de los impuestos de todos los contribuyentes en España. Incluidos aquellos que se presentan a estas mismas oposiciones. En otras palabras, nadie limita a los trabajadores de UK o Irlanda a trabajar como profesores o auxiliares de conversación en España. Simplemente deben homologar su titulación/cualificación y presentarse a las oposiciones.

No entiendo como esto se le puede haber pasado a alguien como la presidenta de la comunidad de Madrid, habiendo sido ministra de educación (??)

 

No estudies Ing. Informática, no le interesa ni a tu facultad

O eso es lo que se puede extraer de esta oferta de contratación, Ref.2011/CP/249, dónde el requisito, más allá de la experiencia profesional, es simplemente tener el título de bachillerato.

Sí, queridos amigos, parece de risa, pero no lo es. Más bien dan ganas de llorar.

Dejo aquí el PDF de la oferta, por si acaso desapareciera en un tiempo.

¿Cómo puede algo tan estrambótico estar ocurriendo? La razón de fondo es que la Ing. Informática no tiene atribuciones profesionales, a diferencia de la gran mayoría de ingenierías. Lo que significa que para hacer labores de Ing. Informática no hay, realmente, ninguna limitación legal en cuanto a la formación demandada. Normalmente, las administraciones públicas se limitan a requerir una titulación superior o bachillerato, con algunos años de experiencia.

Aunque no es obvio, desde mi punto de vista, que las atribuciones profesionales sean la solución, es algo por lo que los Colegios Profesionales de Ingeniería en Informática, como el de Galicia, llevan tiempo luchando. De hecho, en 2008 nos manifestábamos, yo incluído, pidiendo esta regulación. Es por esto que llama aún más la atención que un grupo de investigación de la FIC (Facultade de Informática da Coruña) presente esta convocatoria de empleo sin siquiera pedir ninguna de las titulaciones que esta facultad imparte.

En todo caso, y a pesar del título de esta entrada, las atribuciones no es el tema de la misma, así que volvamos a analizar más detenidamente la oferta en cuestión y entendamos la razón principal de que no se solicite un Ing. en Informática para esta oferta de empleo.

El puesto es para participar en el proyecto europeo OptiBand en el que participa la FIC a través del MADS Group. Es decir, es un puesto de trabajo financiado con fondos públicos, por si no quedaba todavía totalmente claro al ser una convocatoria de la UDC (Universidade da Coruña).

Además, en los requisitos, junto a la titulación de bachillerato se requiere, como experiencia previa «Coñecementos de redes IP, sistemas funcionales distribuidos, verificación formal en entornos funcionais distribuidos, coñecemento de sistemas de distribución de video dixital, dominio de linguaxe de programación ERLANG/JAVA. Experiencia demostrable máis de 6 anos no sector público e privado.». Esto ya se parece más a un CV concreto. Vamos, que si nos ponemos a afinar, se podría añadir también «que toque el trombón», no vayamos a pillarnos los dedos y que haya dos posibles candidatos …

En todo caso, con semejante experiencia profesional, sigue llamando la atención que sólo se pida bachillerato, ¿no? Vamos a resolver el entuerto.

La persona que firma la convocatoria de contratación es Víctor M. Gulías Fernández. Por su linkedin podemos saber que es Profesor en la UDC y fundador y ex-propietario de la compañía LambdaStream.

¡A la rica captura, para que quede bien congelada en el tiempo!

Mientras, podemos ver, como ex-miembro del anterior MADS Grupo a Miguel Barreiro Paz. Por su linkedin también podemos saber que actualmente no tiene ocupación y que ocupó el cargo de CTO también en la compañía LambdaStream, de la que era propietario Víctor Gulías. Además, no se lee que tenga ninguna titulación de grado superior o, lo que es lo mismo, su formación completada no pasa del nivel de bachillerato.

¡Que me las quitan de las manos, oiga!

Para finalizar, vemos que el órgano de selección de la convocatoria es «O investigador principal do proxecto», es decir, Víctor M. Gulías Fernández.

Yo, en estos momentos, podría apostar con bastante confianza a que sé quién se va a llevar el puesto de trabajo ofertado. La fecha de presentación de solicitudes termina el 12 de noviembre de 2011 así que ya actualizaré con los resultados, si es que se hacen públicos, y me disculparé si es que estoy equivocado 🙂 .

Estoy bastante seguro de que muchos amigos y conocidos se estarán echando las manos a la cabeza al leer esto. No por el enchufe que, más que insinuarse, pega calambrazos. No por esa endogamia bien conocida en la Universidad Española que imposibilita tener una convocatoria verdaderamente limpia a la que pueda acudir cualquier Ingeniero en informática. No, claro que no. Ahora mismo se están echando las manos a la cabeza por lo que supone, en una ciudad pequeña, como A Coruña, y en un país como España, decir en voz alta lo que todo el mundo calla. Y no les falta razón. Bastante tiempo he necesitado para, finalmente, decidirme por publicar esta entrada.

Me voy a ir adelantando a las conclusiones. No, yo no conozco personalmente ni al profesor Víctor Gulías ni a Miguel Barreiro. Yo soy de León y estudié en la Universidad de la misma ciudad. No tengo nada personal contra ellos, les deseo lo mejor. Tampoco tengo ningún interés profesional contra ellos. Por supuesto, como decía, en el mundillo TIC y en una región tan pequeña como Galicia todos nos conocemos, aunque sólo sea de oídas, pero esa es toda nuestra relación.

De hecho, mi intención en esta entrada ni siquiera es, explícitamente, poner el dedo en el ojo de estas dos personas. Este sólo es uno más de los muchos casos manifiestos de endogamia que se dan en los grupos de investigación de la FIC, pero no sólo en la FIC, si no en toda la UDC, pero no sólo en la UDC, sino en todas las Universidades españolas. Profesores y grupos de investigación que hacen del puesto y responsabilidad que la sociedad les ha dado para formar en estudios superiores a las futuras generaciones de jovenes, e impulsar la investigación y el desarrollo, sus reinos de taifas. Y, en ellos, los reyezuelos imponen su ley y, en muchos casos, se dedican a buscar el lucro personal y la acumulación de poder e influencia mediante prácticas de ética dudosa, aunque legales.

Por supuesto, no todo es responsabilidad del personal universitario. Esto es posible porque la regulación actual permite que el director de un grupo de investigación pueda decidir unilateralmente a qué se dedica el dinero. Qué se compra y a quién se contrata. Pero, además, también es posible porque los servicios de contratación y de intervención de las distintas universidades dan su visto bueno. Finalmente, y para remachar lo absurdo de la situación, el actual modelo de financiación para la investigación y desarrollo está tan mal diseñado que hace que se gaste gran parte de los fondos en proyectos que, aunque obtienen resultados prometedores, nunca se convierten en productos de mercado o de uso final. Y todos «contentos»: la administración justifica el gasto en i+d y los investigadores justifican la inversión hecha con publicaciones. Y cuantas más publicaciones, mejor, que hay que justificar de alguna manera que nos vuelvan a financiar el grupo de investigación en la siguiente convocatoria.

Como decía, no es que este caso sea un escándalo en sí. Este es un ejemplo más de una práctica bien generalizada, pero algún ejemplo tenía que utilizar. Resultó que, siendo informático, ver esta oferta, con sólo el requisito de bachillerato, fue como tener que aguantar que se me rieran a la cara. Así que, cansado de escuchar como se habla de los escándalos que ocurren en cosas tan «distantes» como que la consejera de educación de la Comunidad de Madrid burle a la bolsa pública de empleo, pero se guarda silencio en las cosas más cercanas, no me quedó más remedio que afrontar la hoja en blanco y escribir lo que casi todo el mundo sabe y piensa. Al final, cuando los escándalos ocurren en la puerta de al lado, cuando es alguien «cercano» que puede intentar represalias para perjudicarte, la mayoría callamos. El caso es que no es mi culpa. No soy yo quién ha redactado esta convocatoria surrealista ni soy yo quien quiere perjudicar particularmente a los implicados. Son ellos los que están perjudicando al común de los ingenieros al no hacer las cosas de una forma justa y realmente transparente.

Y eso que estoy bastante seguro de que Miguel Barreiro está de sobra capacitado y, por su experiencia, parte con ventaja para cubrir un puesto como ese, pero que la UDC pueda contratar en la Facultad de Informática a una persona que únicamente tiene el título de bachillerato para un puesto de investigación clama al cielo.

Lo siento, pero para algo los demás sí nos sacamos el título.

Retomando las antiguas barras de desplazamiento en Ubuntu

Hoy no me pude aguantar más y tuve que hacerlo …

Como propietario de un Thinkpad Lenovo X61s en el que no uso, ni hecho de menos un ratón, gracias al fantástico TrackPoint que incorpora, las nuevas barras de desplazamiento de Ubuntu son, simplemente, inusables.

Así que, yendo rápidamente al «turrón«, para deshabilitarlas sólo hay que abrir una consola y escribir 🙂 :

$ sudo echo "export LIBOVERLAY_SCROLLBAR=0" > /etc/X11/Xsession.d/80overlayscrollbars

y reiniciar.

No digo que las nuevas barras no sean una mejora. Permiten una utilización mejor del espacio en pantalla pero, desde el punto de vista funcional, sólo valen como indicadores de tu posición. El progreso en el desplazamiento de la ventana. Forzosamente necesitas una rueda en tu ratón o una manera de emular este comportamiento. Si tienes que desplazar la barra manualmente, desde el punto de vista funcional, son un fracaso.

Francamente, en Ubuntu se echa de menos una manera de seleccionar des/habilitar su utilización sin tener que acudir a este tipo de «hacks«.

Por supuesto, otra alternativa habría sido «emular» la rueda del ratón mediante el uso del botón central, pero la última vez que lo usé decidí que prefería tener una mejor experiencia de «seleccionar y pegar» con este botón, antes que usarlo como modificador para el desplazamiento vertical/horizontal.

En todo caso, si lo que se quiere es usar este botón de esa manera, antes había que añadir una seríe de modificaciones al archivo de configuración del servidor «XOrg«. Ahora, sólo tenemos que instalar el paquete «gpointing-device-settings«:

$ sudo aptitude install gpointing-device-settings

y seleccionar las debidas opciones tras lanzarlo desde «Sistema -> Preferencias -> Pointing devices«.

Esta y muchas otras recetas se pueden encontrar en ThinkWiki.

Quién sabe, quizá, en un tiempo, cambie de opinión y retome esta funcionalidad (y las nuevas barras de desplazamiento de Ubuntu) …