The banning and censoring of Twitter and other social media in parts Iran, Korea, China.
What it does
Allows for a open, community-moderated network that passes directly from phone to phone without the need for additional infrastructure.
How we built it
Using Node.js, we toiled away on a monumental kludge of code and callback trees that we baptized in our tears before promptly abandoning Node.js entirely in favor of a more reliable Python platform.
Challenges we ran into
Our two main tools, NOBLE (NOde.js Bluetooth Low Energy) and BLENO (Bluetooth Low Energy for NOde.js), happened to work perfectly together until we tried to run them both at the same time, at which point they refused to be in the same room as each other. They both required use of the same Bluetooth port, so while they worked perfectly after 10 hours of testing, they could not be implemented concurrently on the same device. Also, Node.js seemed to use an excessive amount of of massive trees of callbacks and asynchronous code, a fact that was accentuated by our groups shared inexperience with the language. Also, the fact that each pi's Bluetooth could connect with everything in the room but each other, as we had a difficult time determining how to make each pi's Bluetooth discoverable. I could go on, but I think you have the picture.
Accomplishments that we are proud of
Getting the pi's to communicate with each other all at once, let alone running anything at all. Learning how to use Node.js and two of its BLE libraries was no small feat either, we spent upwards of 10 hours learning the intricacies of Bluetooth LE and Node.js.
What we learned
More Node.js Characteristics than what can be considered reasonably healthy, various aspects of the Bluetooth handshaking and data-transfer protocols, and the bitter taste of having no idea what we're doing while our massive castles of abstractions crumble and burn around us.
What's next for Spread The Word
We need to take the Bluetooth protocols that we have working on the Raspberry Pis and port it to iPhone, Android, that cool Ubuntu phone, and while we are at it we might as well go after whatever else we can hook Bluetooth to. We also need to develop a user base. With no central servers and a distribution network that is entirely dependent on people being active and within Bluetooth range, we need a healthy user-base if we want people's messages to reach as far as they can.