Share
Embed
What's the fuss about the Open Source?
Introduction to Open Source and GSoC
Sushant Hiray
September 23, 2014
Transcript
27 slides
-
O P E N S O U R C E
W H A T ’ S T H E F U S S A B O U T - Sushant Hiray -
E R R M W H AT ? O P
E N S O U R C E -
• O P E N A S I N F
R E E • O P E N A S I N A C C E S S • O P E N A S I N N O T C L O S E D • O P E N A S I N R E U S E A N D C H A N G E • O P E N A S I N A N Y P L A C E A N D F O R A N Y O N E O P E N S O U R C E P H I L O S O P H Y -
W H Y O P E N S O U
R C E S O F T WA R E ? • Availability of source code • No re-inventing of wheel • Quality is perhaps better • Costs less/free as compared to proprietary counterparts • Anyone can fix bugs and adapt accordingly -
P H I L O S O P H Y
B E H I N D G S O C Why does Google hold it every year? -
L O N G T E R M B E
N E F I T S • Increasing Open Source participation among students • Help open source software projects in finding interested and capable developers • Promote collaborative coding among students -
S H O R T T E R M B
E N E F I T S • Provide budding developers with exposure to industry level code • Help the selected FOSS projects to get closer to their next release • Forge relationships between various open source communities and universities -
W H AT ’ S I N I T F
O R Y O U ? -
T H E O B V I O U S
B E N E F I T S • 5500 USD (Quite a huge sum!) • T Shirt and other freebies • Resume point • Bragging Rights -
F U N , E X P E R I
E N C E A N D C O N TA C T S M O N E Y, FA M E A N D R E S P E C T < -
T H E M O R E I M P
O R TA N T B E N E F I T S • Exposure to open source development • Working with projects > million lines of code • Working collaboratively with a team that is distributed globally • Working on production level code • Learning from the pro developers -
M Y E X P E R I E N
C E • How a large codebase is managed • Good programming techniques • Time Management • Code Review • Improved soft skills • Working in sync according to weird timezones -
T I P S F O R F U T
U R E G S O C C E R S • Choose a project wisely (Organizations such as Mozilla, SymPy etc get a lot of applications, which means lower chance of selection) • Choose a project which matches your skills • Expected to work 20-30 hrs every week. Can vary according to the org. (SymPy expects 40 hrs! ) • Be polite and patient on mailing lists -
G E T T I N G S TA R
T E D W I T H O P E N S O U R C E -
C H O O S I N G A L
A N G U A G E • Possibly your favourite programming language • Should’ve enough experience with the language • If you’re not sure work on a mini project. github.com/ karan/Projects has a lot of easy to complete project ideas. -
F I N D I N G E A S
Y T O F I X B U G S There are 2 ways to start filtering bugs: • Fixing random bugs • Choosing a project and diving deep! -
F I N D I N G E A S
Y T O F I X B U G S OpenHatch is primarily for beginners and filters bugs wrt language and projects. I started searching for bugs using openhatch. -
C A U T I O N It might be
possible that a bug is marked easy to fix, but it is not easily understood by a beginner. Pro Tip: Posting willingness to work on a bug almost always help. Easy-to-fix bugs/mentored bugs have a dedicated mentor who will guide you on fixing the bug. -
B U G F O U N D . W
H AT N E X T ? Post on the relevant bug about your willingness to work on it. For eg: Hi, I’m Sushant. I’m currently new here and wish to work on this bug. Can you please guide me on the next steps? You should get a reply back by the mentor explaining on setting up your system and reproducing the bug. ProTip: In case you’ve figured out something more about the bug, do mention it in your initial post. -
K N O W Y O U R T O
O L S Meanwhile its good to know about these tools: • IRC (Internet Relay Chat) • Mailing Lists • Version Control Systems (git/hg/svn) • Bugzilla / Issue Tracker -
N E X T S T E P S •
An important part in fixing bugs is to be able to reproduce them. In some cases, the bug might be a programming error and need not be reproduced. • Understanding the relevant codebase. The entire project might be million lines, you just need to understand enough to be able to fix the erroneous code -
N E X T S T E P S •
Show Interest • Write a patch to fix the bug • Test the change. Possibly add unit tests to check your changes. • Get the code reviewed • Iterate till you get a r+ -
P R O U D LY S H O W
O F F !