KEMBAR78
Open source | PPTX
Open Source
How to Join the Community
Nathan L Smith
Engineering Lead – User interface
Chef
“Open source as a development
model promotes:
Universal access via free license to a
product’s design or or blueprint
Universal redistribution of that design
or blueprint, including subsequent
improvements by anyone”
What is Open Source?
Source?
- Wikipedia
Why Should I Care?
Why Should I Care?
Open source software lets you use other peoples’ code for free
Why Should I Care?
Open source software lets you use other peoples’ code for free
modern civilization exist
Why Contribute?
You’re benefiting from the work of others
├─┬ chai@1.8.1
│ ├── assertion-error@1.0.0
│ └─┬ deep-eql@0.1.3
│ └── type-detect@0.1.1
├─┬ karma@0.10.10 peer invalid
│ ├─┬ chokidar@0.8.2
│ │ ├─┬ fsevents@0.2.0
│ │ │ └── nan@0.8.0
│ │ └── recursive-readdir@0.0.2
│ ├── coffee-script@1.6.3
│ ├── colors@0.6.0-1
│ ├─┬ connect@2.8.8
│ │ ├── buffer-crc32@0.2.1
│ │ ├── bytes@0.2.0
│ │ ├── cookie@0.1.0
│ │ ├── cookie-signature@1.0.1
│ │ ├─┬ debug@1.0.2
│ │ │ └── ms@0.6.2
│ │ ├── formidable@1.0.14
│ │ ├── fresh@0.2.0
│ │ ├── methods@0.0.1
│ │ ├── pause@0.0.1
│ │ ├── qs@0.6.5
│ │ ├─┬ send@0.1.4
│ │ │ └── range-parser@0.0.4
│ │ └── uid2@0.0.2
analytics-ruby
and_feathers (>= 1.0.0.pre)
and_feathers-gzipped_tarball (>= 1.0.0.pre)
aws-sdk
byebug
capybara
chef
chef-legacy!
compass-rails
coveralls
database_cleaner
dotenv
factory_girl
faker
foreman
jbuilder
kaminari
launchy
license_finder
magiconf
mail_view
mixlib-authentication
newrelic_rpm
nokogiri
octokit!
omniauth
(Gemfile.lock and npm ls from Chef Supermarket)
Why Contribute?
Help people like yourself
No matter what your level of experience, there will always be somebody who knows less than you do.
Why Contribute?
Help people like yourself
No matter what your level of experience, there will always be somebody who knows less than you do.
Become a better engineer
Reading and writing code is what makes you learn coding. The best way to learn is to teach.
Why Contribute?
Help people like yourself
No matter what your level of experience, there will always be somebody who knows less than you do.
Become a better engineer
Reading and writing code is what makes you learn coding. The best way to learn is to teach.
Make friends
Code is communication. The open source community is people. Many of them are nice and will help you and
have beers with you.
Ways to Contribute
Stack Overflow
Ask questions. Read questions and answers. Answer questions.
Ways to Contribute
Stack Overflow
Ask questions. Read questions and answers. Answer questions.
IRC
Many projects have IRC channels filled with lost souls. Try answering at least one question for each one you
ask. (freenode.net is a good place to start.)
Ways to Contribute
Stack Overflow
Ask questions. Read questions and answers. Answer questions.
IRC
Many projects have IRC channels filled with lost souls. Try answering at least one question for each one you
ask. (freenode.net is a good place to start.)
GitHub
Chances are most open source software you’re using is on there. Found a bug in it? Fix it! Found a typo in a
README? Fix it! Want to share your pet project with the world? Somebody might like it, and maybe they will
fix that typo in your README.
Starting With GitHub*
Learn Git
Git Real from Code School is a great place to learn the basics. The Pro Git book is open source and free to
read online. GitHub Help is helpful.
* Bitbucket and CodePlex are nice too.
Starting With GitHub*
Learn Git
Git Real from Code School is a great place to learn the basics. The Pro Git book is open source and free to
read online. GitHub Help is helpful.
Scratch an itch
Fix a bug (you will find one) or implement a feature on a project you use. Many projects are short on
documentation. Go read the code and write some. Or just look through open issues on projects that interest
you.
* Bitbucket and CodePlex are nice too.
Starting With GitHub*
Learn Git
Git Real from Code School is a great place to learn the basics. The Pro Git book is open source and free to
read online. GitHub Help is helpful.
Scratch an itch
Fix a bug (you will find one) or implement a feature on a project you use. Many projects are short on
documentation. Go read the code and write some. Or just look through open issues on projects that interest
you.
Open source your stuff
Got a really dumb game you wrote for the heck of it? A class project? Something you wrote to make life
easier? You can share it.
* Bitbucket and CodePlex are nice too.
Open Sourcing your Stuff
…can be a life-long commitment. If you stop using your own project or don’t have time to care, try and find
someone who is using who would be willing to maintain it.
If you don’t want to maintain it anymore, at least say so in the README.
It’s ok. Most people will understand.
If you are maintaining your project, try to be prompt in responding, but don’t be pressured to fix everybody’s
problems right away.
When you enthusiastically accept peoples’ input, and help them fix the problem themselves, you’ll build them
up and take pressure off of yourself.
People might not always be nice. Don’t be discouraged. The internet is full of complainers and assholes. Try to
be as nice to them as you are to the nice people.
Non-Tech Stuff You Should Know About
Licenses
You probably aren’t a lawyer and don’t want to spend money on one to figure out what license you should use.
MIT and Apache are common ones and a good bet. choosealicense.com has some useful basic information
but should not be considered legal advice.
Non-Tech Stuff You Should Know About
Licenses
You probably aren’t a lawyer and don’t want to spend money on one to figure out what license you should use.
MIT and Apache are common ones and a good bet. choosealicense.com has some useful basic information
but should not be considered legal advice.
CLAs
Some projects require you to sign a Contributor License Agreement in order to protect you and the project
maintainers from patent-related legal action. Many corporations won’t use software unless it has one. These
are ok to sign, but as with any document, read it first.
* US Law required at least 1 meme per slide deck
*
Thank You
smith@getchef.com
https://github.com/smith
https://twitter.com/nlsmith
Open source

Open source

  • 1.
    Open Source How toJoin the Community Nathan L Smith Engineering Lead – User interface Chef
  • 2.
    “Open source asa development model promotes: Universal access via free license to a product’s design or or blueprint Universal redistribution of that design or blueprint, including subsequent improvements by anyone” What is Open Source? Source? - Wikipedia
  • 3.
  • 4.
    Why Should ICare? Open source software lets you use other peoples’ code for free
  • 5.
    Why Should ICare? Open source software lets you use other peoples’ code for free modern civilization exist
  • 6.
    Why Contribute? You’re benefitingfrom the work of others ├─┬ chai@1.8.1 │ ├── assertion-error@1.0.0 │ └─┬ deep-eql@0.1.3 │ └── type-detect@0.1.1 ├─┬ karma@0.10.10 peer invalid │ ├─┬ chokidar@0.8.2 │ │ ├─┬ fsevents@0.2.0 │ │ │ └── nan@0.8.0 │ │ └── recursive-readdir@0.0.2 │ ├── coffee-script@1.6.3 │ ├── colors@0.6.0-1 │ ├─┬ connect@2.8.8 │ │ ├── buffer-crc32@0.2.1 │ │ ├── bytes@0.2.0 │ │ ├── cookie@0.1.0 │ │ ├── cookie-signature@1.0.1 │ │ ├─┬ debug@1.0.2 │ │ │ └── ms@0.6.2 │ │ ├── formidable@1.0.14 │ │ ├── fresh@0.2.0 │ │ ├── methods@0.0.1 │ │ ├── pause@0.0.1 │ │ ├── qs@0.6.5 │ │ ├─┬ send@0.1.4 │ │ │ └── range-parser@0.0.4 │ │ └── uid2@0.0.2 analytics-ruby and_feathers (>= 1.0.0.pre) and_feathers-gzipped_tarball (>= 1.0.0.pre) aws-sdk byebug capybara chef chef-legacy! compass-rails coveralls database_cleaner dotenv factory_girl faker foreman jbuilder kaminari launchy license_finder magiconf mail_view mixlib-authentication newrelic_rpm nokogiri octokit! omniauth (Gemfile.lock and npm ls from Chef Supermarket)
  • 7.
    Why Contribute? Help peoplelike yourself No matter what your level of experience, there will always be somebody who knows less than you do.
  • 8.
    Why Contribute? Help peoplelike yourself No matter what your level of experience, there will always be somebody who knows less than you do. Become a better engineer Reading and writing code is what makes you learn coding. The best way to learn is to teach.
  • 9.
    Why Contribute? Help peoplelike yourself No matter what your level of experience, there will always be somebody who knows less than you do. Become a better engineer Reading and writing code is what makes you learn coding. The best way to learn is to teach. Make friends Code is communication. The open source community is people. Many of them are nice and will help you and have beers with you.
  • 10.
    Ways to Contribute StackOverflow Ask questions. Read questions and answers. Answer questions.
  • 11.
    Ways to Contribute StackOverflow Ask questions. Read questions and answers. Answer questions. IRC Many projects have IRC channels filled with lost souls. Try answering at least one question for each one you ask. (freenode.net is a good place to start.)
  • 12.
    Ways to Contribute StackOverflow Ask questions. Read questions and answers. Answer questions. IRC Many projects have IRC channels filled with lost souls. Try answering at least one question for each one you ask. (freenode.net is a good place to start.) GitHub Chances are most open source software you’re using is on there. Found a bug in it? Fix it! Found a typo in a README? Fix it! Want to share your pet project with the world? Somebody might like it, and maybe they will fix that typo in your README.
  • 13.
    Starting With GitHub* LearnGit Git Real from Code School is a great place to learn the basics. The Pro Git book is open source and free to read online. GitHub Help is helpful. * Bitbucket and CodePlex are nice too.
  • 14.
    Starting With GitHub* LearnGit Git Real from Code School is a great place to learn the basics. The Pro Git book is open source and free to read online. GitHub Help is helpful. Scratch an itch Fix a bug (you will find one) or implement a feature on a project you use. Many projects are short on documentation. Go read the code and write some. Or just look through open issues on projects that interest you. * Bitbucket and CodePlex are nice too.
  • 15.
    Starting With GitHub* LearnGit Git Real from Code School is a great place to learn the basics. The Pro Git book is open source and free to read online. GitHub Help is helpful. Scratch an itch Fix a bug (you will find one) or implement a feature on a project you use. Many projects are short on documentation. Go read the code and write some. Or just look through open issues on projects that interest you. Open source your stuff Got a really dumb game you wrote for the heck of it? A class project? Something you wrote to make life easier? You can share it. * Bitbucket and CodePlex are nice too.
  • 16.
    Open Sourcing yourStuff …can be a life-long commitment. If you stop using your own project or don’t have time to care, try and find someone who is using who would be willing to maintain it. If you don’t want to maintain it anymore, at least say so in the README. It’s ok. Most people will understand. If you are maintaining your project, try to be prompt in responding, but don’t be pressured to fix everybody’s problems right away. When you enthusiastically accept peoples’ input, and help them fix the problem themselves, you’ll build them up and take pressure off of yourself. People might not always be nice. Don’t be discouraged. The internet is full of complainers and assholes. Try to be as nice to them as you are to the nice people.
  • 17.
    Non-Tech Stuff YouShould Know About Licenses You probably aren’t a lawyer and don’t want to spend money on one to figure out what license you should use. MIT and Apache are common ones and a good bet. choosealicense.com has some useful basic information but should not be considered legal advice.
  • 18.
    Non-Tech Stuff YouShould Know About Licenses You probably aren’t a lawyer and don’t want to spend money on one to figure out what license you should use. MIT and Apache are common ones and a good bet. choosealicense.com has some useful basic information but should not be considered legal advice. CLAs Some projects require you to sign a Contributor License Agreement in order to protect you and the project maintainers from patent-related legal action. Many corporations won’t use software unless it has one. These are ok to sign, but as with any document, read it first.
  • 19.
    * US Lawrequired at least 1 meme per slide deck *
  • 20.