Juanjo Conti: Reactivé el bot @jjsaer

Saer en Twitter

Desde hace algunos años mantengo un bot en Twitter que cita a Juan José Saer.

Hace algunas semanas, cuando la notebook que servía de servidor para esta aplicación se rompió, Saer dejó de twittear.

Hoy aproveché el día para acomodar un poco su código fuente y moverlo a un servidor de verdad.

La lista completa de las citas que va posteando está en saertweets.txt. ¡Se aceptan nuevas citas para agregar! Incluso, cualquiera puede usar este pequeño programa para crear un bot de cualquier escritor o de cualquier cosa. Si no son programadores y necesitan ayuda para hacerlo funcionar, me avisan.

Juanjo Conti: Las últimas cuatro novelas que leí

Las últimas cuatro novelas que leí fueron escritas por personas con las que, de una u otra forma, tengo trato. No me había dado cuenta de eso hasta hoy.

La primera de las cuatro fue Chamamé, de Leonardo Oyola. Pude conocer al autor en persona y que me dedicó la novela mientras la estaba leyendo. El libro es difícil de conseguir en Argentina. Se lo compré a Eterna Cadencia por mail.

Chamamé

Dedicatoria

Luego, en la misma ciudad que fue escrita y pocos días después de compartir un SLAM con el autor, devoré La más importante de todas las historias, de Diego Arbit. Se lo compré al autor en mano. La di de alta en Goodreads.

La más importante de todas las historias

Apenas terminada la anterior, me metí con Todavía no cumplí cincuenta y ya estoy muerto, de Javier Chiabrando. Policial erótico. El autor nació en mi pueblo, pero nunca lo vi en persona. El título del libro se me había quedado grabado luego de ver una entrevista que le hicieron en canal 7. Compré el libro usado en Internet.

Todavía no cumplí cincuenta y ya estoy muerto

La última de este periodo de lectura fue El peor amigo del mundo, de Rafael Fernández. Novela de la cual soy un orgulloso mecenas y cuyo crecimiento seguí por Internet. También la di de alta en Goodreads.

IMG_3374 El peor amigo del mundo

 

Cuatro novelas que recomiendo.

Gonzalo Martinez: WebSocket Server Escalable Software

Pareciera que los servicios de WebSocket en la nube están de moda. Muchos proyectos proveen una abstracción sobre los websockets con un modelo de pago por transacción que además parece ser bastante caro es masomenos entendible por que diseñar un servicio de WebSocket o de Publish/Subscribe parecería bastente dificil en principio pero no es más dificil que armar una API Rest sin framework hoy en día. Algunos datos del software que creo necesario para lograr hacer un WebSocket server escalable en Python obviamente ya que es el lenguaje que nos gusta en este Blog.

Tornado[0], es un Framework para hacer aplicaciones Web principalmente pero también es muy conocido por tener una clase para manejo de WebSockets y hay benchmarks que lo comparan en velocidad de respuesta con nodejs un muy conocido lenguaje de programación basado en el motor v8 sobre el que corre javascript en los browsers. [1]

SockJS[2], es principalmente una libreria de javascript que emula el funcionamiento de WebSockets intentando dar la mayor compatibilidad con los browsers a la vez que intenta mantener una interfaz muy similar al WebSocket puro. El único que inconveniente en principio es que para implementar sockjs y aprovechar todas sus caracteristicas se necesita una implementación del lado del servidor.

sockjs-tornado[3], es una libreria que implementar sockjs sobre un servidor tornado, esto se hace cambiando la clase de la que se hereda el WebSocketHandler.

redis [4], es un base de datos en memoria que utiliza como estructura principal key-value, donde las peticiones son hechas a traves de una clave y devuelven un valor, muy util para utilizar como cache. Pero en el caso de un WebSocket server vamos a usar una de sus caracteristicas como Publish/Subscribe [5].

Antes de terminar con las tecnologias a usar voy contarles por que necesitamos un server con la modalidad de Publish/Subscribe. Una aplicación web masomenos bien diseñada puede escalar horizontalmente [6][7], gracias a que hay un tercero donde comparten la información, y esa es la base de datos comunmente relacional del tipo SQL. En cuanto al WebSocket cada conexión hecha contra un servidor puede (en su implementación normal) solamente comunicarse con otros websockets dentro del mismo servidor por eso la única manera para hablar entre diferentes servidores es agregando a un tercero que maneje algo parecido a canales de comunicación y a eso viene la funcionalidad de Publish/Subscribe, que nos ofrece tener canales donde dos servidores o más  pueden publicar y subscribirse y al subscribirse recibiran todos los mensajes que vayan a ese canal. De esa manera podemos levantar n servers sabiendo que todos los websockets aunque estén distribuidos si se subscriben al canal adecuado van a recibir los mensajes que les corresponden.

tornado-redis[8] es una implementación de redis para tornado, lo que permite generar un solo cliente por instancia de tornado y manejar las subscripciones desde ahí, además, tiene una clase de abstracción para manejar subscripciones basadas en sockjs-tornado[9]

Y eso creo que es todo ya tenemos todo un hermoso Stack de tecnologias para empezar a desarrollar nuestra aplicación web basada en Sockets ahora es cuestión de juntar todo y ponerse a escribir código.

[0] http://tornadoweb.org/
[1] http://swizec.com/blog/benchmarking-node-tornado-and-django-for-concurrency/swizec/1616
[2] http://sockjs.org/
[3] https://github.com/MrJoes/sockjs-tornado
[4] http://redis.io/
[5] http://redis.io/topics/pubsub
[6] http://blog.deploshark.com.ar/2014/01/otros-atributos-de-calidad-capitulo-12.html
[7] http://es.wikipedia.org/wiki/Escalabilidad#Escalabilidad_horizontal
[8] https://github.com/leporo/tornado-redis/
[9] https://github.com/leporo/tornado-redis#pubsub

Marcelo Fernández: Fedora Day Buenos Aires 2014

La comunidad Fedora Argentina se complace en anunciar el evento más importante de Fedora en el país hasta el momento:

¡El Sábado 13 de Diciembre los esperamos en la UTN de Medrano 951, CABA, para celebrar el Fedora Day!

Será un día con charlas de varios ponentes de Argentina y Latinoamérica, donde se hablará del futuro de la distribución y de varias tecnologías como Ovirt, Docker, Openshift, etc. También estaremos celebrando el Release Party de la nueva versión de Fedora, Fedora 21, ¡con la posibilidad de instalarlo en sus computadoras o en un pendrive para llevarlo!

Si desean participar en el evento no duden en registrarse de forma gratuita en el siguiente link [1].

También iremos actualizando la información del Fedora Day en la página oficial [2] y en la wiki de Fedora [3].

Si estás interesado en dar una charla sobre «inserte tema aquí» relacionado con Fedora no dudes en registrarte en nuestra lista de correos [4] y enviarnos tu propuesta.

En Fedora es muy importante para nosotros la comunidad y es por eso que estamos buscando nuevos colaboradores. Si estás interesado, no te pierdas nuestras charlas al respecto o acercate a cualquier colaborador el día del evento.

Ante cualquier duda o consulta por favor contactate con Matías <delete@fedoraproject.org> o con Rino <villadalmine@fedoraproject.org>

¡¡¡Los esperamos!!!

Saludos,
Fedora Argentina

1. http://goo.gl/zYsClS
2. http://fedoraday.com
3. https://fedoraproject.org/wiki/Fedora_Day_Buenos_Aires_2014
4. https://lists.fedoraproject.org/mailman/listinfo/argentina

Marcelo Fernández: Fedora Day Buenos Aires 2014

La comunidad Fedora Argentina se complace en anunciar el evento más importante de Fedora en el país hasta el momento:

¡El Sábado 13 de Diciembre los esperamos en la UTN de Medrano 951, CABA, para celebrar el Fedora Day!

Será un día con charlas de varios ponentes de Argentina y Latinoamérica, donde se hablará del futuro de la distribución y de varias tecnologías como Ovirt, Docker, Openshift, etc. También estaremos celebrando el Release Party de la nueva versión de Fedora, Fedora 21, ¡con la posibilidad de instalarlo en sus computadoras o en un pendrive para llevarlo!

Si desean participar en el evento no duden en registrarse de forma gratuita en el siguiente link [1].

También iremos actualizando la información del Fedora Day en la página oficial [2] y en la wiki de Fedora [3].

Si estás interesado en dar una charla sobre “inserte tema aquí” relacionado con Fedora no dudes en registrarte en nuestra lista de correos [4] y enviarnos tu propuesta.

En Fedora es muy importante para nosotros la comunidad y es por eso que estamos buscando nuevos colaboradores. Si estás interesado, no te pierdas nuestras charlas al respecto o acercate a cualquier colaborador el día del evento.

Ante cualquier duda o consulta por favor contactate con Matías <delete@fedoraproject.org> o con Rino <villadalmine@fedoraproject.org>

¡¡¡Los esperamos!!!

Saludos,
Fedora Argentina

1. http://goo.gl/zYsClS
2. http://fedoraday.com
3. https://fedoraproject.org/wiki/Fedora_Day_Buenos_Aires_2014
4. https://lists.fedoraproject.org/mailman/listinfo/argentina

Martín Gaitán: Las cosas chiquitas que cambian el mundo

Nota

Tengo dos weblogs. Este es en el que escribo artículos técnicos o que tienen que ver de alguna manera con mi profesión. Textos y pretextos es igual de personal, pero me sale —me sale cada vez menos, tristemente— de otras tripas, quizás para otro público.

Sin embargo, quiero hacer una excepción con este post, porque probablemente tenga más alcance aquí y es algo que me atraviesa todas las facetas: las ganas de hacer de este que pisamos, un mejor mundo.

Desde el 2005, a las poquitas semanas de haberme venido a vivir a Córdoba, hasta no sé que día del 2012, cada sábado de todas las semanas del año, me tomé dos bondis (o uno, cuando me iba a pata hasta el centro), para llegar a Campo de La Ribera. Mazamorra, la agrupación, fue mi espacio de militancia, mi usina de amistad, mi cobijo del dar y recibir. Sobre todo del recibir.

Nota

El dominio está caído, pero refloté un backup de la web acá

Enseñé a multiplicar, salté la soga, hice barriletes, leí cuentos, metí goles con pelotas improvisadas, los relaté, discutí mucho, reí mucho más, escuché, aprendí. Recibí el pan, el mate y el abrazo de muchas familias, en sus ranchos sin lujos, rebalzados de ganas de devolver amor con más amor. Fui payaso, serigrafista y amigo. Conocí niños que hoy, adultos, van a ser papás. Todavía nos vemos, conversamos, algunos vienen a mi casa de vez en cuando, a veces voy yo.

Muchos de esos compañeros y compañeras y, sobre todo, los vecinos y vecinas de Campo de la Ribera, siguen metiéndole el tiempo, el ingenio y el amor perseverante a esas cosas chiquitas, que son las que cambian el mundo.

Son cosas chiquitas. No acaban con la pobreza no nos sacan del subdesarrollo, no socializan los medios de producción y de cambio, no expropian las cuevas de Alí Babá. Pero quizá desencadenen la alegría de hacer, y la traduzcan en actos. Y al fin y al cabo, actuar sobre la realidad y cambiarla aunque sea un poquito, es la única manera de probar que la realidad es transformable.

—Eduardo Galeano

Durante muchos años, el anhelo de la organización fue tener un espacio físico, un lugar de encuentro en el barrio que permita no sólo mejorar las condiciones para realizar actividades (como el apoyo escolar o la copa de leche), sino profundizar la relación con los vecinos y su participación, que es, claro está, el objetivo primordial.

Por diversas razones organizativas o rispideces con los poderes fácticos del barrio (punteros/narcos), ese objetivo se fue postergando año tras año.

Pero ahora existe, es un sueño redondo y grande, que ya casi despierta: el Domo de Campo de la Ribera.

Hacen falta $15.000 (quince mil pesos) para terminar de techarlo y ponerlo en condiciones, para que en el 2015 se siga transformando, mejorando con fuerza, desde ese barrio de Córdoba, este mundo que pisamos.

Podés donar con tarjeta de crédito u otros medios de pagos desde esta página.

¡Lo que puedas será bienvenido!

Martín Gaitán: Las cosas chiquitas que cambian el mundo

Nota

Tengo dos weblogs. Este es en el que escribo artículos técnicos o que tienen que ver de alguna manera con mi profesión. Textos y pretextos es igual de personal, pero me sale —me sale cada vez menos, tristemente— de otras tripas, quizás para otro público.

Sin embargo, quiero hacer una excepción con este post, porque probablemente tenga más alcance aquí y es algo que me atraviesa todas las facetas: las ganas de hacer de este que pisamos, un mejor mundo.

Desde el 2005, a las poquitas semanas de haberme venido a vivir a Córdoba, hasta no sé que día del 2012, cada sábado de todas las semanas del año, me tomé dos bondis (o uno, cuando me iba a pata hasta el centro), para llegar a Campo de La Ribera. Mazamorra, la agrupación, fue mi espacio de militancia, mi usina de amistad, mi cobijo del dar y recibir. Sobre todo del recibir.

Nota

El dominio está caído, pero refloté un backup de la web acá

Enseñé a multiplicar, salté la soga, hice barriletes, leí cuentos, metí goles con pelotas improvisadas, los relaté, discutí mucho, reí mucho más, escuché, aprendí. Recibí el pan, el mate y el abrazo de muchas familias, en sus ranchos sin lujos, rebalzados de ganas de devolver amor con más amor. Fui payaso, serigrafista y amigo. Conocí niños que hoy, adultos, van a ser papás. Todavía nos vemos, conversamos, algunos vienen a mi casa de vez en cuando, a veces voy yo.

Muchos de esos compañeros y compañeras y, sobre todo, los vecinos y vecinas de Campo de la Ribera, siguen metiéndole el tiempo, el ingenio y el amor perseverante a esas cosas chiquitas, que son las que cambian el mundo.

Son cosas chiquitas. No acaban con la pobreza no nos sacan del subdesarrollo, no socializan los medios de producción y de cambio, no expropian las cuevas de Alí Babá. Pero quizá desencadenen la alegría de hacer, y la traduzcan en actos. Y al fin y al cabo, actuar sobre la realidad y cambiarla aunque sea un poquito, es la única manera de probar que la realidad es transformable.

—Eduardo Galeano

Durante muchos años, el anhelo de la organización fue tener un espacio físico, un lugar de encuentro en el barrio que permita no sólo mejorar las condiciones para realizar actividades (como el apoyo escolar o la copa de leche), sino profundizar la relación con los vecinos y su participación, que es, claro está, el objetivo primordial.

Por diversas razones organizativas o rispideces con los poderes fácticos del barrio (punteros/narcos), ese objetivo se fue postergando año tras año.

Pero ahora existe, es un sueño redondo y grande, que ya casi despierta: el Domo de Campo de la Ribera.

Hacen falta $15.000 (quince mil pesos) para terminar de techarlo y ponerlo en condiciones, para que en el 2015 se siga transformando, mejorando con fuerza, desde ese barrio de Córdoba, este mundo que pisamos.

Podés donar con tarjeta de crédito u otros medios de pagos desde esta página.

¡Lo que puedas será bienvenido!

Mariano Guerra: Overtone, clojure, jackd, alsa in ubuntu 14.10

ok, this is a small dump of what I did, I'm surely missing some stuff and surely it won't work as is for you, but maybe it does and you are as happy as I'm right now generating noise (not as happy as anyone close to me at this moment).

all the things I think I installed:

sudo apt install alsa-tools alsaplayer-jack alsa-utils pulseaudio-module-jack supercollider jack-tools fftw3 qjackctl openjdk-8-jdk

yes, you can see the desperation there with some stuff that may not make sense, but at least it works..

you need to install leiningen, it's really easy and it has good instructions on the site so I won't go into details, just follow the instructions here: http://leiningen.org/

then I follow the instructions from overtone's wiki here:

https://github.com/overtone/overtone/wiki/Installing-overtone

before starting our repl and rocking like a hurricane we need to kill pulseaudio and start jack, it sounds easier than it is because pulseaudio just won't stay dead :(

the way I found to make it work was to edit pulseadio client.conf:

sudo vim /etc/pulse/client.conf

uncomment the line (remove the semicolon):

; autospawn = yes

and leaving it like this:

autospawn = no

I added myself to the audio group, not sure if it's required but just in case:

sudo adduser $USER audio

for this to take effect you need to logout and login again, to make sure you have the group, open a terminal and run:

groups

you should see audio between some other groups, if you can't see it try rebooting or replacing $USER with your actual username in the adduser command.

now stop pulseaudio:

pulseaudio --kill

then start jackd, I tried all the combinations I could find on the internet without success, this is the one that worked for me:

jackd -R -d alsa -d hw:1

if that doesn't work try:

jackd -R -d alsa

or try the versions that are recommended on the overtone wiki:

jackd -r -d alsa -r 44100

or:

jackd -r -d alsa -r 44100 -P

you can also try running qjackctl and play with the settings to see if you have luck.

now that we (hopefully) have jackd running, we can start playing with overtone, here is a small dump of a session:

lein new tutorial
cd tutorial

# add [overtone "0.9.1"] to :dependencies
vim project.clj

lein deps
lein repl

# inside the clojure repl
user=> (use 'overtone.live)
user=> (definst foo [] (saw 220))
#<instrument: foo>
user=> (foo)
#<synth-node[loading]: user/foo 35>
user=> (kill 35)

when you are done you can stop jackd from the ui or from the shell however you started it and start again pulseaudio:

pulseaudio --start

some additional note, when I'm using jackd I can't set the volume from the media keys or the sound mixer in the top planel, I run:

alsamixer

press F6, select the output I'm using and change it with the keys (ESC to close).

hope it's useful for someone.

Alberto Paparelli: PyCon-Ar 2014

Paso otra PyCon en Argentina, la sexta. Esta vez fue en Rafaela, Santa Fe.

Llegamos el Jueves a la tarde, por lo que ese día solo participe del sprint de la nueva web de pyar. Hice unos commits, pero no hubo mucho tiempo como para poder aportar mas.

El Viernes y Jueves fueron de charlas. Entre las que más me gustaron estan:

  • Tu propio cliente de Torrent streaming en Python (Por Felipe Lerena y GiLgAmEzH)
  • Django Security quick-wins (Por Andrés Riancho)
  • Prediciendo el mundial con inteligencia artificial (Por Juan Pedro Fisanotti)
  • Trabajando de forma asíncronica en Django/Python (Por Martín Alderete)
Foto grupal PyCon-AR 2014

De las charlas relámpago, me gusto mucho el cuento de Juanjo Conti, que me hizo acordar mucho al estilo de Hernán Casciari.

Con respecto al lugar (Rafaela), es lindo, aunque hay muy poco para hacer y recorrer.