domingo, 4 de diciembre de 2011

Mapa de violencia política en los 70s

AVISO: Como todo tema político tan delicado cualquier palabra precisa que use de más o de menos denota facciones políticas y posturas históricas y/o personales. Así que tengan en cuenta que este artículo fue realizado con fines educativos y puede contener (y contiene) información incompleta, incorrecta y/o tendenciosa. 

Luego de ver que había gente trabajando en analizar textos sobre la última dictadura (proyecto MAPA76, twitter, presentación), se me ocurrió geolocalizar info de la última dictadura o de esa época o década. Posibles aplicaciones que pensaba en una lluvia de ideas (brainstorming) fueron:
  • Geolocalizar funcionarios de la dictadura en un mapa actual. Hicieron algo parecido para un mapa de juicios a genocidas. Técnicamente con una lista de gente se podría geolocalizar también cualquier tipo de actores.
  • Detectar si hay errores en las lista de gente desaparecida. Por ejemplo gente que fue registrada como desaparecida pero actualmente tienen domicilio.
  • Hacer una animación geográfica y temporal del período incluyendo atentados subversivos y detenciones forzosas de personas para comprender el período geográficamente.
Al final me incliné por hacer un prototipo de animación geográfica y temporal. Usé dos fuentes de datos, porque entendía que debía visualizar atentados subversivos y desapariciones de personas. Lo cual llevó a observar a gente que vió el mapa que el mismo defendía la Teoría de los Dos Demonios. A ese respecto puedo decir dos cosas:
  • Estoy de acuerdo en incluir la violencia guerrillera en el análisis: "la represión emprendida por la dictadura militar no puede ser analizada sin considerar también el accionar de los grupos de guerrilla urbana".
  • No estoy de acuerdo que en que la violencia ejercida por la guerrilla sea comparable con la ejercida por el Estado. En el mapa se vé, por ejemplo, que la actividad violenta del Estado oficial en esa época es mucho mayor que la clandestina ejercida por la guerrilla: no comparto que "los actos de violencia y terrorismo perpetrados por las Fuerzas Armadas durante el Terrorismo de Estado en Argentina en las décadas de 1970 y 1980‎ en la Argentina son comparables y se relacionan a los actos de violencia y terrorismo de las organizaciones guerrilleras".
La fuente de datos de desaparecidos fue el Grupo Farenheit (esta caído ahora parece, mi copia aca). La fuente de datos de atentados subversivos es una lista que círcula por foros, enciclopedias de tinte nacionalistas y círculos informales (mi copia aca).  No es exclusiva de la organización guerrillera Montoneros.


martes, 9 de agosto de 2011

Primeras impresiones de Google Plus (Google+)

Introducción

Apenas nos enteramos del nuevo producto de redes de sociales de Google (Google Plus, 2011) recordamos el fracaso en difusión y retención de usuarios del mayor lanzamiento de Google de 2010: Google Wave. Nos imaginamos que Wave fracasó por intentaron revolucionar con una alternativa experimental un nicho (e-mail) que ya tenían dominado (o en vías de dominar, por superioridad técnica de GMail).

Uno podría especular que Google ya tiene varias redes sociales en este momento y no necesita lanzar otra red social. Por ejemplo la red específica de videos YouTube contabiliza aproximadamente 176 millones de usuarios sociales. Pero si comparamos este número contra los 1000 millones actuales de Facebook y los supuestos 200 millones de Twitter (una búsqueda web dice 25M versus noticias oficiaales que dice 200M). Google también tiene la red social Orkut con más de 100 millones de usuarios sociales (según sus dichos, porque según una búsqueda no hay mas de 31 millones de páginas públicas). El problema aparente de Orkut es que se usa principalmente en Brasil y en la India, paises del Tercer Mundo. (Estamos hablando de perfiles, usuario sociales, no de la visitas únicas que contabilizan los sitios de tracking web que es un número mayor en general.) Nos imaginamos que no quieren rediseñar YouTube, uno de sus productos de cabecera, para agregarle la funcionalidad que necesita para competir con Facebook. Así que aquí estamos con Google Plus. Lo que sí se ve es que Google absorbió PicasaWeb y Buzz (productos que no son líderes en su segmento) para aprovechar sus features y su masa crítica de usuarios. No olvidemos que unos de los principales usos de Facebook es como red social de fotos y como red social de nanoblogging.

Principales características

En una primera impresión se pueden observar en Google+ (G+) tres tipos de características:
  1. Las copiadas a Facebook u otras redes sociales.
  2. Las que viene de otros servicios de Google, ahora incorporados/conectados a Google+.
  3. Las carácterísticas novedosas, para darle una vuelta de tuerca al asunto y completar el paquete.

