Archive | web RSS feed for this section

TweetMix

Hagamos un recuento desordenado de TweetMix. La idea se me ocurrió hace un par de semanas: coger un “chat-bot“, alimentarlo con los tweets de un usuario y ponerlo a decir bobadas. El chat-bot que usé fue escrito en perl y funciona al estilo de mega-hal, un viejo chat-bot con el que Alejo, Javier y yo jugabamos hace ya mas de diez años, cuando el internet todavía tenía gracia. Si quieren documentarse al respecto pueden buscar por cadenas de Markov. Hice una primera implementación en alrededor de una hora, usando bash, el API sin autenticación de twitter y unas cuantas herramientas de linea de comando de unix (curl, recode, cut, etc). La idea resulto buena y al cabo de un par de horas ya cerca de 150 personas le estaban sacando incongruencias a sus cerebros artificiales.

Twitter solo permite un numero limitado de hits por hora, lo que se convirtió en el primer obstaculo para que más gente usara el sitio. Muy rápido, la aplicación estaba llegando al limite en cada intervalo, así que tuve que apagarla. Decidí hacer una implementación que superara esta limitación para de paso jugar con las técnicas asociadas. Escribí entonces una nueva implementacion en lisp, usando una librería de oauth. En pocas palabras, esto permite acceder a twitter a nombre de cada usuario, multiplicando así el limite de hits por hora por el número de usuarios. Como no hay nada complicado en el programa, en unos dias de trabajo muy esporadico saque una nueva version, que volvió a tener bastante exito.

El siguiente obstaculo fue hacer el programa suficientemente robusto para soportar la alta demanda. El problema aqui era que obtener los datos de twitter y transformarlos y procesarlos es un proceso que toma tiempo y que se realiza en un proceso aparte, un llamado a perl. Esto hacia que el servidor web de lisp despachara demasiados hilos, lo que estaba terminando mal. Aplicamos entonces dos ideas. La primera fue idea de fidel: en vez de generar una frase por cada request, generar bastantes de un solo golpe e irlos consumiendo poco a poco. Así disminuimos drasticamente el número de procesos a lanzar por cada carga de la página. Comenzamos a usar redis para guardar los mixs en vez de tenerlos en el espacio de memoria del servidor web. La segunda idea fue extraer del servidor web el proceso de obtención y procesamiento de los tweets de cada usuario. Asi, cuando un usuario nuevo llega, el servidor web pone en una cola el nombre del usuario y uno (o varios) proceso aparte va tratando los diferentes nombres de la cola. Aprovechamos el redis para implementar la cola de demandas. De esa manera mantenemos bajo control el número de procesos y liberamos al servidor web de los problemas asociados con ese tratamiento. El código de tratamiento de tweets lo re-escribió Fidel en Perl. Algo que hay que notar es que los llamados a twitter fallan muy muy frecuentemente. La alta frecuencia de este tipo de problemas (los errores al llamar a un servicio exterior) es una de las dificultades particulares que enfrenta el programador en la red.

En paralelo, Juan Diego hizo un excelente diseño que es el que usamos actualmente.

Luego de un estallido de popularidad inicial, las visitas han bajado bastante, pero el uso sigue siendo importante. A la gente le gusta. Creo que puede volverse mas popular aún.

Viendo por encima, es un programa muy muy sencillo, pero que de cierta manera ilustra bien el tipo de estrategia que se puede usar en sitios de alto tráfico. Cosas cheveres que se descubrieron: redis y oauth. Igualmente he podido jugar con los amazon web-services, que me parecen bastante prácticos y muy bien implementados, pero ligeramente caros (sobre todo el costo en ancho de banda de S3).

Fin de gacetilla

Hace unos años Javier, Fidel, Juan Diego y yo creamos Gacetilla, un sitio para compartir noticias sobre Colombia. Hoy lo estamos cerrando oficialmente. Hemos pensado detener la aplicacion web y publicar todo el contenido de gacetilla  como páginas estáticas. Lo que queriamos con Gacetilla era reunir en un solo lugar las noticias elegidas por los usuarios. También esperabamos que se generara discusión alrededor de esas noticias. Desafortunadamente Gacetilla nunca logró levantar una comunidad animada de usuarios y un sitio como gacetilla es una comunidad o no es nada.

Me queda la impresion de que una noticia es interesante solo si hay mucha gente hablando de ella, independiente de si es una noticia importante o no. En esto radica el verdadero poder de los medios tradicionales, en elegir de cuales temas la gente habla y de cuales temas no. Poco importa la posición oficial del medio sobre los temas elegidos.

SEO: el nuevo anti-virus

Ayer un amigo me estuvo dando consejos para mejorar la posición de mis páginas en el indice de Google.  Escuché estas recomendaciones con atención porque:

  1. Una página solo es visitada si tiene una buena posición en Google
  2. Para tener una buena posición en google hoy en día, una página modesta necesita valerse de todas las astucias posibles.

La mayoria de estas recomendaciones tienen que ver con detalles de cuando, como y donde usar diferentes elementos de las páginas HTML, es decir, detallitos menores cuya única importancia es la de tener influencia en los algoritmos que se ejecutan secretamente en los servidores del titán de internet.

Hay toda una industria millonaria alrededor del SEO y se me ocurre que de cierta manera se parece a la industria de los anti-virus hace unos 15 años. Representan un gasto de recursos y energias que no crean ningun valor intrinseco otro que el de llenar un hueco abierto por las falencias del sistema dominante del momento.

Sobre este tema, que se conoce como Search Engine Optimisation, ya había escrito en el pasado.

Powered by WordPress. Designed by Woo Themes