Friday 22 May 2015

O2M - Progress

Hi guys and gals, I've got an update for my latest project, O2M.

If you're not familiar, take a look at my previous post to get yourself up to speed. In short, it's a social network where every user has their own server which communicates with their friends' servers on their behalf. This way, your data stays on your computer until your friends ask for it. Of course, once they've received it, they can do what they like with it. So the caveat is that you should trust your friends (or only befriend those whom you trust!)

The latest release is version 0.2.0, which added the bare bones necessary for adding someone as a friend and notifications. These features really need improving but it works so long as you know the IP address of your friend's server.  Click here for new o2m releases.

I've been working this week to make it easier for developers to install O2M and this means I'm getting closer to generating an ".msi" for Windows computers and a ".app" for Macs. These are not yet possible, but they soon will be.

Usage Instructions 

If you're aware of how to install python packages, then take a look at the releases at the link above and run "python setup.py install". Then follow that with "python o2m/run_o2m.py". Finally open a browser and go to the link displayed in your terminal window with the added default port number 8000 appended to the end with a colon. An example would be "http://192.168.0.2:8000/o2m/timeline".

From there you will be asked to sign in. The default credentials are "user" and "password". For now, after login you are prompted to change just the username. Pick any name (preferably yours) and hit return. Finally, log in again and make your first post.

Upcoming Features

So I've been working late into the night to achieve caching on the content that gets sent between people's servers. This is incredibly important because with O2M's architecture, there is inherently a lot of networking. This is the price paid for a distributed social network. However, by using caching, we can reduce the number of requests for content to one request per edit per content. So the bare minimum of requests are done in order to acquire the most up-to-date pieces of content.

What's more is that I've implemented images such that they too can be downloaded from a friend's server. For now, they still cannot be uploaded to you're own server (but of course normally you would just put the image in a special folder). Once this is complete, users will be able to select their profile picture, but for now, I have programmed in a default "use the first content created on the server". So "Content no. 1" is used as my profile picture, and this is the result: