Open Source
what, why, how?
Who am I?
- Sakib Hadžiavdić
- Full stack(overflow) developer @ OliveBH
- Visit sake.ba for more cool stuff
- Check out Hepek static site generator
Bit of history
- Before 70's, software source was distributed freely, mostly among academia
- As OS-es became more expensive to make,
AT&T started to charge for UNIX, Microsoft for its stuff etc.
- 1983 IBM no longer distributed sources with purchased software
Saint IGNUcius?
aka Richard Stallman
"Church of Emacs" vs
"VI VI VI is the editor of the beast"
Open Source?
- author/maintainer leads the project
in "right" direction
- everyone must respect project's licence and give author credit and money!
- contributors give back contributions
through Pull Requests
- others can fork it for free and continue in a different direction
Benefits?
- Better quality, better tested
- Reliable, secure, flexible
- Free choice, standards!
Licences
- MIT, BSD - very permissive, just don’t sue me
- Apache - same, plus can't (troll) patent this
- GPL - same, plus everything you make must be GPL!
Why get included?
- Improve your skills, communication, meet new people
- Be famous, important, influential
- Change the world...
Technicalities
- fork (copy project)
- clone (local copy of your copy)
- commit (save changes)
- push (push changes to your copy)
- pull request (request to include your changes to original project)
- merge (include your changes, if all right)
Fork/Copy the project
Forking...
Fork - ta daaa
Clone the project
Clone... (local copy)
git clone https://github.com/sake92/focustube.git
Pre-commit check!
Check if everything ok...
Commit/accept changes
git add .
git commit -m "Make stuff awesome."
Push changes to your fork
git push origin master
Make a PR
Compare changes
(are you sure?)
Write appropriate explanation
Review and Merge changes
Synchronize changes
git remote add upstream https://github.com/TheAdnan/focustube.git
git fetch upstream
git merge upstream/master
Just to be sure:
git remote -v
git log --oneline
That's all forks!
Questions?
Free software? Slobodan, ne nužno besplatan (freeware je besplatan)
~ same as Open Source software
Free software is software that comes with permission for anyone to use,
copy, and/or distribute, either verbatim or with modifications, either gratis or for a fee.
In particular, this means that source code must be available.
Free of charge? How to make money?
- Platforms and services (Wordpress, Pivotal...)
- Support, expertize (RedHat)
- Sell binaries/distros
- Donations
"Copyleft" refers to licenses that allow derivative works but require them to use the same license as the original work.
(GNU GPL)
https://en.wikipedia.org/wiki/Viral_license
Defenders say that YOU HAVE A CHOICE...
But do YOU read every License agreement? :D