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"

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

Benefits?

  • Better quality, better tested
  • Reliable, secure, flexible
  • Free choice, standards!
free-real-estate

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

My contributions?

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

git merge

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
                        

Resources

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