Bot para twitter

Estas son las notas rápidas sobre la instalación y configuración de un bot para enviar trinos, la primera parte estaba originalmente en la página de HackBo sin embargo por los cambios en la plataforma, la información que estaba ahí, no está disponible por el momento. Teniendo en cuenta que este bot es útil para algunas tareas de “activismo digital” he decidido replicar esa información en esta entrada de mi blog y extender la entrada original con las anotaciones del script y de los archivos necesarios para la configuración del bot.
Mis agradecimientos a @kmilo y @gpmeneses que en su momento me ayudaron con la primera configuración que hice de este bot.
Installation
apt-get install bti
Configuration

Now you have the command bti available on your shell and you have to complete the OAuth authorization process to be able to post on your twitter account.

First create your configuration file as:

# comments are allowed in the bti config file
# rename this to ~/.bti so that you do not need
# to constantly enter your account name and/or
# password on the command line every time you send
# a message.
account="your account"
password="your password"
host=twitter
# Example of a custom laconica installation
#host=http://army.twit.tv/api/statuses
logfile=.bti.log
action=update
#user="your proxy user"
#proxy="http://your proxy address:port"
#shrink-urls=yes

and put it in ~/.bti.
Consumer key and secret
You should register a new application to have access at your twitter following this link: https://twitter.com/apps/new.

  •  Application name: choose a different name from bti because that is already choosen.
  • Website: http://gregkh.github.com/bti/
  • client without callback
  • Application type: Read and Write

Twitter will give you the two keys you need and You will put these at the and of your .bti config file as:

consumer_key=ambarabaciccicocco
consumer_secret=trecivettesulcomò

Then try your first run:

$ bti

You will be prompted to browse a specific link and past back the pin you see. Then you will be asked to add other two rows in your configuration file and  when you have done it, well all the process is completed! with the command:

$ echo "tweet what you want" | bti --debug

You will be able to tweet all you want from the shell!

Script

Create your Script file as:

#!/bin/bash 

echo start: $(date) >> /var/log/bti.log 
echo >> /var/log/bti.log 

pausa=300 
for line in $(seq $(wc -l tweets.txt | awk '{print $1}')); do 
    tail -n +$line tweets.txt | head -n 1 | bti --debug >> /var/log/bti.log 
    sleep $pausa 
    bti --action user --user $(tail -n +$line retweets.txt | head -n 1) | head -n 1 | sed 's/\[\(.*\)\]/RT @\1/' | bti --debug >> /var/log/bti.log 
    sleep $pausa 
done

and put it in ~/tweets.sh

Create your tweets file as:

This is my first tweet using bti
This is my second tweet
Now a third one

and put it in ~/tweets.txt

Create your retweets file as:

myfavorytwitteraccount
anothergreattweeteraccount

and put it in ~/retweets.txt

Execute the script using ./tweets.sh
Anuncios

Scratch y The Gimp en el MDE11

Durante el 13, 14 y 15 de octubre y el 18 y 19 de octubre estuve en Medellín, en la Casa del Encuentro y en la Biblioteca Pública Piloto, haciendo una serie de talleres sobre diseño, creación y prueba de historias, juegos y simulaciones – con un enfoque en materiales multimedia – usando The Gimp y Scratch en el marco del MDE11, gracias a una invitación de los amigos de Hiperbarrio.

A continuación una breve descripción del taller y algunos de sus resultados.

Al inicio del taller se definieron el tipo de historias, juegos o presentaciones que se iban a obtener al final del ejercicio. Como planteamiento inicial se tomó el tema de la narrativa, más como propuesta metodológica que como propuesta temática.

Por que partir de la metodología?

Los ejercicios de narrativa permiten la libre expresión y el desarrollo de la creatividad de los participantes. El taller se orientó a desarrollar estas capacidades antes que pensar en un adiestramiento sobre las herramientas.

