Sin categoría

¿Cómo convertir un video en gif?

Repliqué el primer resultado de la búsqueda que me direccionó a esta página http://unix.stackexchange.com/questions/35282/convert-ogv-video-to-gif-animation

Después de crear un video con RecordMyDesktop (http://recordmydesktop.sourceforge.net/about.php) quería convertirlo a gif.

Con mplayer se hacen capturas de pantalla y se guardan en el directorio output

mplayer -ao null archivo.ogv -vo jpeg:outdir=output

luego usando imagemagick se convierten estas capturas en un gif animado

convert *.jpg MapasConHojaDeCalculo.gif -fuzz 10% -layers

Instalar módulos de perl sin necesidad de root

ºInstalando twirssi (http://twirssi.com/?installing) en una nueva máquina con manjaro referencian una excelente respuesta para instalar módulos de perl usando CPAN sin tener acceso a root. Lo que para mi es conveniente porque varias veces cuando en archlinux actualizan perl se me daña el funcionamiento de twirssi. Acá el enlace a la respuesta de stackoverflow http://stackoverflow.com/questions/2980297/how-can-i-use-cpan-as-a-non-root-user

De este modo los módulos quedan en local y si hay algún error o actualización tengo la posibilidad de borrarlos o intentar arreglarlos dentro de una carpeta en mi home.

wget -O- http://cpanmin.us | perl - -l ~/.perl5 App::cpanminus local::lib
eval `perl -I ~/.perl5/lib/perl5 -Mlocal::lib=/home/brolin/.perl5`
echo 'eval `perl -I ~/.perl5/lib/perl5 -Mlocal::lib=/home/brolin/.perl5`' >> ~/.profile

Se asume que su archivo de perfil es .profile.

Después puede instalar cualquier módulo de manera local usando el comando

 cpanm Modulo::Nombre

OYERISTAS – una semana de – OYERISTAS

Después de pillar esto http://nbviewer.ipython.org/github/Zulko/–video-editing—Cup-Song-Covers-Mix/blob/master/CupSongsCovers.ipynb se me ocurrió que se podía usar MoviePy [1] para generar el timelapse de los 99mil archivos que tenemos de oyeristas.

Buscando como hacerlo encontré el manual de mencoder [2] (una herramienta de consola de linux para la manipulación multimedia) y me dió por probar la primera línea de los ejemplos con los archivos del sna. A la siguiente línea me refiero.

mencoder mf://*.jpg -mf w=800:h=600:fps=25:type=jpg -ovc lavc -lavcopts  vcodec=mpeg4:mbd=2:trell -oac copy -o output.avi

Se estachó antes de terminar pero alcanzó a generar un video de la primera semana de la instalación. Lo acabo de subir a vimeo

OYERISTAS – una semana de – OYERISTA from un/loquer on Vimeo.

[2] http://www.mplayerhq.hu/DOCS/HTML/en/menc-feat-enc-images.html

A la rueda rueda de Un/loquer

Diversas cosas suceden todos los sábados en Un/loquer, algunas anunciadas desde la lista de correos y otras (muchas) que surgen de la buena compañía y las ganas de compartir cosas. He aquí un recuento breve y que no guarda el orden de los hechos sobre lo sucedido el 31 de mayo de 2014.

—————————–

->Recibimos la visita de Tiago Stamato Velasco, un amigo cercano a Platohedro integrante del colectivo Soy Loco Por ti, quiénes están trabajando en Wordpress para promover la democratización de la comunicación a un nivel latinoamericano. La pregunta/aporte de Tiago en Un/loquer fue sobre cómo mejorar la instalación y adaptación de los plugins que ellos están desarrollando a este gestor de contenidos. La respuesta aún se está construyendo, y pronto será ampliada y comunicada por quien redacta esta entrada con ayuda de quien diga ¡Yo!. No obstante, aquí hay una pista:

yo
Hola Alex
es que estoy haciendo
Dirección Platohedro
hola
yo
la documentación del sábado
en unloquer
y quería saber
si sabes si Tiago obtuvo algún indicio sobre los plugins
de wordpress
ese día
Dirección Platohedro
él viene trabajando en ello, estamos en la traducción de las herramientas y el testeo en WP
y miramos los plugins que hay ya desarrollados por Soy Loco
y yo estaba estudiando PHP
15:37
—————————–
->La vaca sagrada hizo su aparición y nos trajo cerveza, verduras y arroz para acompañar con una deliciosa sopa de tomate, receta invocada por Amajave, y saboreada antes en este blog, pero siempre con un toque secreto en cada preparación.
—————————–
->Luego de la mesa de almorzar pasamos a la mesa de conversar con Sonia y Tony de C3P. Eliana nos acompañó por videollamada, y los que se sentaron, escucharon y lanzaron ideas que  al final de la tarde fueron retomadas en otra ronda grupal sobre la propuesta de Creación Colaborativa que estamos construyendo para el Sistema de Bibliotecas Públicas de Medellín.
((((
El siguiente video no representa la conversación central pero sí un gran momento de la tarde a la rueda rueda de Un/loquer :)

))))
Luego, Elena nos compartió este Mapa mental – Territorios en código abierto y creativo que nos ayuda desde ya a aterrizar lo que hemos escrito las últimas semanas, y hablamos el sábado sobre ejercicios puntuales para las sesiones de encuentro en las bibliotecas con el uso de herramientas de software libre.
—————————–
// Otras acciones simultáneas que escapan al detalle pero no a la percepción //
 -> Kalash nos enseñó a apropiarnos más del servidor de Un/loquer creando un lugar propio. Y Migue por ejemplo puso todos sus ojos en él 😛
->Kleper nos mostró http://meet.jit.si/ una maravillosa herramienta para conectarnos. ¿Que por qué es maravillosa? Pues porque puede: conectar a varias personas en una videollamada sin necesidad de acceder con ningún usuario ni contraseña. Sólo compartiendo una url (como en los pads). Puede abrir/cerrar la videollamada de modo que quienes estén puedan tener un mayor control sobre el número de participantes. Cuenta con un chat, la posibilidad de compartir un Prezi y un documento, tiene el modo de pantalla compartida… y además se puede descargar para hacer uso de ella por fuera del modo Web. 😀 :O ¡Y eso que se encuentra aún en desarrollo!
->Por puro antojo, quien escribe, instaló (y piensa cacharrear) Processing después de la charla que dio Johnny en el Parque Biblioteca Tomás Carrasquilla – La Quintana como una iniciativa de Medellín Vive la Música.

-> En un correo posterior Andrés Aguirre nos escribió:

“Kalash me ayudó a instalar tmux en el servidor,  tmux es un programa que sirve para multiplicar terminales: uno puede, entre otras cosas, crear varias pestañas con terminales independientes, o dividir la pantalla horizontal o verticalmente en tantas terminales como uno quiera.

No es un programa esencial, pero lo uso a diario y me ha resultado muy práctico para trabajo con servidores remotos.

Me gustaría mostrarles en vivo y en directo qué es, cómo se usa y para qué sirve.”
—————————–
Los sábados de Un/loquer no paran y vienen con aprendizajes autónomos, colectivos, divertidos, con calor, sueño, enguayabados y madrugados, que se replican durante la semana.
Cada 7 días en CasaTresPatios llegamos en bici, caminando, en taxi, en bus o en metro. Desde Itaguí, Niquía, Belén, Floresta, La 80, Buenos Aires, Santa Elena, Envigado, Poblado, entre otros, para darle múltiples sentidos al verbo “hackear” que cada uno resignifica, escarba y comparte como quiera.

Gracias a Elena, Ana, Kalash, Checho, Daniel, Alex, Juan J., Diego, Óscar, Johnny, Kleper, Eliana, Tony, Sonia, Brolin, Tiago, Fabio, Fede, Rafa, Estefa, Andrés, Santiago y Miguel.

Lumi, soldador y lo que viene

En los últimos dos sabados, hemos tenido bastante movimiento probando algunas cosas nuevas que nos van a servir mucho para iniciativas futuras: el soldador :), cuadrando otras que ya vienen: Asistente de jardin, pensando en futuras: Talleres sobre iniciativas P2P, y terminando algunas que estaban paradas: Intructables de Lumi.

