Wiki

Clone wiki

dispersion / Home

Bienvenido

Estas mirando la wiki casi-completa del proyecto Dispersion! (abreviado D!), aquí deberías de encontrar toda la información sobre el proyecto así como el camino que esta tomando y esas cosas que generalmente encuentras en una wiki terminada.

Why the wiki is on Spanish only?

Because the people involve on the project (at the moment) are Spanish speakers, and the English of the project founder is bad as hell. I hope this change in near future (both founder's English vocabulary-grammar and project wiki's main language).

¿Que es Dispersion!?

Básicamente: Es una red social, federada, autónoma y libre escrita en Python usando DJango. Ni más, ni menos.

¿Por qué Dispersion!?

Porqué sí ¿no?. Sucede que Diaspora* es un excelente proyecto que a hecho mucho desde que nació hasta éste momento. Pero claro, el proyecto esta centrándose en otras cuestiones y pues, los usuarios están ansiosos por ver nuevas funcionalidades, federación y cosas así.

Aquí es donde entra Dispersion!. El proyecto apunta a tener esas funcionalidades básicas que toda red social debe tener, ademas de, recoger todas aquellas peticiones de los usuarios de D* (que valgan la pena) para integrarlas en D!

Así que si estas cansado del letargo aparente de D*, pronto tendrás una buena opción (más) para probar ;D

¿Y ese nombre (tan feo)?

Amistades cercanas me han criticado el nombre con el que hemos bautizado el proyecto. El nombre es un guiño al proyecto Diaspora*; Ambos nombres son "parecidos", aunque sus significados pueden variar un poco, la idea es la misma: Autonomía. Básicamente Dispersion! es igual que Diaspora*, pero diferente.

¿Notaron la D!? Es parte del guiño ;).

¿Para quienes es Dispersion!?

Es para todos (dado que es software libre), sea usted un empresario, un usuario común o un activista. Queremos que D! tenga todo aquello que estos tres sectores necesiten. Esperamos utilizar muy pronto Dispersion! de forma autónoma cuando la FreedomBox haga su aparición en el mundo tecnológico :)

Ademas de Diaspora* ¿De qué otras redes sociales toman nota?

Para desarrollar el proyecto, nos damos una vuelta por Facebook, Google+, Tumblr, Status.net y por supuesto, GNU Mediagoblin. ¿Por qué? Pues, cada una tiene cosas que nos gustan, ya sea en diseño o funcionalidades, copiar las cosas buenas de cada una para lanzar una versión en software libre no es mala idea, por eso lo hacemos.

Dispersion!

Tareas por terminar

aquí una lista de tareas por hacer, si deseas ayudar no dudes en crear un fork, hackear el software y luego hacer un pull request. ¿Alguna funcionalidad que desees ver y puedes desarrollar? en ese caso has un patch queue del proyecto :)

  • #2 hacer que el Javascript del proyecto sea "LibreJS compliant" (new)
  • #5 app de Álbum fotográfico (new)
  • #6 app de Usuarios (new)
  • #4 app de Blogging (new)
  • #9 app de Chat (new)
  • #8 ignorar usuarios (como una app?) (new)
  • #7 app de Publicaciones (o posts) (new)
  • #11 (app de Django?) Flujo de actividades (new)

Tareas por Milestone

¡Terminar alguna de estas tareas significa un gran avance para tener un software funcional!
aun ningún Milestone

Documentación técnica

acerca de OStatus
Un tutorial de como utilizar Mercurial
Ruta de desarrollo
Resolviendo bugs del tracker en Bitbucket automáticamente con Mercurial (ENG)
Wiki de como usar la wiki :) (ENG)

Poniendo el servidor para desarrollo en marcha

Ahora el proyecto puede hacer uso de entornos insolados gracias a virtualenv, primero, necesita tener instalado virtualenv en su sistema operativo. Ya sea por medio de easy_install, pip o el paquete que ofrezca su repositorio de paquetes.

Una vez hecho esto, creamos el entorno virtual; las dependencias del proyecto serán instaladas de forma automática luego de instalar el entorno virtual:

$ cd /path/to/cloned/dispersion
$ python2 setup-env.py .

en GNU/Linux, para iniciar el entorno virtual nada más ejecutan el siguiente comando:

$ source bin/activate
(dispersion) $ 

Posiblemente este paso sea opcional, ¿Tienes una base de datos con tu copia del repositorio? Si la respuesta es "sí" entonces omite este paso. De lo contrario, ejecuta el siguiente comando y sigue las instrucciones:

(dispersion) $ python2 manage.py syncdb
(dispersion) $ python2 manage.py migrate

Para arrancar el servidor solo ejecuta python2 manage.py runserver sin salir del entorno virtual.

Y ya estaríamos listos :)

Posibles problemas

django.db.utils.DatabaseError: table "XXX" already exists

La solución es borrar la base de datos y volver a ejecutar la python2 manage.py syncdb y python2 manage.py migrate.

Updated