Este documento describe la plataforma tog, la cual tiene como objetivo facilitar el desarrollo de redes sociales de una manera abierta y distribuida. Tog se basa en los conceptos de identidad abierta, permisos y objetos sociales. Usa el sistema de plugins Desert para permitir añadir funcionalidad de forma incremental. Su núcleo (tog_core) provee las bases para construir herramientas y módulos específicos para redes sociales.
3. Ni silos. Ni una red unica.
Ni 2**32 versiones de mi.
Ni mis datos personales
desperdigados por la web.
Necesitamos
una red abierta.
¿Cuantos cuentas en diferentes sitios web tienes? ¿Cuantas veces has
rellenado la misma informacion en diferentes sites?¿Cuantos avatar
distintos hay de ti en la web? ¿Quien puede acceder a los datos de tus
preferencias musicales/deportivas/sexuales/...?
Tim O’Really comentaba el año pasado: “Tener una manera abierta de
acceder a la informacion y los datos se hace más importante segun
vamos creando nuevos servicios online.”
En un contexto en el que cada las redes sociales son más abiertas,
interconectadas y distribuidas necesitamos un “stack” de standares para
conectarlas de manera sencilla y rapida.
4. Identidad
Permisos
Relaciones+Contactos
Grafico social
Actividad
Ahora mismo el stack con el que estamos trabajando en la mayor parte
de redes sociales implica al menos estos cuatro grandes temas:
* Quien soy
* Quien puede hacer qué con mi informacion
* Con quien estoy conectado y en que manera.
* Que trazas voy dejando de mi interaccion con la web.
5. Identidad
“OpenID is a free and easy
way to use a single digital
identity across the Internet.”
Quien conoce OpenID?
Quien tiene un OpenID?
Quien ha usado un OpenID alguna vez?
Quien usa un OpenID?
9. Permisos
“An open protocol to allow
secure API authorization in a
simple and standard method
from desktop and web
applications.”
10. Con OAuth controlamos de manera segura el intercambio de mi
información entre diferentes aplicaciones, reteniendo ademas el control
para revocar estos accesos cuando queramos.
13. Grafico social
“Providing users a secure way
to access their address books
and friends lists without having
to take their credentials or
scrape their data”
14. XFN
<a href=quot;http://jane-blog.example.org/quot; rel=quot;sweetheart date metquot;>Jane</a>
<a href=quot;http://dave-blog.example.org/quot; rel=quot;friend metquot;>Dave</a>
<a href=quot;http://darryl-blog.example.org/quot; rel=quot;friend metquot;>Darryl</a>
<a href=quot;http://www.metafilter.com/quot;>MetaFilter</a>
<a href=quot;http://james-blog.example.com/quot; rel=quot;metquot;>James Expert</a>
Los microformatos al rescate... indexando las relaciones xfn podemos
construir un grafico social basico sin realizar ningun tipo de
intregracion... solo con html.
15. Portable Contacts
{
quot;idquot;: quot;1quot;,
quot;namequot;: quot;Chris Messinaquot;,
quot;urlsquot;: [
{ quot;valuequot;: quot;http://factoryjoe.com/blogquot;, quot;typequot;: quot;blogquot; }
]
},
{
quot;idquot;: quot;2quot;,
quot;namequot;: quot;Joseph Smarrquot;,
quot;emailsquot;: [
{ quot;valuequot;: quot;joseph@plaxo.comquot;, quot;typequot;: quot;workquot;, quot;primaryquot;: quot;truequot;
{ quot;valuequot;: quot;jsmarr@gmail.comquot;, quot;typequot;: quot;homequot; }
],
}
}
http://www.portablecontacts.net/draft-spec.html
Para casos mas complejos/reales portable contacts nos va a ofrecer un
api sencillo para intercambiar los contactos de un usuario.
23. “Yo creo... que eso
es una estupidez.”
- Aitor García (Linking Paths)
Facebook? Bebo? Hi5?... ¿funcionan realmente como redes sociales
genéricas _per se_?. Yo creo que no. Creo que han tenido que crear
artificios para subsistir y ponerles la etiqueta de aplicaciones (y que
ahora se encuentran con el problema de capitalizar esos artificios).
24. Usuarios
!=
Clientes
Muchas redes (y sites y aplicaciones en general) se encuentran ante la
problematica de la financiación. En el caso de las redes sociales
genericas el problema es mayor aun: ¿como sacar dinero de un grupo de
usuarios que no tiene nada en comun?.
26. [...] Al publicar el Contenido de Usuario en cualquier parte
del Sitio, otorgas automáticamente a la Compañia, y
manifiestas y garantizas que tienes derecho a otorgar a la
Compañía, una licencia irrevocable, perpetua, no
exclusiva, transferible, plenamente desembolsada y
mundial (con derecho de sublicencia) para usar, copiar,
reproducir públicamente, mostrar públicamente, reformatear,
traducir, obtener extractos (totales o parciales) y distribuir
dicho Contenido de Usuario para cualquier fin, ya sea
comercial, publicitario o de otro tipo, en relación con el Sitio
o la promoción del mismo, para preparar trabajos derivados
de dicho Contenido de Usuario o incorporarlo a otros
trabajos, y para otorgar y autorizar sublicencias de lo
anterior.[...]
Facebook -Términos de uso
http://www.facebook.com/terms.php
La respuesta suele ser la publicidad. Entrar en el juego de la publicidad
encajada. Aun así hoy en día incluso los más grandes siguen
devanandose los sesos intentando averiguar como capitalizar esa
inmensa masa de usuarios que se manda mensajitos.
27. Creemos en la
teoria de los
objetos sociales
Creemos en los objetos sociales, un concepto acuñado por Jyri
Engeström, uno de los fundadores de Jaiku. Creo que las relaciones
siempre se crean alrededor de objetos sociales que no son sino las
diferentes pasiones e intereses que compartimos con otros seres
humanos: la fotografía, las manualidades, el golf, las motos. Las redes
sociales son la adaptación del asociacionismo que siempre ha existido a
internet y las posibilidades de la red. No es de extrañar que estas redes
sociales acaben volviendo al mundo real en forma de kedadas... quizás
como esta misma XD.
28. “La gente no conecta
simplemente con otra gente.
Conecta a traves de objetos
compartidos.”
-Jyri Engeström (creador de jaiku.com)
Creemos en los objetos sociales, un concepto acuñado por Jyri
Engeström, uno de los fundadores de Jaiku. Creo que las relaciones
siempre se crean alrededor de objetos sociales que no son sino las
diferentes pasiones e intereses que compartimos con otros seres
humanos: la fotografía, las manualidades, el golf, las motos. Las redes
sociales son la adaptación del asociacionismo que siempre ha existido a
internet y las posibilidades de la red. No es de extrañar que estas redes
sociales acaben volviendo al mundo real en forma de kedadas... quizás
como esta misma XD.
29. Gadget &
Miniaplicaciones
=
Objetos sociales baratos
De hecho creo que las miniaplicaciones, gadgets y demás artefactos que
han surgido en las grandes redes sociales genéricas son un intento por
darle a sus usuarios objetos “baratos” a los que conectarse. Sustitutos
de quita y pon para intentar unir unas comunidades que no tienen de
otra manera nada en comun (salvo las ganas de ligar de los
adolescentes... aunque este podria ser en si mismo un objeto social).
30. Las redes verticales no
los necesitan
Vimeo, Flickr, threadless... han encontrado su objeto social. Es a traves
de estos objetos sociales que los usuarios se conectan: camisetas que
nos gustan, fotografias interesante, cortos en HD que comentar. Nuevo
objetos generan nuevos valores... por los que incluso los usuarios están
dispuestos a convertirse en cliente... ¡y pagar!.
32. Los objetos
sociales y la
Open Web estan
modelado tog.
Estas dos visiones sobre los mecanismos que controlan las redes
sociales y sobre como deben interactuar estas han ido dando forma a la
plataforma.
33. 2 facetas
facilitador
& impulsor
* tog-facilitador
* Queremos simplificar el desarrollo de redes sociales
* Las redes sociales tienen funcionalidades comunes
* ...pero no son intercambiables, no todo funciona para todas
* porque cada una tiene sus propios objetos sociales.
* tog-impulsor
* Demasiadas antipatrones y malas practicas en las redes sociales
actuales.
* El proximo año habra mas redes sociales... esto no se acaba.
* ¿Que podemos hacer desde tog para que esas redes sociales sean
mejores que las actuales?
34. !intrusiva && !invasiva
Como togificar
las aplicaciones
ya existentes?
No creemos que las redes sociales puedan ser un paquete de
funcionalidades cerrado. Pensamos que es mucho más útil y factible que
alguien simplemente añada la posibilidad de marca a un usuario como
amigo que desembarcar 60 funcionalidades nuevas en una comunidad
de aficionados a la astrofísica. Por eso queríamos construir la plataforma
pensando en minimizar el impacto que tienen los diferentes
componentes en la aplicación, facilitando su instalación y uso, para que
cada uno pueda disfrutar de las partes que necesita de manera sencilla y
sin tener que tirar lo que ya tiene o modificarlo de manera sustancial.
35. desert
Plugin system for
Rails on steroids,
caffeine, and botox.
http://github.com/tog/desert
Desert es la libreria que hemos utilizado para dar respuesta a los
objetivos anteriores. Es un proyecto desarrollado inicialmente por la
gente de Pivotal Labs. Hemos creado nuestro propio fork para añadir
algunas funcionalidades y corregir diferentes aspectos. Contamos la
historia de como inicialmente teníamos nuestro propio bootstrap de
extensiones extraído de Radiant, porque lo cambiamos por desert,
diferentes approaches: quot;app + extensionesquot; vs quot;plugins + appquot;.
36. }
class User < ActiveRecord::Base
has_many :comments
# ... other methods
end
class User < ActiveRecord::Base
has_one :profile
has_many :memberships Todos estos
has_many :groups
# ... other methods agregados
end
conforman el
class User < ActiveRecord::Base
modelo final.
has_one :inbox
has_one :outbox
has_many :folders
has_many :sent_messages
has_many :received_messages
# ... other methods
end
Desert nos permite añadir funcionalidad de manera incremental tanto a
modelos como a controladores.
37. require_plugin 'tog_core'
require_plugin 'acts_as_state_machine'
require_plugin 'seo_urls'
require_plugin 'file_column'
Tambien tenemos un mecanismo
para controlar las dependencias.
38. tog 0.3
configuracion, etiquetas,
comentarios, profiles...
infraestructura.
Hemos intentado aplicar a tog_core el mínimo común denominador a
todas las redes sociales. Dotarle de todo lo que se utiliza como base
para construir herramientas y módulos específicos. De esta manera si
quieres desarrollar un componente que permita, por ejemplo, guardar
las tarjetas de juego en una red social de golfistas, no tendras que hacer
nada para que estas se puedan tagear, comentar, buscar, etc. tog_core
nos da un marco de desarrollo para construir otros componentes.
39. tog 0.4+
Provider + Consumer
OAuth, OpenID, Spam
blocking, Sitewide search,
Microformatos....
¿Y a partir de aquí... que? Bien ... una vez que tenemos la base sobre la
que trabajar vamos a empezar a aplicar todas los standares que tengan
sentido para hacer de las redes movidas por tog unos buenos
ciudadanos web.
40. plugins
core: cms, blogs, fotos,
mensajeria interna
3rd party: foros, eventos,
gestor de ficheros...
Diferentes empresas se han unido al desarrollo de componentes para tog
y como consecuencia la lista de plugins sigue creciendo. Obviamente
todos ellos están en una fase muy temprana debido tanto a la juventud
de la plataforma como al pequeño tamaño (por ahora) de su comunidad
de usuarios... pero todo se andará.
41. Comunidad
www.toghq.com
http://twitter.com/toghq
tog_users@googlegroups.com
Diferentes empresas se han unido al desarrollo de componentes para tog
y como consecuencia la lista de plugins sigue creciendo. Obviamente
todos ellos están en una fase muy temprana debido tanto a la juventud
de la plataforma como al pequeño tamaño (por ahora) de su comunidad
de usuarios... pero todo se andará.