Open Source

what, why, how?

Who am I?

  • Sakib Hadžiavdić
  • Full stack(overflow) developer @ OliveBH
  • Visit 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"

Richard Stallman

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


  • Better quality, better tested
  • Reliable, secure, flexible
  • Free choice, standards!


  • 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...

My contributions?


  • 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


Fork - ta daaa

Clone the project

Clone... (local copy)

                        git clone

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

git merge

Synchronize changes

                            git remote add upstream
                            git fetch upstream
                            git merge upstream/master

Just to be sure:

                            git remote -v
                            git log --oneline


That's all forks!


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)

Defenders say that YOU HAVE A CHOICE...
But do YOU read every License agreement? :D