Sep 1 2014

Alternativas a GifCam en Linux

Gabolonte Blasfemus

A pesar de que como todo internauta (término que denota mi avanzada edad), geek (puaj! todavía alguien usa eso?) o millennial (nuevo término de moda para que las masas puedan etiquetar algo sin molestarse en comprenderlo) disfruto ampliamente del incesante flujo de gif animados presente en los últimos años. No soy generalmente de crear propios, salvo de vez en cuando para situaciones específicas. Por eso es que hace tiempo dejé enterradas en el olvido suites para trabajar con dicho formato de imagen, hasta que hace un tiempo me enteré de la existencia de GifCam, y me resultó tan divertido y potencialmente adictivo que lo que realmente me faltaba ahora eran buenas ideas para empezar a crear animaciones divertidas.

gifcam

Pero más allá de eso, y en mi eterna dualidad Windows/Linux donde uso uno u otro de acuerdo a cómo se me acomodan las bolillas en el marote, pretendo tener alternativas a todo lo que aprecie de uno en el otro, así que deseaba desde hace mucho un equivalente de GifCam que pudiera usar en mi actual distro, Linux Mint Qiana. Acá es donde podría leerse un lindo cartelito con el típico here be dragons, porque la realidad es que no existe nada ni remotamente parecido a esta joya de la simpleza hecha freeware portable. Lo más cercano es usar alguna herramienta para capturar en video el sector de la pantalla deseado, para luego usar otra que convierta el video grabado a gif, con resultados variables de acuerdo a lo que se utilice. Nada tan directo e intuitivo como GifCam.

Así andaba frustrado con ese tema, hasta que en uno de esos momentos alpedísticamente productivos (o no) volví a la carga sobre el mismo, topándome con este excelente post de Emezeta, en donde se toma el tiempo de mencionar desde los orígenes del formato hasta todas las herramientas disponibles que existen en cada plataforma para su creación y edición. Y una de las que menciona el groso de Manz es para Linux, y no había oído hablar de ella hasta ese momento: Byzanz.

byzanz

Captura animada de byzanz realizada gracias a sí mismo

Byzanz, con ese extraño nombre, es una aplicación muy potente y versátil que en un principio permite realizar en Linux la función más importante y buscada de GifCam: Grabar directamente desde un área del escritorio a un archivo gif. La diferencia con este, y el pequeño detalle/problema, es que como pasa con muchas herramientas poderosas en el mundo *nix, byzanz se utiliza enteramente desde la línea de comandos. Un ejemplo típico de utilización de byzanz sería el siguiente:

$ byzanz-record --duration=5 --x=550 --y=100 --width=350 --height=200 animacion.gif

Como ven, dentro de los argumentos hay que especificar parámetros como el tiempo de captura y el área a capturar, expresada por las coordenadas que ubican su comienzo y seguido de su ancho y alto en píxeles. No tiene nada de intuitivo, por cada captura tenemos que andar midiendo con una regla virtual la pantalla. Por más buena que sea la herramienta, muere por su complejidad de uso.

Pero la verdadera pena con byzanz es que es una aplicación excelente, y posiblemente la única opción en su clase para el escritorio Linux, por lo que algo tenía que poder hacerse para remediar este problemita de la facilidad de uso. Y algo hay.

TL;DR: A través de un script de bash podemos capturar áreas del escritorio a voluntad para grabarlas directamente a gif, usando byzanz y un par de herramientas más.

En una genial respuesta a una pregunta en Ask Ubuntu vamos a encontrar una serie de scripts que permiten usar byzanz de una forma fácil, sin tener que especificar coordenadas numéricas. Hay dos opciones, un script que permite capturar el área de la ventana en la que se clickea, y otro donde directamente es posible seleccionar con el mouse el espacio a ser grabado. También hay una segunda versión del primero, más interactiva y un poco más gráfica. Claramente la opción más interesante es la de poder simplemente seleccionar el área arrastrando el mouse, por lo que voy a enfocarme en esa función, con un script hecho por mí que básicamente es una simple adaptación de los últimos dos mencionados. Vamos paso a paso con todo lo que hace falta.

1. Lo primero y esencial es saber si podemos disponer sin mayores problemas de byzanz en nuestra distro favorita. Si estamos en un Ubuntu o Linux Mint recientes podemos instalarlo con un simple apt-get.

$ sudo apt-get install byzanz

