[fsugpu] Alpha Testing - Rumble

  • From: Prasanna Venkadesh <prasmailme@xxxxxxxxx>
  • To: fsugpu@xxxxxxxxxxxxx
  • Date: Fri, 22 Jan 2016 00:07:27 +0530

Today 6 of us (Myself, Kuldeep, Naveen, Nisharth, Chandru & Murugan) from
Network & Internet Engineering were out in the field to test how Rumble (
http://disruptedsystems.org) works in our Wifi enabled campus.

We have spread out through the campus today afternoon with our android
smartphones in which we have installed Rumble.

1. Kuldeep & Naveen went and stayed near Tagore hostel.
2. Chandru went to Library.
3. Murugan joined us from Computer Science department.
4. Myself & Nisharth were mobile moving from one place to another.

Before I proceed any further, I have to give a brief explanation about
Rumble itself.

-----------------------------------------------

Rumble is a micro-blogging application (like Twitter) where you can type
statuses or tweets or whatever you call, but unlike twitter, there is no
server needed and in-fact no Internet is required. It stores the messages
in your phone and uses social-fabric (i.e real-world connection between
humans and movement of humans) to transfer messages from one device to
another in a peer-to-peer fashion. It takes advantage of Bluetooth & Wifi
present in the smartphone to form ad-hoc mesh networks. And more
importantly Rumble is also Free Software available under GNU GPL.

Here is how it works,

1. You turn on Bluetooth / Wifi in your phone or connect to already
existing Wifi Access Points (no Internet connection required).
2. People around you who also have Rumble installed and are also connected
with you through bluetooth or Wifi network will be visible to you.
3. By default everyone would be part of "rumble.public" group. (You can
create any number of groups. The groups can be private or public and add
members to the group).
4. You post a status message to one of the group. This status message is
now broadcast to people around you connected and also part of that group.
5. Now when we move away to new places and adding new people to the group
or connecting with people who were already part of that group would push
these messages to their devices too, thus using the social-fabric to
propagate messages in epidemic fashion.

There is also a real-time chat option which allows you to chat with people
around you. These real-time chats are not forwarded to any new people you
meet unlike the status messages.

This type of store-carry-forwarding messages is also called Delay Tolerant
Networking. For more details about Rumble visit
http://disruptedsystems.org/documentation/

Also a blog about:
http://marlinski.org/2015/12/01/off-the-grid_social_networking_with_rumble.html

------------------------------

So here is what we did,

Everyone of us got connected to different WiFi access points inside our
campus
from respective places. For example, Kuldeep & Naveen got connected to VAL
access point (which is near Valmiki / Tagore boys hostel). Murugan
connected to PU available around Computer Science, Chandru again to PU
available at Library.

Since myself and Nisharth were moving around in two wheeler, we stopped at
various places, first we went to silver jubilee campus and connected to pu
/ PU wifi AP, from there we were able to see others and we even exchanged
few chat messages and selfies ;-) as status messages in our private group.

From there we moved to Girls hostel :-D that was not part of our plan, we
were actually on our way to CS department, since we found strong wifi
signals like GANGA3, KALP4 around those hostels we made a stop there and
test from there too.

Again from there we went to CS and joined with Murugan. So our overall
observation is that we were connected to different access points of a same
network and so we were able to exchange status and real-time chat messages
between us throughout the university, obviously status messages with some
delay and even in some phones there was delay in connecting with other
people on the network, sometimes the chat messages were also delayed and
got delivered out of order (UDP, I guess).

Also we noticed other time that when more and more people join the network
through Rumble the app crashed (more than two times it crashed for me when
7 or more got connected). Need to check logs to understand why it crashed.

We ended our test there at CS department and went for tea in the evening.
We spent our entire afternoon session doing this field work which we really
enjoyed.

Now that we have noticed some glitches and bugs in the app, we will need to
try to fix those and improve it. As a networking student, I am also
interested to understand the "Rumble" protocol and the routing algorithm it
uses.

If we could improve and deploy this application inside our university and
develop the culture of peer-to-peer networking, people would start thinking
differently and moreover we have network that doesn't require Internet to
exchange messages within our campus (telegram & whatsapp are already
blocked, and moreover very poor cellular network coverage and so data pack
are also not helpful at all places inside the campus). No centralized
server also means no censorship!

I take this time to thank and appreciate Marlinski (the online identify of
a man who started this project) for letting this application under a Free
Software copyleft license like GPL and also hosting the source code online (
https://github.com/Marlinski/Rumble).

I have also contributed to this application by filing bugs, fixing few
bugs. adding notification features for real-time chat & translating it to
Tamil language. Also we have Kuldeep singh, Chandan & Afzal from Networks
and Internet Engineering translating it to Hindi, Telugu & Marathi
respectively. (they are yet to commit and push their changes). I have to
teach them git and git workflow.

If you are interested to contribute, you can start by testing this
application, finding bugs, filing it, writing code to fix it or by
translating it to your native language.

I am also 'CC'ing this mail to marlinski. Cheers man!

--
Thanks & Regards,
Prasanna Venkadesh.

Other related posts: