Tuesday 4 September 2012

Maroon: a hypothetical peer-to-peer software platform

Just about every programmer (and a few non-programmers) have an idea that consumes them. Their amazing personal project. For me, it's a reaction to "cloud" services and central control. Something peer-to-peer, that also works with highly-disconnected machines. I call it "Maroon" for two reasons. One, it's the clearest name for the colour that's the inverse of "Azure", the codename Microsoft uses for its cloud services platform. Two, I am from Queensland, where maroon is the state colour, and the name of a particularly successful football team.

The idea is this: I have a few computers, including my work and home desktops, a small netbook and my phone, plus an Amazon Kindle if we're going to be very ambitious. They're not all easily connected, but there are loose associations between all of them. I also have personal files and data - such as my photos and videos - that comprise a larger amount of bits than I would like to copy to and fro over the internet for various reasons (I don't want to slug my employer with a 30GB download just to keep an offsite backup of my files, for one). It would be good if, using a collection of flash drives, my phone and, where appropriate, LAN sync, I could keep those files up to date across all of my machines with little effort. It's basically meant to be a peer-to-peer software platform that handles data storage and replication as well as messaging for you. It should let you write peer-to-peer programs as easily as little local databases and file management apps.

This would also enable some interesting effects, such as:

- Remote file management, copying, moving and renaming files on disconnected machines.

- Remote control of machines without necessarily having an active, reliable network connection.

- Synchronising metadata such as my Kindle bookmark for ebooks I did not purchase from Amazon.

- Distributed data storage, where I can record, say, my spending on a day out on my phone and have it turn up on my desktop at home later without going through a web server (for privacy).

- File sync with friends and family without needing Dad to sign up for a much larger internet plan than he really needs.

The best part about all of this is that it would be 100% free and independent of any service providers. You set it up on your machines and it never has to contact any servers. Even if I get tired of it and abandon the project, nobody loses out. Nobody can reach out and shut down a network like that, because it doesn't have to rely on the internet, although it could.

The main reason Maroon is not a reality right now is time. I don't have enough time to develop it, and there are actually a lot of development challenges in it, too. It's a pity, because working with highly-disconnected machines would be a really useful property sometimes at work. We deal with some remote mine sites whose network connections could be described as "intermittent" if you were being kind. That's at their home base, too. Out on drill rigs, the network does not exist. If we could maintain some functionality in those situations and create a smooth transition from online to offline and back again, we'd have much more reliable software and much happier clients.

Mokalus of Borg

PS - I've realised that "Amazing Personal Project" creates the acronym "APP".
PPS - Seems suitable.

No comments: