Git & Utopian.io: Incentivising Open-Source

in #technology7 years ago (edited)

git-and-utopian-io.png

We mentioned version control in the article about the Dat protocol and the Beaker browser but only touched on the concept. When working on code there is a need to roll back into a previous state. The easier this is the better as anyone who works with code understands. When changing a website, program, or even a book it is always nice to look back on the changes you made. With a version control system, this gets visualized in the terminal or on a website like GitHub.

Github is not Git. All Github does is allow people to host their Git repositories for easy access anywhere. Git is a version control management system. By running commands a person can update, download, and read the status of any repository (repo). The creator hosts these repos where ever they decide. Be it Github, Gitlab, or their own private web server.

Git was created by Linus Torvalds, the same Linus that created and brought Linux to the GNU ecosystem. It was designed with data integrity and speed at the forefront. Linus looked for a version control management system after many Linux developers left BitKeeper.

There were many other options out at the time but none of the free systems could meet the speed Linus was looking for. These all took about thirty seconds to sync changes while the Linux project needed it to be only a three second gap at max.

After changing the copy on their machine a developer can run a command from Git to sync all changes to the main repo. These repos comprise branches that, well, branch off of the main line known as the master. Branching is useful in editing or change a file or set of files. Let's say we have a bold idea for a website upgrade. It would be foolish to make these changes live online or the master branch. Nor would it be easy to track things that break if we only use a copy without Git.

What we should do is create a branch off of the master. Changing this branch will not effect the master branch and avoid any issues. This allows anyone one to continue working with the an experimental branch while leaving the master branch unaffected. Branches get used to fix bugs or implement changes and the merge back into the master once the job is complete. A large project can have several working branches on different issues at any given time.

git-fork.png

Then there are 'forks'. A fork is when you make an exact copy of a project. This is often to aid in fixing an issue when a person is outside of the core group of developers. Once the fix or feature is complete and running well the person who created the fork can submit a 'pull request'. The pull request describes itself and is a request for the core developers to pull the updated code into the main project.

Git has a bunch more uses and features we can not cover in this post. Git is the standard version control system used today and was a vast improvement over other systems. There are cheat sheets around the web to use as reference to the commands. There are also GUI applications out for Git if the command line is not your thing. I find the commands to work the best in my use cases but then again I program in Vim...

Utopian.io

Utopian.io is taking the open-source community that exists around Github and adding rewards. The rewards get distributed in Steem for quality contributions to an open-source project. This is interesting since until now there was never a good way to get paid for the work someone labored over within the open-source community.

Most of the work done was out of hobby and for arbitrary nerd points. The more you contributed to a project the more reputation you would gain. This was if the work was useful and the code well thought out.

There are many ways that a person can help a project and they don't all include programming. Many times a project needs translation help. Even if the creator or another coder knows a second language, they will not have time to translate. If you know a language that is in need and want to help a project there are many out there. You may have to learn Git commands or a program but that is far less work than learning to program.

Another option is adding ideas to a project or open-source app you use. We all use apps and websites daily and we all have thoughts on what may make the service better. On Utopian you can submit your idea and earn steem. Be sure to make it as detailed as possible so it will be easier for the developers to implement.

git-utopian-document.png

Every project needs documentation on how it works and how to use the program or site. When a project has little or no documentation, or it is out-of-date people have a hard time using the service. Just as not every programmer can translate, the same goes for creating documents about their work.

They either don't have the time or they lack a literary background that is strong enough to make good documentation. If you are a professional writer, your skills are in dire need. The easier the documentation is to read and understand the more use a person will get out of the project.

Graphical work makes the apps and sites we use look amazing. Without graphical logos and well thought out designs our electronic world would me quite dull. As a nerd myself, the focus of any project I start is not how it looks but how well it runs.

This is why we need artists to help these open-source projects. The average person likes pretty programs with fancy buttons and icons. So much that they may pick a lower quality app just for the looks. Even us nerds do this from time to time.

If you know how to program, create art, write drafts, or translate, your help is in need within the open-source world. These projects are often small teams without the money to hire people so they need your help. There is a place for everyone to contribute and now with Utopian.io we all can get a little Steem as kick back for our work. So let's get out there and make the open-source mindset the standard, not the exception.

Thanks for reading!

If you have any questions please ask and I will do my best to get you the answer.

All images came from royalty and attribution free sources unless specified
Sort:  

This allows anyone on the master branch to continue working without the experimental branch getting in the way

Don't people generally only work on the other branches and then merge working code to master, as opposed to working directly on master and potentially breaking it..?

I'd like to learn more about utopian-io, but I didn't like that I had to give it a ton of control over my steem account, maybe once I've created a second account I'll give it a go...

Don't people generally only work on the other branches and then merge working code to master, as opposed to working directly on master and potentially breaking it.

Yes this is correct. I'll have to reword that.

Very nice post brother I m voted on all your posts and commented that you voted and commented on all my posts, please follow me .https://steemit.com/@mdjony/

Coin Marketplace

STEEM 0.17
TRX 0.15
JST 0.029
BTC 60773.82
ETH 2378.63
USDT 1.00
SBD 2.57