El sabado pasado estuvimos desempacando y probando un soldador, Checho, al ser el personaje que más conocimiento tiene sobre soldadores fue el encargado de introducirnos a este tipo de actividad, arreglando la mesa de Daniel que le faltaban unos “punticos” para que no tambaleara como si estuviera danzando. Pronto estaremos publicando aparatos, artefactos, dispositivos construidos con el soldador.

Este sabado nos pusimos a la tarea de hacer un instructable sobre el uso de Lumi, que es un quimico para estampar exponiendo a la luz, a través de un negativo.

http://lumi.co/

El procedimiento es bastante sencillo, pronto estará colgado el instructable en nuestra página, pero de manera general recomendamos lo siguiente al momento de tener algo de inkodye en la manos:

1. La plantilla es super importante. Asegurate que la imagen que vas a imprimir en el acetato este escalada para que se acomode bien (recomendación de Juan)

2. Al ser un proceso de revelado, la luz en gran cantidad es bien importante, en este intento no tuvimos mucho sol (aunque Ana bailó la danza para llamar al sol varias veces)

20140517_131722           20140517_143839

Pronto montaremos el instructable completo.

 

Y que se nos viene?, no estamos seguros de que se nos ocurra individualmente, con todos los juguetes nuevos que tenemos, pero al editor de esta entrada le huele a jardin y sistema de riego, mas antenas de red libre en la ciudad, y una descarga grande de iniciativas colaboradas en las que estaremos ayudando otras personas a enloquecer un poco…… como nosotros 😀