El ejercicio propuesto retoma los elementos de talleres introducidos por Barbara Barry en Narración y computación pidiendo pensar en dos personajes que se encontrarían en un escenario (que puede cambiar o no) entre quienes surge una confrontación, que lograr solucionar con un resultado inesperado.

Este sencillo planteamiento permite la exploración de escenarios,objetos, personajes, interacciones, mensajes, variables y de más elementos propios de la programación en scratch, además que brinda la posibilidad de usar fotografías tomadas por los mismos asistentes al taller para ser modificadas en The Gimp con el fin de convertirlas en esos escenarios, personajes y objetos.

Con este objetivo, el de construir la historia, durante los talleres se aprendieron a editar y manipular imágenes, tanto fotografías tomadas por los asistentes como imágenes descargadas desde Internet. Se hicieron prácticas de recorte, escalamiento, modificación de color, filtros y efectos.

Luego de editadas las imágenes se importaron a scratch para ser utilizadas en la construcción de las diferentes historias.

Ya en scratch, se trabajó en el paradigma de programación orientada objetos, para darle vida a los personajes elegidos por los asistentes. Representar el conflicto y mostrar el desenlace. Eso permitió explorar las herramientas de movimiento, control, apariencia, variables, sensores, incluso sonidos con que cuenta scratch.

Al finalizar el taller los asistentes crearon sus respectivas cuentas en la comunidad de scratch y compartieron sus trabajos en internet. Esta es una muestra de ellos:

Entre un lápiz y un borrador

Scratch Project

Blancanieves cabello sedal
Scratch Project

Ojitos
Scratch Project

Me van a comer
Scratch Project

A los participantes, organizadores y demás amigos con los que compartí esa semana en Medellín, mis más cordiales saludos.

Hallowen + Software Libre + JSL = :-D

Este fin de semana se realizarán en Cucutá, Norte de Santander, las Jornadas Nacionales de Software Libre.

Un querido amigo, activista del software libre, que viene desde Brasil para participar en el evento, me comentó que piensa traer su disfraz de Gnu, y me compartió la foto, no lo puedo evitar, quiero compartirla con todos.

Disfraz de Gnu

Para aquellos que quieran, los dejo con otras fotos de su disfraz y su blog.

Explicitar los lugares comunes

Algunas notas sobre el grupo de Implementación de Sugar

Hace un par de semanas me propusieron ayudar en la coordinación del grupo de Implementación de Sugar Labs. Es una de esas misiones que uno asume con una mezcla de felicidad y preocupación. Casualmente esta última semana se ha discutido bastante sobre el tema en la lista de sugar-devel. Así que dispuesta a aceptar el cargo, estas son algunas de mis impresiones sobre el  grupo de implementación de Sugar Labs y sobre los retos de esta tarea.

Cual es la mision del Grupo de Implementación?

Del wiki: “The mission of the Deployment Team is to voice the needs of Sugar deployments to the Sugar community, to find ways to support those needs, to organize forums for the exchange of experiences between Sugar users and Sugar developers, and to build local Sugar Labs organizations worldwide.”

Teniendo eso en cuenta, lo que interesaría es tratar de contactar y mantener una relación estrecha con las implementaciones.

¿Quiénes serían el grupo objetivo de esta búsqueda de cercanía?

  1. los usuarios directos de Sugar: niños, niñas y docentes que utilizan cotidianamente Sugar en un proceso de enseñanza-aprendizaje.
  2. Los administrativos a cargo del proceso de implementación en las instituciones, a quienes se les debe “convencer” de la necesidad de esta comunicación. La idea de “convencer” debería dar cuenta de darles algo que también les sirva. Ofrecer a la institución algo que sirva de intersección y a la vez permita empoderar a los individuos de la comunidad.
  3. Los desarrolladores de Sugar, que necesitan una retroalimentación constante para mejorar la plataforma.

Ser la voz de las implementaciones implica estar en ellas, padecerlas y conocerlas. En últimas el grupo de implementación debe preguntarse por cómo construir posturas válidas desde dentro, incluyendo a todas las partes del proyecto, siendo consciente de lo local.

Buscar la manera de soportar las necesidades es estar conscientes de los retos y las limitaciones que impone el tipo de trabajo en el que estamos. Quienes somos, o quienes creemos ser: un proyecto comunitario, mayoritariamente voluntario, donde generalmente hay una gran distancia entre aquellos que elaboran el software y los otros que lo implementan.  Esas distancias muchas veces han sido legados de procesos pasados de los que aun conservamos cierta tendencia al centralismo, al asistencialismo y a abstraer tanto a usuarios como a desarrolladores. Teniendo esto en cuenta necesitamos pensar, ¿cuáles son los espacios de confluencia? ¿cuáles son los mecanismos que nos permiten una comunicacipn más fluida?, ¿cómo se  logran romper las barreras impuestas por el idioma y las idiosincrasias?, ¿cómo darles voz a aquellos cuya opinión generalmente no ha sido tomada en cuenta?, ¿cómo volver este proceso más transversal?

En cuanto al trabajo de los desarrolladores y el grupo de Implementación, ¿hemos logrado mejorar el software y la interfaz gráfica a partir de supuestos o estamos más cercanos y atentos a las verdaderas necesidades? ¿cómo conocerlas? ¿cómo dejar las suposiciones?  Es necesario lograr tener interlocutores (pares capaces de dialogar) antes que interpretes.

¿Qué tipo de foros y en que tipo de espacios se deben encontrar los desarrolladores y las personas de implementación? Foros de maestros, listas de correo, foros de discusión de software, eventos de divulgación, eventos académicos, eventos de promoción de tecnología, ferias de ciencia? Será alocado pensar que los desarrolladores deben buscar la cercanía y no tratar de forzar a los maestros a que participen en un proceso que sienten lejano. Necesitamos espacios de conversaciones transversales, no espacios donde se va a escuchar al que sabe (conferencias, foros…)  y más espacios de escucharnos entre los que construimos y tenemos saberes distintos (world café, open space…) Hay que construir espacios de diálogo, hay que dejar de esperar que vengan a contar como ha sido la experiencia de uso y tal vez ir a ver que es lo que buscan, quieren o necesitan ¿Cómo se puede construir en conjunto?

¿Qué aportan los local labs en este proceso? De la forma como se están generando los local labs pueden ser espacios de confluencia. Lugares donde permitir que haya una mayor circulación de las ideas y donde la limitaciones de idioma e idiosincrasia suelen ser fácilmente salvables. Faltan en estos procesos lograr mayor autonomía y autosostenibilidad en el tiempo.

Los peligros del pasado

Algo que encuentro desafortunado y que definitivamente no podemos repetir es el centralismo que ha caracterizado a OLPC como organización y la necesidad de mantener el control de las implementaciones, impidiendo la cercanía de la comunidad con muchas de ellas. Esto aparece como un obstáculo para que el grupo de implementación tenga una injerencia real en las implementaciones. A título personal creo que la falta de visión de OLPC como una gran comunidad, donde se favorezcan grupos locales antes que globales y donde el proyecto se centre en procesos  de apropiamiento tecnológico desde lo micro y no desde lo macro ha sido un factor que ha contribuido al alejamiento, desconocimiento e incluso recelo a la participación de las comunidades en estos procesos. Si a eso se suma que generalmente los proyectos no han sido consultados ni construidos con aquellos a los que directamente se les hace responsables de las implementaciones nos vemos con un problema mayor.

El reto planteado

Abramos canales que permitan ser mantenidos desde la cercanía, ¿conocen un proyecto que use Sugar que no tenga acompañamiento? del que no tengamos retroalimentación, por más distante siempre será posible conseguir los datos de las personas responsables de él, podemos ofrecerles la idea de convertirnos en una comunidad que los apoye, donde sus inquietudes puedan ser oídas,  donde sus aportes permitan mejorar su trabajo, podemos proponer eventos de intercambio de experiencias o de intercambio de prácticas. Facilitemos dinámicas que empoderen a los docentes pero que sirvan también a la institución. El reto es buscar lugares de intersección con las instituciones donde potenciar a los individuos y crecer como comunidad.

Finalmente, para mí, estos son nuestros “lugares comunes”. Las acciones que nos pueden permitir encontrarnos: transvesalizar, flexibilizar, favorecer microcambios que generen macrocomportamientos, tender puentes, crear comunidades sostenibles autónomas pero vinculadas, lograr apropiación tecnológica, escalar los procesos, crecer y madurar como comunidad, incluir otras experiencias, favorecer lo local, construir lo global, crecer orgánicamente…

Nuestra ventaja es que tenemos un elemento didáctico, tenemos el software, las actividades, la propuesta de interfaz, pero nuestros objetivos nos llevan más allá a pensar en el ambito pedagógico y la pregunta por como mejorar la educación siempre implica apuestas políticas, si se quiere ideológicas.  ( No lo digo yo, lo retomo de Freire, de la pedagogía de la esperanza). Pensar en personas críticas que puedan solucionar de forma creativa problemas, pensar en personas éticamente convencidas de la utilización de herramientas libres y contribuir a la construccion de una sociedad con valores dieferentes es una apuesta política. Pero en la realidad muchos son los lugares comunes y muy pocas las prácticas que nos permiten visualizarlos. Ese es el reto.

Instalando ubuntu en una xo

Mirando soluciones para tener otros sistemas operativos sobre la XO del proyecto OLPC y luego de que me lo pidieran como un favor especial. Decidí aventurarme a hacer una instalación de Ubuntu en la XO del amigo de un amigo. La instalación se realiza sobre una memoria SD.

La imagen a instalar es una adaptación de ubuntu-intrepid para la XO disponible para descarga usando este torrent.

Una vez finalizada la descarga se debe guardar el archivo OLPCFiles-intrepid-200811130.tar.bz2 en una memoria USB.

De aquí en adelante todo el proceso se puede realizar desde cualquier XO con Sugar (funcionaria igual con cualquier computador con alguna distribución GNU/Linux)

Preparación de la XO

  1. Se debe tener la clave de desarrollador de la máquina.
  2. Se debe tener instalada la versión de Sugar 8.2.0 o superior
  3. Se debe tener la versión de Firmware q2e18 o superior

Instalación de Ubuntu en la tarjeta SD

Sin que este puesta la tarjeta SD, inserte la memoria USB con el archivo OLPCFiles-intrepid-200811130.tar.bz2 en alguno de los puertos.

Inicie la actividad Terminal en Sugar.

Revise cual es el nombre de la USB. Esta operación se puede hacer de varias formas, una es ejecutar
$mount | grep /dev/sd

hasta encontrar una línea como la siguiente
/dev/sda1 on /media/USB
donde el nombre de la memoria es USB

Tenga en cuenta ese nombre, va a ser necesario más adelante.

Para los siguientes comandos se necesita que tenga acceso a la consola como root, para hacerlo escriba
$su -l
Si tiene los permisos necesarios para esta operación en lugar de $ aparecerá ahora #.

Como root, lo primero es detener el haldaemon:
#/etc/init.d/haldaemon stop

Ahora si, inserte la memoria SD. Todos los datos en la memoria se perderán en el proceso, así que vacéela antes de usarla.

Borre el MBR y la tabla de partición:
#dd if=/dev/zero of=/dev/mmcblk0 bs=4096 count=1

Haga la nueva tabla de partición:
#echo -e ‘,,L,*\n\n\n’ | sfdisk /dev/mmcblk0

Cree el sistema de archivos para el root:
#mke2fs -jLOLPCRoot /dev/mmcblk0p1

Monte el sistema de archivos y desempaque el archivo del sistema en él (recuerda el nombre de la USB?, en este paso se necesita):
#mount /dev/mmcblk0p1 /mnt
#cd /mnt
#tar xvjf /media/USB/OLPCFiles-intrepid-20081130.tar.bz2

Esta parte toma algún tiempo, cuando finalice el proceso copie la clave de desarrollador en la memoria
#cp /security/* security/

Si quiere usar el modo de ahorro de energía agresivo ejecute el comando:
touch /mnt/etc/xo-suspend/aggressive

Y listo, ahora hay que reiniciar la máquina, después de que se apague y antes de que reinicie puede quitar la USB pero no la SD.
#reboot

Si todo va bien, al reiniciar debe arrancar el nuevo sistema desde la memoria SD. Aparecerá el logo de ubuntu con el dibujo de una XO en el centro.

Inicie la sesión usando como usuario olpc y como contraseña olpcolpc

El escritorio instalado en esta versión de ubuntu es xfce.

Ya dentro del nuevo sistema es necesario cambiar la contraseña de ingreso por una nueva, hacer una actualización del sistema e instalar algunos paquetes nuevos. Para eso necesitamos conectarnos a internet. El ícono de la conexión se encuentra en la barra de abajo al pie de los escritorios. Una vez conectados para hacer la actualización y demás tareas pendientes nuevamente vamos a utilizar la terminal. En este caso, la barra de acceso a las aplicaciones está en la parte superior al centro, hay un vínculo directo al terminal ahí.

Para cambiar la contraseña de ingreso

$passwd
Ingrese la contraseña actual olpcolpc e ingrese dos veces la nueva contraseña.

Para la actualización
$sudo aptitude update
$sudo aptitude safe-upgrade
$sudo aptitude reinstall ssl-cert
$sudo aptitude clean
$sudo /etc/init.d/cups start
$mkdir .mplayer
$echo -e ‘vo=sdl\nframedrop=1\nlavdopts=skiploopfilter=all:fast=1’ > .mplayer/config
$exit

Para instalar paquetes nuevos se utiliza la orden sudo aptitud install. Por ejemplo, algo útil para instalar es el plugin de flash y el de java para las páginas web que lo necesiten.
$sudo aptitud install flashplugin-nonfree
$sudo ln -s /etc/alternatives/firefox-flashplugin /usr/lib/firefox-addons/plugins/flashplugin-alternative.so
$sudo aptitud install sun-java6-plugin

De la misma forma se pueden instalar otros programas (gimp, inkscape, msttcorefonts, openoffice, etc). Hay que revisar el espacio disponible en la SD para no quedarse sin espacio. Eso se puede hacer con el comando
$df -l

Y eso es todo, al finalizar el proceso se tiene una instalación funcional de ubuntu en la XO. Si se quiere volver a usar Sugar, sólo basta apagar la máquina, remover la memoria SD y volver a prenderla.

Las instrucciones originales de la instaalción de ubuntu en la Xo fueron publicadas inicialmente en este foro de olpcnews, mis agradecimientos a teapot por su excelente documentación.

Lo prometido es deuda

Hace más de un mes me comprometí a hacer una artículo sobre el software libre y sobre sugar para la mesa social por la educación. Un grupo de representante de organizaciones inquietas por el tema educativo que están apostando a la construcción de un proyecto pedagógico alternativo.

Más allá de las mis filiaciones particulares con este proyecto me pareció importante el ejercicio de escribir sobre las cosas en las que he estado trabajando durante los últimos 3 años. Sobre todo por que a pesar de que he dado charlas en muchos eventos y de que hemos discutido muchas veces sobre OLPC, Sugar, Sugar Labs referidos como casos concretos de uso de Software Libre en Educación con la mayoría de las personas cercanas, son muy pocos los textos documentales dejados en concreto. Salvo los correos de la lista de olpc-sur y algunos de Colibri es poco lo que puedo decir que he elaborado de forma escrita sobre el tema.

Así que este es mi primer ensayo. Lo dejo a la consideración amable de los que pasen por este blog en la casilla de documentos compartidos.

Luego de ver la reseña en el blog de Tomeu,  dejo el artículo Sugar, usando Software libre para aprender disponible sin la necesidad de pasar por flash.