Si byzanz no está disponible desde los repositorios de nuestra distro, bueno, ya arrancamos mal y la cosa se complica más. Ahí es momento de acciones extremas como bajarlo desde su repositorio GIT e intentar compilarlo satisfaciendo previamente todas sus dependencias, tema álgido en el que no pienso ahondar porque asumo que está fácilmente disponible en toda distro popular moderna, y principalmente porque me da una paja atómica y no tengo ganas de fijarme se haría todo mucho más complejo.

2. Ahora nos toca asegurarnos de que tenemos instaladas todas las dependencias que vamos a necesitar para que el script funcione. Para eso, en Debian, Ubuntu o derivados ingresamos:

$ sudo apt-get install automake libx11-dev gdialog notify-osd

3. Todos los paquetes anteriores tienen un sólo propósito: Son para compilar y poder usar el comando xrectsel, que es el que permite seleccionar un área del escritorio con el mouse y devolver esa información en coordenadas que luego le pasaremos a byzanz. Debemos descargar sus fuentes desde GitHub, descomprimirlos, y ejecutar en la carpeta que contiene los fuentes los siguientes comandos:

$ ./bootstrap
$ ./configure --prefix /usr
$ make
$ sudo make DESTDIR="$directory" install

Luego de esto ya deberíamos tener xrectsel andando, para probarlo sólo basta ejecutarlo desde la línea de comandos y nuestro cursor debería cambiar a una cruz con la que podremos seleccionar un área del escritorio, y dicha área la veremos traducida en coordenadas en la terminal.

4. Ahora viene el momento de armar el script. Simplemente creamos un archivo de texto vacío y copiamos y pegamos lo siguiente:

#!/bin/bash

# Time and date
TIME=$(date +"%Y-%m-%d_%H%M%S")

# Delay before starting
DELAY=10

# Standard screencast folder
FOLDER="$HOME/Imágenes"

# Default recording duration
DEFDUR=10

# Sound notification to let one know when recording is about to start (and ends)
beep() {
paplay /usr/share/sounds/freedesktop/stereo/message-new-instant.oga &
}

# Custom recording duration as set by user
USERDUR=$(gdialog --title "Duration?" --inputbox "Please enter the screencast duration in seconds" 200 100 2>&1)

# Duration and output file
if [ $USERDUR -gt 0 ]; then
D=$USERDUR
else
D=$DEFDUR
fi

# Dependency: xrectsel ( https://github.com/lolilolicon/xrectsel ) from FFcast2 ( https://github.com/lolilolicon/FFcast2 ). Clone the repository and run make to get the executable.
# xrectsel from https://github.com/lolilolicon/FFcast2/blob/master/xrectsel.c
ARGUMENTS=$(xrectsel "--x=%x --y=%y --width=%w --height=%h") || exit -1
# Notify the user of recording time and delay
notify-send "GIFRecorder" "Recording duration set to $D seconds. Recording will start in $DELAY seconds."

#Actual recording
sleep $DELAY
beep
byzanz-record -c --verbose --delay=0 --duration=$D ${ARGUMENTS} "$FOLDER/GIFrecord_$TIME.gif"
beep

# Notify the user of end of recording.
notify-send "GIFRecorder" "Screencast saved to $FOLDER/GIFrecord_$TIME.gif"

Es importante editar el valor de la variable FOLDER a fin de estar seguros que las capturas serán guardadas en la carpeta que queremos y que por sobretodo sea una ruta válida, caso contrario no se guardará nada. En mi caso simplemente puse la ruta de la carpeta de imágenes por defecto del usuario actual para una instalación en lenguaje español. El archivo lo guardamos con el nombre que se nos antoje y extensión .sh, y le damos permiso de ejecución.

Luego de esto sólo falta aplicarle permisos de ejecución al script y la podremos utilizar, armando nuestro propio lanzador para, por ejemplo, tenerlo a mano desde el dock de Unity o en el panel de escritorios como Gnome, Mate o Cinnamon. Al ser ejecutado, el script pregunta por la duración que debe tener la captura, y luego arranca la misma tras una demora (ajustable editando el script) de 10 segundos. Por medio del sistema de notificaciones de la distro y sonidos se anuncian estos eventos, incluido el inicio y fin de la grabación, para saber exactamente cuándo arranca y cuándo termina. Es importante notar que mediante este artilugio no tendremos ninguna indicación visual del área que está siendo grabada, por lo que es mejor que de antemano estén todos los elementos donde deben estar a la hora de hacer la selección de pantalla. Luego simplemente arrancamos con lo que queremos mostrar luego de escuchar la indicación sonora.

A continuación les dejo otra captura realizada con este script y byzanz, donde se puede ver que algunos colores no salen del todo bien en la adaptación a la paleta de 256 que maneja el formato gif, pero aún así el resultado es muy bueno:

captura con byzanz


Feb 11 2014

Whatsapp y el error de confundir libreta de contactos con mensajería instantánea

Gabolonte Blasfemus

whatsapp_sAlgunos lo notaron antes de que ya fuera noticia en todos lados, y era obvio que algo raro pasaba. Dependiendo del usuario podía llegar a pasar que de un día para el otro se pasaba de tener una lista de contactos de Whatsapp llena de imagencitas a una muy despoblada, casi como cuando eso de poner una imagen de avatar era una novedad.

Es que en Whatsapp por fin se estaban poniendo las pilas con un pequeño asunto de privacidad que era sabido hace mucho: Cualquiera que tuviera nuestro número de celular registrado en la libreta de su teléfono podía ver nuestra imagen de contacto y mensaje de estado por Whatsapp, y en tanto no conociéramos su número de línea para bloquearlo no había mucho que se pudiera hacer, porque por defecto todo el mundo, con excepción de quienes hubiésemos bloqueado, lo pueden ver. El cambio que hicieron en la última semana – desde el lado de sus servidores, por lo que no hace falta ninguna actualización de la aplicación – intenta limitar esa exposición descontrolada, y ahora sólo pueden ver nuestra imagen aquellos a quienes nosotros tengamos en nuestra agenda.

Vi a más de un par aplaudir la decisión, sin darse cuenta que, aunque antes las cosas no estaban bien como estaban, este cambio de política genera nuevos inconvenientes.

Continue reading


Feb 5 2014

La misión ¿imposible? de convertir usuarios de Whatsapp a Telegram

Gabolonte Blasfemus
"Nosotros te cuidamos, y para eso necesitamos ver todas tus fotos, videos y charlas subidas de tono. Es por tu seguridad..."

“Nosotros te protegemos del terrorismo, y para eso necesitamos ver todas tus fotos, videos y charlas subidas de tono. Es por tu seguridad…”

Un tiempo después de que la gran bomba de la NSA explotó, un fuerte deseo de dejar que la misma continúe empernándose al planeta entero comenzó a surgir en todos sus rincones, y eso dio lugar a varios proyectos (la mayoría ubicados fuera del país de la libertad vigilada) que intentan brindar algún canal de comunicación libre de los men in black.

En el campo de lo que podríamos calificar como mensajería por smartphone, todos sabemos que hace tiempo Whatsapp ganó la batalla como el reemplazo definitivo a los arcaicos SMSs. Algunas de sus virtudes para hacerlo no son las más loables pero tampoco podemos desmerecerlo: Lo hizo por una combinación de factores como ser uno de los primeros, ser multiplataforma desde el principio, gratis (siempre amenazan que van a cobrar pero siguen sin hacerlo porque saben que ahí se les pianta el ganado), usar una interfaz limpia y sin publicidad, pero por sobre todo, funcionar y haber tenido versiones hasta para teléfonos económicos como los viejos semi-smartphones Serie 40 de Nokia.

El problema con Whatsapp, además de que aún sueñan con algún día hacerte pasar por caja, es que en sus condiciones de servicio (que aprobaste sólo por usarlo) estás en falta desde el vamos y jamás le prestó atención a la seguridad, lo que hace que al día de hoy, incluso cuando se supone que desde hace un tiempo cifran los mensajes, aún sea posible espiarlos a todos. Imaginen entonces la papa que es para la agencia más querida del mundo mirar lo que se le antoje.

Continue reading


Feb 14 2013

Adiós Opera

Gabolonte Blasfemus

Opera con corazón de WebKit...Tuve que mirar el calendario primero. No, no era 1 de Abril, ni 28 de Diciembre, así que tengo que suponer que, tristemente, es verdad. Opera, ese navegador que por muchos años lideró en innovación, deja de lado su motor propietario, Presto, para ser uno más de los incontables browsers que utilizan a WebKit, el popular proyecto de software libre derivado de KHTML e impulsado por Apple.

Para quien, como yo, conoce al navegador de origen noruego desde hace tiempo, la noticia llega, no como un balde de agua fría, sino congelada. Dejar de lado un desarrollo propio altamente exitoso, con años de investigación detrás, para centrarse en lo que casi todo el resto usa, no parece una movida inteligente como mínimo. Los argumentos de Opera Software para vender este cambio tan drástico a sus seguidores son más o menos estos:

  1. WebKit “es desde ya muy bueno”, por lo que prefieren colaborar con la comunidad de software libre mejorándolo en vez de duplicar esfuerzos en su propio desarrollo, el conocido concepto de “¿Para qué volver a inventar la rueda si ya existe una que funciona muy bien?”.
  2. WebKit está en el corazón de todas las plataformas móviles (con excepción de las de Microsoft, claro), por lo que hoy todo se mide, característica a característica, bajo la vara de WebKit, y por ende adoptarlo permite conseguir una porción mayor de la torta del mundo móvil, que es la que hoy más importa.

Hay otro motivo para este cambio que Opera Software no dice a los cuatros vientos pero que otros se encargaron de hacer notar, y es que Opera, en sus mejores tiempos anunciado bajo el slogan de el navegador más rápido sobre la Tierra, hace bastante que ya no lo es, siendo superado amplia y principalmente por Safari y Chrome, casualmente los dos navegadores estrella de la familia WebKit. Está claro en dentro de la compañía nórdica piensan que es más fácil y rápido pasar a WebKit que tratar de mejorar Presto, y así dejar de estar en desventaja. Este tipo de mentalidad me lleva una y otra vez a movidas como la de Nokia, que pasó de ser un orgulloso fabricante de smartphones con sus propios sistemas operativos a ser simplemente una opción más (eso sí, posiblemente la más popular) a la hora de conseguir un Windows Phone.

Muchos compran todos estos motivos y celebran la decisión, pero yo no puedo estar más en desacuerdo. Lo que hacía a Opera tan único y especial, lo que le daba sentido de existir en medio de tantas opciones mucho más conocidas y utilizadas, era justamente que era distinto, en todo. A Opera (y por ende a Presto) siempre se la han tildado problemas de compatibilidad con los sitios web más modernos y dinámicos, pero también era mucho más seguro y eficiente a su manera (traten de mantener 40 solapas abiertas en Opera y luego en Chrome y van a entender a lo que me refiero). Por sobre todas las cosas, Opera siempre fue otra opción. Si pasa a usar WebKit, no dudo que podrá seguir haciendo una diferencia en la UI del navegador y otras funcionalidades extra, pero al menos la mitad del software pasa a ser más de lo mismo. Me anda mal un sitio en Chrome o Safari, ¿para qué molestarme a probarlo en Opera si es lo mismo? ¿Para que usarlo en un principio si va a mostrar la web igual de bien o de mal que Chrome, que desde hace tiempo es (tal vez) la mejor opción?

Que cada vez existan menos navegadores con motor propio y más con el mismo trae otro problema además, el mismo por el que muchos hinchaban por WebKit y odiaban Internet Explorer, que es la polarización y el monopolio. Si WebKit termina de dominar el mercado de navegadores, los sitios web pasarán a desarrollarse y testearse exclusivamente para el, dejando en inferioridad de condiciones al resto; lo mismo que sucedió por muchos años con IE. Seguro, muchos desarrolladores estarán contentísimos de olvidarse de la compatibilidad con múltiples navegadores y pensar sólo en WebKit que es un proyecto open source y que sigue estándares, a diferencia de Microsoft que hacía lo que le daba la gana, pero toda plataforma tiene sus vicios y desviaciones. Y si hablamos de ahorrar trabajo, eso no es algo que hayan conseguido precisamente los desarrolladores de add-ons para Opera, que ahora ven como tienen que rehacer todo su material para que funcione bien bajo WebKit.

Lo primero que pensé hoy era como podía ser que Jon Stephenson von Tetzchner, CEO y co-fundador de Opera Software, pudiera arruinar así al que siempre consideró, según palabras de quienes lo conocían bien, su bebé. Ahora entiendo lo que pasó: Recordé que Jon dejó de ser el CEO de Opera Software hace año y medio por, casualmente, diferencias con la junta directiva. Ahora veo bien que tan profundas eran esas diferencias.

Ojalá sepan mostrarme que me equivoco, pero para mí hoy, Opera deja de ser Opera, y pasa a ser otro más del clan de WebKit. Es una pena.

Actualización: Se me pasó mencionarlo antes, pero a Opera ya le había sucedido en el pasado esta situación de llegar a un punto en el que su desarrollo estaba estancado y se necesitaba tomar una decisión drástica. Pero los tiempos eran otros (bajo el comando de von Tetzchner) y se resolvió que lo mejor era empezar el desarrollo de un nuevo Opera desde el principio, dejando de lado todos los problemas del anterior. Así había nacido la versión 7 de Opera, la cual fue una de las mejores y la base de todas las posteriores hasta este momento. Es una lástima que ahora no tengan la voluntad y el orgullo (la capacidad seguro la siguen teniendo) de pensar de la misma manera en Opera, después de todo, así tan mal no les fue.