Govindas`s, la cascada, lluvia, processing.js y sapoteando Lp`s.

Abemus aguja para el tornamesa !!!.

DSC04181El sábado 12 de abril hubieron pocas personas en el lugar, pero de esas pocas personas, surgieron los ánimos y las mismas energías para seguir en la cochera, inventando y creando por medio de la tecnología.

Brolin estuvo trabajando en la realización del vídeo de Lindy Marquez en el cuboX, un espacio de expresión para los artistas residentes de C3P. Este timelapse fue realizado usando una cámara IP fijada en el lugar, la cual captura imágenes cada 15 minutos y luego él decidió usar el programa panolapse para finalizar con este vídeo.

link al video -> cuboX

Mas tarde se decidió por bajar a la cascada para comprar algunos cables y componentes para ensayar la tarjeta de sonido, además de la bomba para el asistente de jardín.

DSC04183DSC04184

Mientras caminábamos , las nubes tomaban un papel de pitonisa augurando una posible lluvia. Daniel y Brolin entraron al centro comercial, específicamente al almacén Tecno Sonido para comprar algunos componentes. Miguel, Juan y mi persona bajamos a buscar la bomba. Después de una leve caminada y un corto tutorial por parte del señor que nos vendió el dispositivo, se decidió en conjunto cambiar las pastas con algún aderezo cotidianas de cada 8 dias en unloquer, por un almuerzo vegetariano en govinda`s, acompañandos de una ventana donde podíamos visualizar la lluvia en el parque la veracruz.

“Tomemos un taxi, se va a explotar una cerveza que tengo en la nevera de C3P” Decía kalas míentras salíamos de almorzar y decidíamos si regresar caminando o tomar un taxi.

DSC04185

Después de tomar un decisión, y llegando a la loquerCueva. Decidimos seguir trabajando cada uno en sus proyectos.

Juan y Daniel se quedarón entretenidos explorando la tarjeta de sonido, grabando algunos lp`s y experimentando con el Audio que se grababa en audacity para generar un sonido tipo glitch. Se puede escuhar aquí

DSC04187DSC04188DSC04198DSC04194

Miguel pudo solucionar su crasheo de ubuntu, la respuesta se encuentra aqui. En ese .deb que se descarga, hay que descargarse él de nuestra versión. ya sea 13.04 o 13.10 aqui. 

También estuvimos experimentando un poco con processing.js . Esto es una envoltura de html y javaScript que permite subir los sketches de processing a la web e incrustarlos en nuestras propias paginas.

En este link podemos encontrar un editor de texto que funciona con processing.js, el cual escribes tu código y el lo ejecuta en el browser.

Asistentes.

DSC04197 DSC04190

http://sketchpad.cc/XiGX8w2dze

 

 

Cambiar variables de configuración de npm

En Archlinux la versión de python por defecto es python3. Para instalar algunos paquetes de node.js como bcrypt usando node-gyp (este permite compilar código fuente de módulos para node.js) es necesario usar python2 sinó nos encontraremos con un error como:

gyp ERR! configure error 
gyp ERR! stack Error: Python executable "python" is v3.3.2, which is not supported by gyp.

Es necesario entonces establecer que la versión de python que usará npm será python2. Esto se logra alterando la configuración de npm mediante el comando:

npm set python '/usr/bin/python2.7'

para ver las variables establecidas se puede usar

npm config ls

ViZaJe

La visualización de la lista de correo se presentó a las becas de creación de medellín en el 2013. No ganó 😀 (En el repositorio que menciono más adelante está el proyecto enviado)

Últimamente hemos avanzado en el proceso. Por medio del plugin para thunderbird importexporttools se sacan los correos de manera independiente de la lista desde que comenzó a funcionar (enero de 2009), se han escrito 5784 correos con fecha de corte al 9 de julio. Unos 2500 hilos diferentes. El pico de correos en un solo día es de 33 (por la época de bios) y el promedio de correo por día es de 7 (promedio de todos días en los cuales se escribió por lo menos un correo)

Hay un experimento con D3js en el siguiente repositorio https://github.com/brolin/ViZaJe
Para generar la lista de mensajes se hizo

$ls Data/unloquer_mensajes/mensajes | nl > ListadoMensajes.txt

Este archivo se abrió en http://openrefine.org/ y se ajustó como se ve en Data/ListaUnLoquer.csv

