SlideShare a Scribd company logo
Doing Open Source
(The Right Way)
Charles
Oliver
Nutter
@headius
JRuby Guy at Red Hat
And you?
Developer?
Using open source?
Contributor?
Leader?
http://upload.wikimedia.org/wikipedia/en/a/ad/UnknownComic.jpg
Open Source
Open Source
Software
Open-source software (OSS) is computer software
with its source code made available with a license
in which the copyright holder provides the rights
to study, change and distribute the software to
anyone and for any purpose.
http://en.wikipedia.org/wiki/Open-source_software
…study, change and
distribute the software to
anyone and for any purpose.
Free Software
Free as in freedom
Free as in liberty
Free and Open Source
Software
…computer software that can be classified as both
free software and open source software…anyone
is freely licensed to use, copy, study, and change
the software in any way, and the source code is
openly shared so that people are encouraged to
voluntarily improve the design of the software.
http://en.wikipedia.org/wiki/Free_and_open-
source_software
freely licensed
use, copy, study, and
change the software
source code is openly
shared
people are encouraged to
voluntarily improve the
design of the software
https://www.openhub.net/
https://www.openhub.net/p/firefox
https://www.openhub.net/p/firefox
Big Wins
Linux and the BSDs
Firefox and Chrome
PHP, Python, Ruby, Perl, Erlang, Go, Dart, …
OpenJDK and Mono
Web Server Share
Source Date
Unix, Unix-
like
Windows
W3Techs
February
2014
67% 33%
Security
Space
November
2012
62-82% 18-38%
http://en.wikipedia.org/wiki/Usage_share_of_operating_systems#Servers_on_the_Internet
Unix or Unix-like?
Linux - 54.9%
BSD - 1.4%
Darwin, HP-UX, Solaris - < 0.1%
Unknown - 43.6
http://en.wikipedia.org/wiki/Usage_share_of_operating_systems#Servers_on_the_Internet
http://upload.wikimedia.org/wikipedia/commons/0/0d/
Operating_systems_used_on_top_500_supercomputers.svg
http://upload.wikimedia.org/wikipedia/commons/8/86/Usage_share_of_web_browsers_
%28Source_StatCounter%29.svg
Benefits to User
Cost savings…sometimes
Visibility
Empowered to make changes
Commercial support is available
Red Hat, e.g.
All because of you
Not possible
without you.
Why Get Involved?
Huge learning opportunity
Great resume builder
Community and social aspects
It’s great fun!
Finding a Project
A tool or library you already use
A technology you are interested in
A language you want to learn
A project you simply want to help
LiteStep
http://www.litestep.net/snapshot2.png
LiteStep
A project I was using myself
Development had slowed
Large, monolithic codebase
Languages and APIs I was familiar with
JRuby
Implementation of Ruby
Written in Java
Development had slowed
Many tasks
Beginner to advanced
Getting Involved
Meet the Community
Mailing lists and forums
Chat services like IRC or Gitter
Q/A sites like Stack Overflow
Social sites like LinkedIn or Facebook
Open Source Software Needs You!
Open Source Software Needs You!
A Good Contributor
1. Respects and forgives others
2. Recognizes expertise
3. Increases the pool of resources
JRuby Commits
49% 51%
Paid Unpaid
Things to Contribute
Help field questions on lists, forums, IRC
Improve documentation
Present at a conf or user group
File bugs or submit fixes
A Good Bug Reporter
Clearly states expectation vs reality
Provides code or steps to reproduce
Volunteers relevant env details
Responds to updates and comments
Open Source Software Needs You!
Open Source Software Needs You!
Open Source Software Needs You!
Going Deeper
Bug triage
Help guide other bug reporters
Observe fixes for other bugs
Attempt your own fix!
Fear Itself
Afraid I’m not good enough
Afraid I don’t know the best solution
Afraid to make things worse
Afraid I’ll be mocked or insulted
My JRuby Contributions
Several rewrites of interpreter
JIT compiler to JVM bytecode
Native I/O and process subsystem
Ruby/Java integration layer
I did not know how
to do these things.
Bug Fix Types
Behavior
Performance
Documentation
Quality
http://upload.wikimedia.org/wikipedia/commons/9/9b/Insect_antennae_comparison.jpg
Crafting a Fix
Get a local copy of the code
Make your changes
Confirm they fix the original issue
Confirm they do not fail tests
Submit fix as a patch or pull request
A Good Patch
Fixes the original problem
Limits changes to the actual fix
Matches coding style
Maintains documentation truths
Includes a regression test
Open Source Software Needs You!
Open Source Software Needs You!
More Tips
Ask for help
Accept that patch review takes time
Not all patches are accepted
Be willing to iterate
Into the Core
Becoming a Committer
http://upload.wikimedia.org/wikipedia/commons/0/07/Earth_poster.svg
Becoming a Committer
Proven track record of contributions
Respectful member of community
Sustained interest
Domain expertise
Profile: mkristian
Maven integration expert
Consistently submitting patches
Maintaining related libraries
Active user
Open Commit Bit
Alternative path to core
One accepted patch and you’re in
Rapidly adds new core members
Rewards early participation
Core members are dev,
manager, evangelist,
and QA rolled into one.
A Good Core Contributor
Respectfully handles bugs and patches
Discusses changes where necessary
Does not violate others’ code
Keeps the project’s tests green
Remains humble
Assume you are
wrong.
Open Source Software Needs You!
Not all bugs are in
code.
User experience
matters.
Starting a Project
Missing tool or library
Code others find useful
Community needed
An itch to scratch
http://upload.wikimedia.org/wikipedia/commons/1/13/Michelangelo%2C_Creation_of_Adam_06.jpg
Licensing
http://upload.wikimedia.org/wikipedia/commons/2/29/Software_Categories.png
I am not a lawyer.
Criteria
Sharing of source
Assignment of rights
Attribution
Lifecycle of alterations
http://choosealicense.com/
Contributor Agreement?
Requires users to “sign” an agreement
Permission to release changes
Copyright assignment
Permission to change licensing
Public assertion is often enough
Relicensing?
Changing software license requires
permission of all contributors
Get it right the first time or you’ll be
chasing people around
Some licenses have upgrade clause
CPL to EPL, e.g.
Get It Out There
Use services familiar to community
Include license from day 0
Include README, build scripts, examples
Tell others in the community
…but don’t expect a flood of users
https://github.com
https://github.com/jruby/jruby
https://bitbucket.org/headius/jdk-panama
https://www.codeplex.com/
Release the Hounds!
http://rubygems.org/
https://vidcoder.codeplex.com/
A Good Community
Member
Has a thick skin
Expects to learn from everyone
Remembers that these are real people
Making Time
Make it a fun hobby
Prefer jobs that support OSS
Explain the benefits to your partner
Keep projects and interest aligned
Encouraging
Contribution
Ask for help
Be honest
Be responsive
Empathize
Final Words
The world runs on
OSS.
OSS would not exist
without your help.
You are the most
important
contributor.
Thank you!
Charles Oliver Nutter
@headius

More Related Content

PDF
Doing Open Source the Right Way
PPT
Open source software by Tushar Joshi
DOCX
Open source
PPTX
Introduction to Open Source
PPT
Closed systems, open systems
PDF
Open vs Closed - Which is more secure?
PDF
InvokeBinder: Fluent Programming for Method Handles
PDF
Ruby Performance - The Last Mile - RubyConf India 2016
Doing Open Source the Right Way
Open source software by Tushar Joshi
Open source
Introduction to Open Source
Closed systems, open systems
Open vs Closed - Which is more secure?
InvokeBinder: Fluent Programming for Method Handles
Ruby Performance - The Last Mile - RubyConf India 2016

Viewers also liked (20)

PDF
Fast as C: How to Write Really Terrible Java
PDF
Down the Rabbit Hole: An Adventure in JVM Wonderland
PDF
The Hitchhikers' Guide to Free and Open Source Software Development (CompCon ...
PDF
Transforming IT with an Open Source Strategy
PDF
Open Source as IT and Business Strategy
PDF
symfony: An Open-Source Framework for Professionals (PHP Day 2008)
PDF
112 - The Role of Mentoring and Project Characteristics for Onboarding in Ope...
PPTX
Open source software development
PPT
Defining an Open Source Software Trustworthiness Model
PDF
An Open Source Workshop
PPTX
Open Source as an Element of Corporate Strategy
PPT
Free and Open Source Software
PDF
"IBMs Open Source Strategy" by Adam Jollans @ eLiberatica 2009
PPTX
Open Source as an Element of Corporate Strategy
PDF
Open Source Software - A Guide to Innovation
PDF
10 Reasons To Use Open Source Software-Defined Networking
PPT
Open Source Software Presentation
PDF
Open Source Software - Avoiding Common Pitfalls
PPT
Opensource Powerpoint Review.Ppt
PPT
An Open Source Strategy for NASA
Fast as C: How to Write Really Terrible Java
Down the Rabbit Hole: An Adventure in JVM Wonderland
The Hitchhikers' Guide to Free and Open Source Software Development (CompCon ...
Transforming IT with an Open Source Strategy
Open Source as IT and Business Strategy
symfony: An Open-Source Framework for Professionals (PHP Day 2008)
112 - The Role of Mentoring and Project Characteristics for Onboarding in Ope...
Open source software development
Defining an Open Source Software Trustworthiness Model
An Open Source Workshop
Open Source as an Element of Corporate Strategy
Free and Open Source Software
"IBMs Open Source Strategy" by Adam Jollans @ eLiberatica 2009
Open Source as an Element of Corporate Strategy
Open Source Software - A Guide to Innovation
10 Reasons To Use Open Source Software-Defined Networking
Open Source Software Presentation
Open Source Software - Avoiding Common Pitfalls
Opensource Powerpoint Review.Ppt
An Open Source Strategy for NASA
Ad

Similar to Open Source Software Needs You! (20)

PPT
Radically open documentation
PPT
Open Source Software in Libraries
PDF
Building a Great Team in Open Source - Open Agile 2011
PDF
Discover the Power of Open Source Project Collaboration
KEY
Open Source: What’s this all about?
PPTX
Open Source Project Management
PPT
Do It Yourself LMS: Open-Source and Hi-Tech Possibilities
PDF
Summit_Presentation-1.0.pdf
PPT
Open Source Maturity and Suitability
ODP
Introduction To Fedora
PPTX
LINUX BASICS
PDF
OPS_Unit-1--Open Source Demystifying.pdf
ODP
Opensource Talk
ODP
Opensource Talk
PPT
Open_Source_for_DT
ODP
Open Source: Freedom and Community
PPTX
How to get started in Open Source!
KEY
Open Source Compliance at Twitter
PPT
Open Source for an Open World
PPTX
Ten Open Source Tools Which Will Transform Your Library and Your Library Budget*
Radically open documentation
Open Source Software in Libraries
Building a Great Team in Open Source - Open Agile 2011
Discover the Power of Open Source Project Collaboration
Open Source: What’s this all about?
Open Source Project Management
Do It Yourself LMS: Open-Source and Hi-Tech Possibilities
Summit_Presentation-1.0.pdf
Open Source Maturity and Suitability
Introduction To Fedora
LINUX BASICS
OPS_Unit-1--Open Source Demystifying.pdf
Opensource Talk
Opensource Talk
Open_Source_for_DT
Open Source: Freedom and Community
How to get started in Open Source!
Open Source Compliance at Twitter
Open Source for an Open World
Ten Open Source Tools Which Will Transform Your Library and Your Library Budget*
Ad

More from Charles Nutter (20)

PDF
The Year of JRuby - RubyC 2018
PDF
JRuby 9000 - Optimizing Above the JVM
PDF
JRuby and Invokedynamic - Japan JUG 2015
PDF
JRuby 9000 - Taipei Ruby User's Group 2015
PDF
Over 9000: JRuby in 2015
PDF
JRuby: The Hard Parts
PDF
Bringing Concurrency to Ruby - RubyConf India 2014
PDF
Beyond JVM - YOW! Sydney 2013
PDF
Beyond JVM - YOW! Brisbane 2013
PDF
Beyond JVM - YOW Melbourne 2013
PDF
Down the Rabbit Hole
PDF
The Future of JRuby - Baruco 2013
PDF
High Performance Ruby - E4E Conference 2013
PDF
Invokedynamic in 45 Minutes
PDF
Invokedynamic: Tales from the Trenches
KEY
Why JRuby? - RubyConf 2012
KEY
Aloha RubyConf 2012 - JRuby
KEY
JavaOne 2012 - JVM JIT for Dummies
KEY
High Performance Ruby - Golden Gate RubyConf 2012
KEY
Euruko 2012 - JRuby
The Year of JRuby - RubyC 2018
JRuby 9000 - Optimizing Above the JVM
JRuby and Invokedynamic - Japan JUG 2015
JRuby 9000 - Taipei Ruby User's Group 2015
Over 9000: JRuby in 2015
JRuby: The Hard Parts
Bringing Concurrency to Ruby - RubyConf India 2014
Beyond JVM - YOW! Sydney 2013
Beyond JVM - YOW! Brisbane 2013
Beyond JVM - YOW Melbourne 2013
Down the Rabbit Hole
The Future of JRuby - Baruco 2013
High Performance Ruby - E4E Conference 2013
Invokedynamic in 45 Minutes
Invokedynamic: Tales from the Trenches
Why JRuby? - RubyConf 2012
Aloha RubyConf 2012 - JRuby
JavaOne 2012 - JVM JIT for Dummies
High Performance Ruby - Golden Gate RubyConf 2012
Euruko 2012 - JRuby

Recently uploaded (20)

PDF
Digital Strategies for Manufacturing Companies
PPTX
Operating system designcfffgfgggggggvggggggggg
PDF
AI in Product Development-omnex systems
PDF
2025 Textile ERP Trends: SAP, Odoo & Oracle
PDF
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
PDF
Adobe Illustrator 28.6 Crack My Vision of Vector Design
PDF
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
PPTX
Online Work Permit System for Fast Permit Processing
PPTX
VVF-Customer-Presentation2025-Ver1.9.pptx
PDF
Understanding Forklifts - TECH EHS Solution
PPTX
Materi-Enum-and-Record-Data-Type (1).pptx
PPTX
ai tools demonstartion for schools and inter college
PPTX
history of c programming in notes for students .pptx
PPT
Introduction Database Management System for Course Database
PDF
top salesforce developer skills in 2025.pdf
PPTX
Transform Your Business with a Software ERP System
PDF
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
PPTX
L1 - Introduction to python Backend.pptx
PPT
JAVA ppt tutorial basics to learn java programming
PDF
System and Network Administraation Chapter 3
Digital Strategies for Manufacturing Companies
Operating system designcfffgfgggggggvggggggggg
AI in Product Development-omnex systems
2025 Textile ERP Trends: SAP, Odoo & Oracle
Addressing The Cult of Project Management Tools-Why Disconnected Work is Hold...
Adobe Illustrator 28.6 Crack My Vision of Vector Design
Claude Code: Everyone is a 10x Developer - A Comprehensive AI-Powered CLI Tool
Online Work Permit System for Fast Permit Processing
VVF-Customer-Presentation2025-Ver1.9.pptx
Understanding Forklifts - TECH EHS Solution
Materi-Enum-and-Record-Data-Type (1).pptx
ai tools demonstartion for schools and inter college
history of c programming in notes for students .pptx
Introduction Database Management System for Course Database
top salesforce developer skills in 2025.pdf
Transform Your Business with a Software ERP System
Adobe Premiere Pro 2025 (v24.5.0.057) Crack free
L1 - Introduction to python Backend.pptx
JAVA ppt tutorial basics to learn java programming
System and Network Administraation Chapter 3

Open Source Software Needs You!