Archive | tecnología RSS feed for this section

Atrapado en Gmail

Cada vez me pica más depender tanto tener una cuenta de email dependiente de google [1]. Cambiar de dirección de email hoy en día sería jartísimo pero entre más tiempo pasé será cada vez peor. Hay dos obstaculos grandes, el más importante es que mi dirección de gmail es la que conoce todo el mundo y esta registrada en toda clase de servicios (de internet y fuera de internet). Me es imposible dejar de atender esa direccion de email, al menos por un tiempo bien largo y al mismo tiempo atender dos “inboxs” me parece jartisimo. El segundo obstaculo es que los servicios de email que he mirado y que me permiten usar mi propio nombre de dominio me parecen inferiores a gmail en varias cosas importantes (sobre todo en seguridad).

A menos que se me ocurra alguna solución razonable, me tocará dejar las cosas como están.

P.S. : me di cuenta que puedo agregar varios dominios a mi cuenta de Google Apps gratuita, asi que ya cree sergio at crazyrobot punto net, con forward a mi cuenta en gmail. Ahora tengo que decidirme a hacer el trabajo de ir migrando todo hacia esa cuenta.

[1] http://www.reddit.com/r/firstworldproblems/

 

 

google, seguridad, “two-phase authentication”, etc

Además de su motor de busqueda, también uso mucho los siguientes servicios de Google:

El más importante de estos servicios para mi es google mail, en el que tengo mi única cuenta de correo. Algo que hace especialmente importante esa cuenta es que, como todo el mundo, tengo un montón de cuentas en diferentes servicios que estan asociadas a esa dirección de email. Es decir, si alguien tomara el control de mi cuenta de correo tendría también el control del resto de mis cuentas en internet. (el hecho de que las cuentas de correo se hayan convertido en el “single point of failure” de la actividad digital de casi todo el mundo es un tema que da para otro post).

Debido a eso, desde hace un rato estoy usando el servicio de 2-step authentication de google que obliga no solo a teclear la contraseña sino también un número clave enviado a mi teléfono celular cada vez que quiero conectarme al correo. El aumento en la seguridad es obvio. Algo que me molesta sin embargo es que para poder usar el resto de los servicios de google necesito seguir el mismo procedimiento, lo cual es fastidioso si uno usa bastante computadores diferentes y relativamente inseguros. Por eso finalmente dejé la pereza y creé una segunda cuenta en google, sin 2-step authentication, para usar todos los servicios de google aparte del email. Lo ideal sin embargo sería que google permitiera gestionar el 2-step authentication con una mayor granularidad.

Conceptos

Cyber-Utopianism : “A naîve belief in the emancipatory nature of online communication that rests on a stubborn refusal to acknowledge its downside” (Evgeny Morozov)

Californian Ideology : “The Californian Ideology is a set of beliefs combining bohemian and anti-authoritarian attitudes from the counterculture of the 1960s with techno-utopianism and support for neoliberal economic policies. These beliefs are thought by some to have been characteristic of the culture of the IT industry in Silicon Valley and the West Coast of the United States during the dot-com bubble of the 1990s.” (Wikipedia)

Twitter, caso de estudio

Hace poco Twitter anunció nuevas medidas que restringen el desarrollo de aplicaciones basadas en su infraestructura por parte de terceros, sepultando cualquier ilusión que pudiera haber sobre Twitter como plataforma abierta.

Este desenlace, aunque decepcionante, no es sorprendente. Como muchos otros negocios en internet, Twitter adoptó la premisa de “crecer rapido, preocuparse por la plata despues”, financiandose con capital de riesgo. Ahora es el momento de hacer plata y este tipo de inversión exige que Twitter no solo tenga que hacer plata sino que tiene que ser mucha. Como no hay un millón de maneras distintas a vender pauta cuando se ofrece un servicio gratuito, Twitter debe proteger a toda costa su control sobre la manera como los usuarios acceden a la información. Para eso necesitan que los usuarios usen solo los programas oficiales y no el programita de fulano de tal, que podría, por ejemplo, no mostrar los tweets de propaganda.

Lo que es triste es que twitter inicialmente fomentó el desarrollo de un ecosistema de aplicaciones que, mal que bien, ayudó a que Twitter llegara a ser tan popular. Hoy en día, ¿Qué le importa a Twitter que unos cuantos ñoños estén bravos si tienen a Lady Gaga y a Justin Bieber?

Ojalá algún día alguien encuentre la manera de hacer que un sistema no centralizado* de “microblogging” sea tan cómodo de usar como lo es twitter actualmente. Mientras tanto, surgen “clubs exclusivos” estilo app.net, que prometen tratar con respeto a los usuarios (a cambio de que les paguen). Personalmente dudo que funcionen.

* como TCP/IP, como la web, como el email.

Commodore 64

El primer computador que usé con algo de conciencia fue un Commodore 64. Uno de los multiples eslabones de la cadena evolutiva que transformó al ordenador primitivo en el aparato domesticado y aséptico que es hoy en día. El commodore 64 era una especie de teclado que se conectaba al televisor. No había mouse. Era posible conectarle una unidad de lectura de discos (Diskettes de 5.25 pulgadas. Dysan, por favor). Cuando uno prendía el Commodore lo primero que veía era unos mensajes informando que se disponía de 64 kilobytes de memoria (de los cuales 32 ya estaban siendo usados por el sistema operativo). Y luego uno se quedaba sólo en la linea de comandos.

Con Fidel nos la pasamos muchos fines de semana transcribiendo programas en Basic, sacados de libros que vendían en la Librería Nacional. A pesar de que ya iba muy adelante en el camino hacia su uso masivo en los hogares, el computador todavía se concebía antes que nada como una máquina programable. No se notaba mayor esfuerzo en disfrazar al computador de algo distinto a eso. Al usuario no se le trataba como alguién al que hubiese que proteger de las asperezas de una máquina abierta y compleja.

A cada cual sus nostalgias. Mi primer carro lo compré hace solo dos años. Es un mazda 5. Solo abro el capot para cambiar el líquido de los parabrisas, nunca se me ocurriría meterle la mano a nada más.

Presencia pasiva en las redes sociales

Las “redes sociales” se están conviertiendo en los sitios donde ocurren todas las conversaciónes en internet. Pienso, como muchos otros, que sería mas sano que las conversaciones ocurrieran en blogs y paginas personales. Varios personas que conozco estan dejando de usar las redes sociales y yo he pensando varias veces hacer lo mismo. De Facebook cada vez me interesa menos participar en discusiones, ni mantener al día mi información personal ni lista de contactos, ni enterarme por ese medio de las “noticias” de los demás, etc. Sin embargo, mantengo abierta mi cuenta porque me parece util que la gente pueda encontrarme facilmente y escribirme mensajes si así lo desean.

Esta mañana estaba pensando que en vez de cerrar completamente la cuenta, podria simplemente dejar de usarla y poner un mensaje con el url de mi blog. Esto sin embargo deja abierto el problema de que la gente podria seguir escribiendome por facebook, agregando informacion sobre mi (contactos, tagging), etc, lo cual me obliga a estar pendiente de mi cuenta. Estaba pensando que en las redes sociales uno deberia poder reclamar su identidad sin tener que participar en los demás servicios, y que esto deberia ser soportado tecnicamente por la red social. Es decir, uno deberia poder existir en facebook sin que la gente asuma que uno usa facebook. En este modo de utilización, los demas usuarios de facebook deberian ser capaces de encontrarme, pero no deberian poder enviarme mensajes ni agregarme a su lista de contactos, etc. Simplemente podrian ver algún mensaje de mi parte (por ejemplo el url a mi pagina personal, o a otra red social en la que sí participe). Supongo que no hay mayor incentivo para las redes sociales hoy en día en soportar esta idea. Es posible que la distincion entre “google+” y “google profiles” de cierta manera se asemeje a esto, pero no he mirado realmente.

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).

‘Tinkering’, bricolaje, cacharreo

Los usuarios de computador necesitan conocer cada vez menos la manera como un computador funciona. Si las tripas de la máquina se vuelven cada día más invisible, esto se debe a que el usuario puede ahora controlar el computador usando interfaces gráficas avanzadas. Estas interfaces permiten controlar el computador usando imagenes que representan objetos fisicos (botones, ventanas, etc).

Comparemos esto con lo que había hace un par de decadas. En ese entonces, el usuario controlaba el computador escribiendo comandos que la máquina ejecutaba. Pienso por ejemplo en el Commodore 64 en el cual para cargar y ejecutar el primer programa de un diskette había que escribir:


load "*", 8, 1

… algo que parecía (y parece) brujería.

En los primeros PCs, que usaban el sistema operativo DOS, los usuarios tambien tenían que escribir comandos. También había que entender, más que ahora, detalles sobre los archivos y los directorios.

Aunque uno puede encontrar primitivas esas interfaces, algo bueno que tenían era que exponían el computador como lo que es: una máquina programable. El commodore 64 por ejemplo venía con un interprete de basic a disposición del usuario apenas éste prendía el computador. A punta de jugar con los diferentes comandos que aparecían en el manual, un niño podía comenzar a intentar cambiar una o dos cosas y luego a leer mas a fondo los manuales para entender como hacer cosas mas avanzadas. Creo que gracias a eso, miles de niños y jovenes aprendieron los rudimentos de la programación. Todo a punta de “cacharrear” la maquina, urgando aquí y alla. Eran máquinas que no intentaban esconder gran cosa, todo lo opuesto a, digamos, el iPhone.

La claridad que tenía la gente del computador como una máquina programable se veía reflejada también en los libros. Algo chevere por ejemplo erán los libros que contenian juegos en basic para que los niños los copiaran en sus commodores 64. Creo que ya no existe nada parecido. Ahora la noción de programador y usuario están claramente separadas.

El mundo del “cacharreo” informatico hoy en día se ha desplazado (como todo) de los computadores personales a la web. Debe haber mucha gente que a aprendido a programar siguiendo el siguiente camino: copiar un manojo de HTML para crear una página web. Cambiar una o dos cosas. Aprender un poco mas de HTML y finalmente aprender PHP para poder generar páginas dinámicas.

P.S.: Acabo de leer este excelente artículo de Cory Doctorow sobre el iPad. Es relacionado con los temas que toca este post.

Twitter: “as simple as possible, but not simpler”

twitter

Personas como Dave Winer creen que definitivamente hay algo en twitter que vale la pena pero que twitter, tal como lo conocemos, será reemplazado en el corto o mediano plazo por algo “parecido pero mejor”. Una de las razones por las que Winer considera que twitter no puede seguir siendo el sistema de “twitting” es su arquitectura centralizada (mas bien anti-web). Otras personas consideran que es demasiado limitado y que le faltan X, Y y Z funcionalidades.

Yo tengo la sospecha de que Twitter va a seguir siendo el sistema que es, con muy pocas variaciones, y que no será reemplazado por nada “mejor” durante un buen tiempo. Mi sentimiento es que twitter está en un punto perfecto de simplicidad, un punto tal que el usuario le perdonará inconcientemente cualquier limitación siempre y cuando siga siendo tan facil de usar.

Me ha gustado la manera como ha evolucionado twitter. Practicamente solo ha añadido al sistema conceptos que ya habian surgido de manera espontanea entre los usuarios, como la referencia a otro usuario (usando “@”) o el concepto de “retweet” (“RT”).

Otra cosa buena de twitter es que a pesar de ser centralizado, ha ofrecido interfaces de programación tremendamente sencillas para construir aplicaciones independientes sobre twitter, lo cual ha dado lugar a un gran ecosistema alrededor que va a hacer dificil de hacer migrar a otro sistema.

En fin, twitter es un ejemplo de como la simplicidad y las APIs abiertas pagan.

Sobre la metida de pata de Buzz

Google metió la pata en su lanzamiento de Buzz (una especie de servicio de mensajeria estilo twitter): los contactos mas “cercanos” de un usuario quedaban visibles para todos justo después de activar la cuenta y hasta no cambiar las preferencias para evitarlo. Esta información hace parte de lo que mucha gente considera como información personal y es dificil entender como en Google pudieron decidir que era una buena idea exponerla de esa manera. Siendo malicioso uno podría pensar que es un cálculo acertado de la parte de Google, a la mayoría de la gente esto le parece un detalle sin importancia y en cambio la conveniencia de tener una “red social” estilo facebook/twitter armada sin ningún esfuerzo hace el servicio atractivo inmediatamente. Digo “siendo malicioso”, pero en realidad ese sería el juicio que todo el mundo haría de tratarse de Microsoft y no de Google. Desconfiemos.

Powered by WordPress. Designed by Woo Themes