I am a programmer who has spent the last three years prototyping, studying, and thinking about what software we need.
There is a lot of software that is just now becoming possible to build and I have been extremely excited to be exploring just some of those possibilities. One thing that has challenged me has been trying to determine which projects are the most important, so that I could focus my effort on them. Additionally, running at the scale required (~350 million people in the US and ~8 billion people worldwide [though only about half currently have Internet access]) presents many challenges that do not have many well-known solutions. Much of my last year-and-a-half has been spent searching, finding, researching, and creating tools that might allow the software I have been envisioning to be created and distributed.
At the top of my list of must have software is a publicly-owned, -built, -supported, and -maintained database of everything our leaders have ever said or done that has been recorded. The database will be web-accessible, so that anyone can quickly and easily access and search the entire known-history of a politician. Using technologies that have just become available to the web, anyone will be able to contribute live audio and/or video streams to the database as well.
There is a lot to think about with this project and I look forward to having many discussions about it. Ask me anything!
~~Edit: my comment votes and replies have been rate limited since starting this AMA. My apologies if I don't get a timely response to you, it is only because I can't :/~~
Edit2: I've been able to make some more responses ~~(though I cannot vote on comments for ~23 more hours apparently)~~. If I'm not responding to you, there is a good chance it is because I am rate limited and waiting to be able to submit my response.
~~Edit3: I'm going to try to get some sleep. I'll be back when I'm up!~~
Edit4: I'm back and responding~~, but rate-limited again~~. I will get to your question soon!
view the rest of the comments →
[–] jsprogrammer [S] 0 points 1 point 1 point (+1|-0) ago
I could build this solution too. I think it could work for a very minimal version (I already run some projects in a similar manner), however, if you want to do anything with WebRTC, there are additional services that must be ran. Also, if you want multiple people to be able to edit the database (which I think is necessary), the approach won't scale that well.
[–] voice_of_reason ago (edited ago)
Why would it not scale? Github was created by very intelligent people and I would think no matter how many people push or accept a pull request at once, their system will queue and handle it. Many very large software projects with hundreds of authors use github.
Since you are typically only adding NEW files, the git merges would be done automatically by github, on their end. No need for manually using git to approve each addition. The only time when human intervention is needed would be if two users edit the same file at once in a way that git cannot automatically resolve. But this would be a problem in an editing system of any scale.
[–] jsprogrammer [S] ago
Oh, git itself can scale, but yeah, the scaling issue is with concurrent editing. I'll have to think if this can be done solely by adding files, but I think there at least needs to be an index that would need updating. Something like PostgreSQL can scale particular types of concurrent editing better than git. For now though, I'm going to see how far I can take the git only approach. I really like its replication "story".