July 28, 2014wishlist googledoc code cloud9 ace mad-eye nitrous
As a diehard Google fanboy, it is my duty to figure out how I can switch to a Chromebook as my primary laptop. The only way I can see myself doing that is if I were provided a web based programming experience that was better than coding on metal.
Enter Bryan’s fantasy world, where a flourishing space economy affords us with cheap vacations to the moon and once a year visits to grandma on the mars colony. Err… I mean where there is a really cool way to work on code in the cloud.
I started my version of this in 2012 in meteorjs, I called the project meteorite (everyone who knows meteor is laughing at me right now). It was a very primitive project where you start a meteor server and others could load it up and collaborate on changes that synced to your filesystem.
I recently started giving it a once over to see if I could get it up to snuff for my recent ideas on tightening the communication gap in something like a git workflow.
As I pulled the open source threads I found many projects from a github account by the name of mad-eye useful. After I quick search, I realized it was because they were doing exactly what I was trying to do.
- A single source of truth that my whole team can work on simultaneously
- The ability for each team member to live check out a version of the codebase that has either been vetted or written by that member
- The ability to live check out a version of the codebase that has been vetted by every member of the team (for production)
- The ability to accept changes made by team members and see who has accepted which pieces of code
This would mean turning most people’s git workflows inside out. Instead of patches and commits going into a central repository when a consensus is reached on their quality, they make their way from a central source of truth out to each individual’s server where they run their own version of the code with code that excludes code they have not yet accepted.
Not only would this eliminate merge conflicts
It would improve communication and make modeling complex problems a much more fluid team experience akin to working on a structure in minecraft.
Since I will probably never get around to doing this on my own, I figured I would share my two cents. Hope it makes your roadmap :-)