Luego en R se hizo el conteo de frecuencias de mensajes por día como se ve en el script ListaUnloquer.R para generar el archivo MensajesXDia.csv que es la fuente de datos para representarlo con el ejemplo de D3.js (http://bl.ocks.org/mbostock/1667367)

En este pad hemos recopilado alguno links del proceso http://piratepad.net/VizajeUnLoquer

Estudiar off-line en coursera.org

Recientemente me inscribí en un curso en la plataforma de educación virtual www.coursera.org. El volumen de lecturas es elevado y no me fue posible seguir al día el avance del curso. Afortunadamente es posible bajar los materiales, pero cómo bajar casi 100 videos de manera automática y poder ver o escuchar las lecturas en su reproductor portátil mientras va en el bus.

Curl[1] es una herramienta de linea de comandos para transferir datos usando la sintaxis URL. Esto significa que es posible hacer un script para navegar de un sitio web sin la necesidad de un navegador como firefox, adicionalmente permite manejar autenticación y cookies; esto último que menciono es importante ya que es necesario ser un usuario registrado para tener acceso al material.

Una vez logueado en el sitio web de coursera el navegador reconoce esta condición para visitar nuevas páginas porque guarda la información en algo que se llama Cookies[2]. Una cookie es una pequeña pieza de datos que las páginas web envían desde un website y es almacenada en el navegador del usuario.

Para poder descargar todos los videos es necesario conocer los enlaces respectivos de cada archivo y tener privilegios para acceder a ellos. Empecemos por los privilegios .. esta parte fue resuelta usando en navegador (para este caso particular Chromium). Usando las herramientas de desarrollo es posible ver todas las solicitudes hechas por la página web y las respuestas del servidor. Nos interesa la respuesta del servidor después de loguearnos donde está la cookie que nos permitirá bajar todos los videos mediante un script como si estuviéramos autenticados pero sin usar un navegador. Ingrese a la dirección https://www.coursera.org/account/signin a continuación abra las herramientas de desarrollador (F12) y seleccione la pestaña “Network”. Ingrese su usuario y contraseña y a continuación selecciones de la ventana inferior la solicitud “login”, allí vera una sección llamada “Response Headers”, seleccione “view source” y copie el contenido en una archivo que llamaremos “cookies.txt”

WebDev

Para obtener las direcciones de cada video también usamos el navegador pero esta vez la sección “Console”. En la consola usamos jquery[3] para seleccionar los elementos donde se encuentran las URLs de descarga con el siguiente selector $(“a[data-lecture-id]”). Se obtiene un arreglo con varios enlaces de la forma

<a data-lecture-id=​"49" data-modal-iframe=​"https:​/​/​class.coursera.org/​datasci-001/​lecture/​view?lecture_id=49" href=​"https:​/​/​class.coursera.org/​datasci-001/​lecture/​49" data-modal=​".course-modal-frame" rel=​"lecture-link" class=​"lecture-link">​ Appetite Whetting Part 1 (15:38)​</a>​

Nos interesa el id de cada video. Lo que hago es copiar igualmente el resultado de ejecutar esto en un archivo de texto y lo guardo. Es necesario tener una listas de los id’s para usarlos en la dirección de descarga que es

https://class.coursera.org/datasci-001/lecture/download.mp4?lecture_id=ELEMENTO_LISTA_IDS

De igual manera el nombre del video para nombrar el archivo que sea descargado. Hice dos listas una con los “id” y otra con los nombres de los videos; para obtenerlas hice reemplazos de las partes que no necesitaba en mi editor de texto favorito (emacs) usando expresiones regulares. Al final se hace un script de bash como el que sigue (el original tiene muchos más ids y nombres)

#!/bin/bash
lectures=( 49 51 11 13 15 17 19 21 23 25 55 27 29 31 59 57 61 63 65 35 33 37 71 81 67 73 77 85 87 91 93 95 97 99 101 103 105 111 107 109 113 115 117 119 121 123 125 127 129 131 133 135 137 139 141 143 )
names=( "Appetite Whetting Part 1 (15:38)" "Appetite Whetting Part 2 (13:44)" "Context (9:30)" "Dimensions (10:24)" "This Course Part 1 (14:02)" "This Course Part 2 (10:50)" "eScience (11:46)" "Big Data (14:36)" "Guest Lecture: Biomedical Informatics (10:24)" "Logistics (7:42)" "Twitter Assignment: Getting Started with Problem 0 and Problem 1" "From Data Models to Databases (10:35)" "Motivating Relational Algebra (8:57)" "Relational Algebra Introduction (10:58)" "Relational Algebra Details: Union, Diff, Select (10:53)" "Relational Algebra Details: Project, Cross Product, Equi-Join (11:06)" "Relational Algebra Details: Theta-Join (8:34)" )
COUNTER=0
for lecture in "${lectures[@]}"
do
 echo "- Processing : video_$COUNTER-${names[$COUNTER]}.mp4"
 curl -o "video_$COUNTER-${names[$COUNTER]}.mp4" https://class.coursera.org/datasci-001/lecture/download.mp4?lecture_id=$lecture --cookie cookies.txt --referer https://class.coursera.org/datasci-001/lecture/index --location
 let COUNTER=COUNTER+1
 echo "- Done processing : $lecture"
done

Guárdelo y conviértalo en ejecutable con chmod +x.

Observe como usamos el archivo de cookies que guardamos al inicio mediante la opción –cookie de curl. Lo que pasa hace el script es que recorre las listas de ids que yo llamo lectures usando su contenido como URL de descarga que resuelve curl. Las lista de nombres la llamo names y la uso para guardar los archivos descargados con un nombre que yo pueda identificar porque con el que descarga es muy raro. Si quieren ver en detalle que pasa al correr el script agregue la opción –verbose en la linea de curl.

Puede que no sea la solución mas elegante, pero funciona :P. Agradecería los comentarios y posibles mejoras.

Brolin

[1] curl, http://curl.haxx.se/

[2] cookie, https://en.wikipedia.org/wiki/HTTP_cookie

[3] jquery, http://jquery.com/