Actualización 2: Otra movida completamente inesperada para Opera Software, ya que compró a Skyfire, un navegador móvil especializado en el streaming de video que ya les hacía competencia desde cuando Windows Mobile aún era relevante. Evidentemente están empeñados en bindar la mejor experiencia posible en el mundo móvil, sólo espero que no se equivoquen en el rumbo.


Ene 6 2013

Dudas Existenciales (92): ¿Vale la pena comprar en una tienda de aplicaciones?

Gabolonte Blasfemus

Siendo de este lado del ombligo tercermundista, hay ciertas cosas que uno se las piensa bien y varias veces. Una de ellas, al menos para mí, es comprar en una tienda de aplicaciones. Claro, primero hay que poder; no todo el mundo en este bendito país está en condiciones financieras y crediticias de realizar una transacción electrónica con una multinacional de la tecnología. Pero una vez resuelto si podemos llega la gran pregunta: ¿Debemos?

¿Tiene sentido invertir en la compra de una aplicación a través de una tienda, sabiendo que debido a su sistema de seguridad no es realmente nuestra?

geek_hugCuando yo compraba hace 10 años una aplicación para Windows que venía en un CD, se podía decir que esa copia de software era realmente mía: Mi única traba para instalarla cuando y donde yo quisiera era el número de serie que me otorgaban al comprarla y la posible activación online con el mismo. Tal vez no podría instalarlo en 5 equipos simultáneamente, pero sabía que al menos, si no había ningún problema de compatibilidad de por medio, podía volver a instalarlo 10 años más tarde.

Con las tiendas de aplicaciones esa ilusión de eternidad de esfuma. Sí, en Android por ejemplo, si compro una aplicación puedo instalarla sin pagar nada más en todo dispositivo que asocie con mi cuenta de Google, pero… ¿tengo algún tipo de garantía que dentro de 5 años podré volver a hacerlo? Algo especialmente preocupante con aquellos juegos que  una vez instalados, y al ejecutarlos por primera vez, descargan por su cuenta los varios cientos de megabytes que necesitan para funcionar. Esos archivos, ¿seguirán disponibles para descarga cuando el juego sea obsoleto?

En Windows Mobile no existió el concepto de la tienda hasta recién en el final de sus días, cuando Microsoft intentaba con parches injertarle lo que podía de la receta exitosa del recién llegado iPhone. Entonces, un usuario de Windows Mobile promedio se procuraba su software descargando el archivo de instalación .cab, o el ejecutable para instalar a través de Windows y ActiveSync, y si era lo suficientemente precavido y prolijo se los iba guardando para futuros usos. Yo fui uno de ellos y si hoy necesitara, por la razón que fuere, reutilizar mi viejo teléfono con WinMo desde cero, podría instalarle cada una de las aplicaciones que en su momento tuvo. Seguro, estarían completamente desactualizadas (como la misma plataforma) pero, a menos que se trate de clientes de servicios online, serían tan funcionales como el primer día. El software sigue siendo mío con el paso del tiempo.

En una tienda de aplicaciones, en cambio, y por razones de seguridad obvias para combatir la piratería, no existe forma posible, al menos legal y que no requiera algún tipo de hacking, de quedarnos con el instalador de la aplicación para un posterior reuso. Toda futura reinstalación tiene que volver a realizarse a través de la tienda, y únicamente mientras se cuente con su beneplácito y aprobación.

De todas formas, la realidad es, más allá de la pregunta del título, que no contamos con una opción: Salvo en los casos donde se trata de software gratuito y el desarrollador pone a su disposición el instalador para su descarga directa (paralelamente a si pone o no la aplicación disponible desde la tienda) en el resto de los casos no nos queda otra que jugarnos y pagar; o recurrir al soft crackeado y todos sus problemas de ética, legalidad, disponibilidad, estabilidad y seguridad. Y eso, claro, si hablamos de una plataforma como Android donde Google y sus OEMs son tan buenos que al menos nos permiten instalar aplicaciones por fuera de la tienda; no como le sucede a todo usuario de un dispositivo iOS que, a menos que se arriesgue al jailbreaking, está encadenado a instalar únicamente software desde el Apple Store.

Yo antes era completamente reacio a desembolsar algo en una tienda de aplicaciones, pero con el tiempo y al ver el potencial y futuro de Android me terminé animando, pero solo con aquellas que no significaran un gasto muy grande o que estuviesen en oferta con alguna rebaja importante. Aún así me lo sigo pensando muy bien cada vez que aparece algo interesante.

Y vos, ¿cómo te llevás con tu tienda de aplicaciones?