On 3/28/10 10:59 AM, Adrian Thurston wrote:
Hello GNU-Social,
My name is Adrian and for a long while I have been interested in
distributed social networking. I'm the person behind DSNP, which has
been mentioned here before. DSNP has been a great learning experience
for me, and fun too. At one point I had my immediate family using my
2-node network of social-networking sites.
Unfortunately, it has grown to the point where it's too much work for
me to do alone. Either I must redirect my efforts to another project
with momentum behind it, or stop development. I'm hoping that
GNU-Social can be that other project. For that to work there needs to
be some harmony of design ideals. So here I present mine:
Separating a social application into backend and frontend is the right
approach.
The backend is basically a message distribution system and associated
database that is aware of social concepts. I think we should not be
afraid of designing and implementing a new protocol. A new protocol
will give the maximum freedom to make what we need. Piggybacking on
other protocols means also piggybacking on the design goals and
limitations of those protocols.
The frontnend provides the user's view into the social space. For this
you use a language like PHP.
-Adrian
I agree entirely. Do you think that the PHP install should be something
that only the person hosting it should have access to (i.e. everyone
goes to 127.0.0.1, and it is nothing more than a quick and convenient
way to interface with the GNU Social install), or that everyone should,
in essence, have their own GNU Social "site"?
My idea is that everyone can have this sort of "backbone" application
running on their computer (perhaps in Python or C). This application
handles all the "behind-the-scenes" interactions between GNU Social
installs, through XMPP or another (perhaps original) protocol.
Users can (optionally) install the PHP frontend to an (Apache?) server.
This PHP frontend loads data from the backend, and displays it to *only
one user* - the person who installed the PHP frontend. Generally, this
PHP frontend will only accessed from the computer it was installed on
(127.0.01), but the user can also get at it from other locations (work,
school, vacation, etc.) by typing in the IP address of the computer the
PHP install is running on.
It could be compared to our current email system: you don't log in to
your friends' email accounts to send them emails - you log in to your
own email account, and send them emails. The browser frontend is nothing
more than a convenience.
Thoughts?
--
Henry L.