1. Las características copiadas a Facebook o a otras redes sociales son:
  • Perfil personal y detallado de cada usuario.
  • Alertas en rojo aparecen en la barra superior cuando ocurre un evento que nos puede interesar (por ejemplo, comentan un artículo nuestro). Esta barra ahora unificada para todos los servicios de Google es decir las alertas en teoría invaden todos los servicios. En particular, comprobamos que aparecen en Gmail.
  • Publicación de contenido en un muro personal de cada usuario. En G+ aparece como Posts en el perfil de usuario.
  • El muro de los contactos se mezcla e integra en tiempo real en una lista de publicaciones. En G+ lo llaman stream (flujo, caudal o corriente).
  • Sugerencias de nuevos contactos, para extender nuestras listas de amigos.
  • Mensajería privada entre usuarios.
  • Carpetas de fotos.
  • Listas de contactos clasificadas a mano.
  • Teleconferencia (video y audio) grupal, similar a lo más útil de Skype.
  • Comentarios y boton de gusto (+1) para las publicaciones.

2. Las que viene de otros servicios de Google:
  • Para las carpetas de fotos G+ integra directamente los albumes de Google Picasa Web, es decir son los mismos albumes de el mismo usuario/login (e-mail) de Gmail.
  • Para teléfonos móviles aprovecharon la penetración de mercado que tiene Android y su versión de G+ para móviles se integra fuertemente con esa plataforma. El objetivo es compartir contenido móvil en G+.
  • Parece que Hangouts, el feature de teleconferencia de G+ es tecnicamente una extensión del chat grupal de Gmail pero que incluye también video y audio grupal (Gmail tiene chat grupal y teleconferencia individual solamente). 

3. Características novedosas:
  • Listas de contactos faciles de usar (Circles en G+). Facebook (FB) tiene la posibilidad de clasificar a los contactos de un usuario en diferentes lista, pero es solo una opción bastante díficil de usar (hay que buscarla y es más incómoda la confección de las listas). La ventaja que tiene G+ es que mediante drag&drop la confección de la lista es mucho más sencilla.
  • Recomendador de noticias temáticas (Sparks). Esta función solo se entiende para alimentar las publicaciones de usuarios (botón de Share) que no tengan nada que publicar. Se listas actuales de noticias basadas en una consulta disjuntiva (OR) de etiquetas. Esta carácterística es novedosa dentro de una red social pero existen servicio externo del mismo tipo. Por ejemplo Google News es mejor que Sparks porque se pueden hacer cualquier tipo de consultas (AND/conjuntivas también) pero News no tiene el botón directo de compartir (Share).

Conclusión

Como nota final vamos a recordar que el nombre en código interno del proyecto en Google+ era Emerald Sea (Mar Esmeralda). Siendo esmeralda el color de los dólares nos da pensar que esperan sacarle una porción importante a Facebook de la torta de servicios de redes sociales y luego navegar en el verde. O tal vez simplemente miraron por la ventana su moderno jardín. En breve también analizaremos las características de privacidad de G+, teniendo en cuenta que es lo que más preocupa a los usuarios de redes sociales.

jueves, 14 de julio de 2011

Como invitar contactos a Google+ (mandar invitaciones)

Descarga: tengan en cuenta que no me hago responsable de cualquier problema de privacidad o seguridad que tengan en Google+, es un producto experimental y solo recomiendo que lo prueben, no pongan información personal y preferentemente no asocien el producto a su cuenta de e-mail personal.

Esta es una pequeña receta para invitar a tus amigos a Google Plus (Google+) una vez que ustedes ya tienen cuenta.

  1. Una vez dentro de Google+ vayan a la sección de Circles, logo con los circulitos.
  2. Ahí dentro hacen click en Add New Person y agregan e-mail y nombre de la persona. Debería aparecer para el caso de Alicia Private Life asi en la lista de gente.

  3. Hacen doble click sobre la nueva persona. Les debería aparecer la opción de Invite people to join you on Google+. Le debería llegar a esa persona un e-mail como el que sigue, por lo menos funciona si la otra persona usa Gmail, con otro tipo de cuenta no probé. Debería esta hacer click en el mismo para entrar a la página de ingreso a Google+ y aceptar unirse al producto.

  4. Si la opción de hacer doble click no funciona o no tiene mas invitación entonces lo que pueden hacer es agregarla a un círculo y luego yendo a su propio muro (Home) y mandando un mensaje para ese círculo marcando la opción de enviar e-mail a los que no usan Google+. Es decir, hacer tick donde dice Also email 1 persons not yet using Google+.
  5. Finalmente le debería llegar a la persona que mensajearon un e-mail como el que mostramos y debería hacer click en el mismo para entrar a la página de ingreso a Google+ y aceptar unirse al producto, que esta en modo beta o de prueba actualmente.


martes, 17 de mayo de 2011

Estimating Facebook Number of Users with Binary Search

I get tired of marketing people saying "Facebook has 500 million users", "FB has 1 billion users". So I made I little experiment on the estimation of Facebook exact number of users. The results was 1,051,785,857 users! That is a little over 1 Billion users! The result is not surprising if you read that Facebook founder said one year ago that the wanted to reach that number and they receive about 700 thousand new users per day.

Now I detail the details, further work can be done by anyone to make the estimation accurate on any time.

Facebook users are identified by a USERID like 1340269186 or 100011808654570. Apparently the are two possibilities for users ids:
  1. The id is not available, for example user id 666666. In spanish, this is the resultSo the range of available ids can be tracked manually or with a script using binary search. These are the results excepting for some Facebook employees that have ids below 10000. Ranges: [500090001..1777798795] + [100000000000004..100002390891367]. Longer user ids starting with 10000 are the newer ones after reaching 1777798795 (you have to update this number to make the estimation dynamic). If Facebook includes 700 thousand new user per day we expect this number to increase accordingly. The number of aprox. available ids is 3,668,600,157.
  2. Now not all user ids are in-use. Some ids belong in the past to users who closed their accounts. I suspect also that Facebook leaves available id unused for internal debugging and administrative processes. In either case the distribution of used ids inside the ranges we described in 1) is apparently random. So we have to estimate the distribution density assuming a uniform distribution of used ids. This is how unused id look like, like id (spanish locale) 1340269187 The density was 0.286700 used ids per each unused id. The script uses 1000 samples but you can test a bigger batch if you are not confident of the results.
Update!: I found this paper published this year...
[PDF] Estimating Sizes of Social Networks via Biased SamplingFile Format: PDF/Adobe Acrobat - Quick View
by L Katzir - Cited by 1 - Related articles 1 Apr 2011 ... years and their number of users is already measured in many ...... 1, 000, 000 Facebook users and tried to estimate the size of ... www.www2011india.com/proceeding/proceedings/p597.pdf

miércoles, 6 de abril de 2011

My First Poem Written in Python Code

#!/usr/bin/python
# -*- coding: iso-8859-15 -*-
#
######   Poem in Python   #######
#################################
#              by               #
#            thermo             #
#     therm000@gmail.com        #
# 6th of April, 2011 - 02:49 PM #
#################################

# Compiling and printing nice poem 
# Python 2.6.5

your_own_money = 'energy'
your_voice = 'thunder'
life = 'unborn alphabet of desires'
pain = 'unborn'

def dreaming(state, but):
 try:
     yield your_voice
 except:
     for coins in your_pocket:
         print your_own_money 
 finally:
     with your_eyes as food:
         print __doc__ and poetry     

 pass
 gestures = 'change'
 for people in the_street:
     lambda signs: signs and gestures
 exit()

while life.startswith( pain ):
 while False or None:
     continue
 print None or __name__+' '+your_voice
 life = life.replace('desires','desire').replace(' alphabet of','')
 life = life.replace('un','')
 dreaming(None or True, not False )
 pain is not your_voice

print life

Timba: ideas para un lenguaje funcional y probabilístico

Seguimos poniendo cosas que estaría bueno hacer pero no hay tiempo. Si alguien quiere laburar en este tema puede robar la idea, poné al autor del este blog como N-ésimo autor del paper (donde N > 3) y listo.

Hace un par de meses luego de leer la noticia sobre enfoques unificados de inteligencias artificial (A grand unified theory of AI) y el paper correspondiente al lenguaje de modelado estocástico Church, no había una cuestión super revolucionaria en el tema pero que sí puede ser útil tener un lenguaje de ese tipo. En concreto puede ser útil para consultar fuentes de datos semi-estructuradas como Twitter, hacer encuestas y los cálculos stadísticos correspondientes (por ejemplo para Stock Trading). Lo que no gustó de Church es que es un fragmento de LISP, un lenguaje del 1958, es decir pionero para su época pero hoy en día es anticuado y sintácticamente recargado (por lo menos en los paréntesis).

Entonces el desafío es implementar un lenguaje de similares carácterísticas estocásticas, a-la Church pero con un diseño más moderno. Para los que no lo saben Alonzo Church fue un pionero de lógica matemática y la computación que prácticamente inventó la computación como Turing pero con un enfoque distinto, el cálculo lambda.

Entonces las características de Church que hay que mantener son:
  • la evaluación del expresiones del lenguaje tiene ser un sampleo estocástico;
  • consultas especiales para inferencias probabilística condicional;
  • memoización de resultados anteriores durante un cómputo, una optimización para no repetir algunos cómputos/sampleos;
  • todo esto incrustado de forma natural dentro del lenguaje para que no haya que describir las inferencias a mano cada una (este punto no parece muy claro, tal vez es obvio por eso no se entiende muy bien).
Las posibles herramientas involucradas en el diseño pueden ser:
  • Alguna herramienta moderna para el diseño de Domain Specific Languages puede ser piola. Por ejemplo dicen que Ruby tiene mucho soporte para DSLs, y además Ruby ya viene con expresiones lambda como LISP así que puede ser adecuado.
  • Para la parte estocástica, ya sea sampleo uniforme o con distintas distribuciones se puede usar alguna librería moderna de probabilidades. Por ejemplo RSRuby es para hacer cálculos de forma similar al lenguaje estadístico R. Hay muchas librerías para elegir para Ruby.
Al lenguaje se lo puede bautizar Tomás (por el matemático Tomás Bayes, pionero de la probabílidad) o sino directamente Timba, un nombre más argentino en referencia a los juegos de azar.


martes, 5 de abril de 2011

Syntax highlighting for Alloy language with gedit

Something simple but useful. How to highlight Alloy code with gedit? Gedit is my favorite text editor for Linux. Alloy is a modeling languages based on lightweight formal methods.

First we must find the location of GtkSourceView:

$ locate gtksourceview
.
/usr/share/gtksourceview-2.0/language-specs/java.lang
/usr/share/gtksourceview-2.0/language-specs/haskell.lang
.

In my case I run Ubuntu Linux 10.04 LTS and gedit 2.30.3 and I tested the highlightingwith the default GtkSourceView, that is 2.0. I based my XML specification of the highlighting in the Java highlighting.

Finally just copy (with sudo) file alloy.lang (this is the last version) to folder /usr/share/gtksourceview-2.0/language-specs/ (in this case).

It also highlights some reserved words of extension DynAlloy, such as assume, pre, post, call and program. Don't forget to comment any mistake.

A sample screenshot. Thanks.


miércoles, 2 de febrero de 2011

Metanoia: ideas para un MORPG simbólico, terapéutico y psicomágico

Me surgió una idea que es hacer un juego de computadora revolucionario. Se va a llamar Metanoia. Todavía no esta clara la plataforma si será móvil, vía web o de escritorio, pero eso no es lo importante. Me parece importante también que si es con fines terapéuticos o poéticos que sea sin fines de lucro.

Va a usar características disponibles hoy en juegos informáticos, que son:
  • Animación de un mundo en tres dimensiones (motor 3D).
  • Customización Web 2.0, la gente genera su propio contenido personalizado para su gusto y el de sus amigos.
  • Juegos en línea, protocolos para jugar de forma colaborativa.
Hay que desarrollar tecnologías para las siguientes características:
  • Importar objetos fotográficos y conceptuales del mundo web 2.0 al juego de forma automática. Por ejemplo el usuario en Twitter dice "me gustan los perros caniche", luego en el juego debería aparecer un perro caniche si Twitter es una fuente valida configurada por el usuario. Otro ejemplo podría ser que aparezcan amigos del usuario en 3D con tecnología para adaptar fotos a figuras 3D. Obviamente también se podrían crear objetos bajo demanda del jugador. Para ello hay que recuperar "meshes" 3D de Internet o fabricarlos bajo demanda.
  • Posibilidad de manipular los objetos del juego de forma flexible ya sea vía alguna interfaz mecánica (mouse, pad, acelerómetro) o conceptual (traduciendo ordenes o historias a eventos en el juego). Por ejemplo, el jugador podría usar el mouse para chocar su auto favorito contra una pared o podría describir una fabula o escena en la cual objetos de su infancia como juguetes van juntos en una aventura por el bosques.
  • Que haya algoritmos para manejar cuestiones simbólicas y terapéuticas de Psicomagia. Por ejemplo el jugador esta enojado con su padre porque le dió su afecto a alguna otra actividad, entonces que el juego incluya un objeto simbólico paternal que el jugador pueda destruir para luego reconciliarse simbolicamente con su padre.
  • Como resultado de que el juego sea multi-jugador puede resultar interesante que los jugadores tengan un "karma" o nivel de psicomagia en base a ser favoritos/recomendados de otros psicomagos. Los jugadores permite a otro psicomago ver su espacio 3D privado para que este le haga sugerencias sobre que acciones son convenientes. Luego el jugador puede decidir marcar positivamente o negativamente la acción del invitado. Hay que tener en cuenta que el juego solo debe estar disponible para gente conciente y que se pueda hacer responsable de las acciones (que serán sin fines de lucro) dentro del juego. Tal vez se puede pedir un test psicologico para entrar al juego (?), es decir que sea terapeutico solo para cuestiones leves como neurosis en principio. Para enfermedades más graves que no sea colaborativo o solamente colaborativo con expertos en el area de la enfermedad.
Enlaces: