Introduction to FOSS

Ranveer Aggarwal

@ranveeraggarwal

Kalpesh Krishna

@martianwars / @martiansideofthemoon

What is FOSS?

Free

You use the software - and you don't need to pay for it.

Open Source

You can see/edit the source code of the software - without using a de-compiler and without facing legal repercussions. 

Reusable

You can reuse the source code to build something of your own.

Universal Access

Any one can access Open Source Software from anywhere around the world.

Alright, so?

Just think!

How cool it would be ...

... if you could customize your software experience according to your needs ...

... and also help the developers of the software improvise it?

And that's what Open Source is all about!

But how is it different from me creating something of my own?

When you have an issue with your code, what do you do?

  • Ask a friend?
  • Ping a senior?
  • StackOverflow?
  • Google it?
  • Create a feature around it?

Asking a Friend/Senior

Generic Responses

  • Abey yaar! Infy pain hai, assignments karne hain. baad mein batata hoon.
  • Placement season hai, TA se kyun nahi poochhta
  • Google to kar!

Asking a Question of SO

Title: How to run des codez

Description: My code not working. This is code. Please make it work. 

Asking a Question of SO

Title: How to run des codez

Description: My code not working. This is code. Please make it work. 

2 minutes later ...

Votes: -1

Asking a Question of SO

Title: How to run des codez

Description: My code not working. This is code. Please make it work. 

7 minutes later ...

Votes: -5

Asking a Question of SO

Title: How to run des codez

Description: My code not working. This is code. Please make it work. 

An eternity later ...

Votes: -10

Comment: Yer a faggotz

Disclaimer

No, StackOverflow ain't bad, it's just not the right place for asking Google-able questions.

And in the end ...

You put together a piece of software that may or may not work on all systems, that may or may not be useful, that may or may not look good.

Behold Open Source!

Open Source Software is GENERALLY ...

Well Documented

  • API Docs
  • Blogposts
  • Doxygen, Javadoc, etc.

Well Supported

  • IRC
  • Mailing lists
  • Gitter

Well Designed

  • Specs before coding
  • Rigorous testing
  • User-developer interaction

Plus, you'll always get help, no matter how fundamental your doubt is!

Why should I become a contributor?

Benefits

  • Real world coding experience
  • Opportunities to interact with people all around the world
  • Swag
  • Swag
  • Swag
  • Resume point

Alright, I'm in. How do I start?

Method I: Get crackin'

Method 2: A program like GSoC

Drumrolls!

How's GSoC / Outreachy Different?

Internship

It's like an internship, only better. You work for home and earn a lot.

Preference

Participating communities take GSoC students very seriously.

What do I get out of it?

GSoC is a rewarding experience!

  • 5500 USD (3.68 lakhs INR, and we actually got it :P )
  • Swag
  • An internship point in your resume
  • Bragging rights
  • If you are lucky, a free trip abroad to the organization's annual conference.

Other Benefits

  • Get to know a LOT of brilliant people involved in that organization. They could recommend you in your future endeavours.
  • Real world projects, millions of lines of code, code review
  • Significant improvement in coding skills.
  • Self Confidence / Respect. Getting a GSoC is a worldwide respectable achievement.

Money, Fame, Respect

<<

Fun, Experience, Contacts

-Sushant Hiray, GSoC 2014

Before we start ...

  • India had the maximum number of selections in GSoC 2016 (454). It was followed by USA (118). Germany and Sri Lanka followed USA. (reference)
  • A total of 75 selections have happened from IIT Bombay in the last 12 years.
  • This time, IIT Bombay did its best! (18 selections). We fared the best among IITs.
  • IIIT Hyderbad has been consistently been at the top. (50 selections this year). (reference)
  • USA had the most mentors in 2016. (442) (reference)

Open Source 101

Here is a broad overview of getting involved.

  1. Choose an organization! 
  2. Get in touch on the IRC / mailing list.
  3. Solve your first bug.
  4. Solve some more bugs.
  5. Solve even more bugs.
  6. Identify issues, get to know people
  7. Do a GSoC / Outreachy!

Choose an Organization

This is perhaps the most important step in your journey. Keep the following in mind :-

  • This is a good place to start. (GSoC Orgs)
  • Choose whatever interests you the most. Make sure you take feedback from past GSoCers.
  • Language should not be a constraint. If you know the basics, you can learn on the fly.
  • An apt choice would be a throbbing community in your interest area.
  • If you aren't sure of your interests, take feedback from past GSoCers. Choose a good mentoring org.

Big vs Small?

A big dilemma. Here are the pros and cons. Remind me to show you examples of each.

  • Big Organization
    • Well established development techniques.
    • Better mentorship, easy to get started.
    • Larger codebase / very active people on IRC
  • Small Organization
    • More accepted by GSoC
    • Your code has a LOT more value to organization
    • More likely in interest area

Get Involved

  • Look at the CONTRIBUTING.md file for the project. (Demo). Alternatively, hunt the wikia page for "Getting Involved / Started / Contributing"
  • Join the IRC / mailing list! IRCCloud is a great IRC client. (Demo)
  • Join Github / Bugzilla / BitBucket etc as desired.
  • Say Hi! on the #introduction channel of the IRC.
  • Don't get scared.
  • Don't get scared.
  • Don't get scared.

Solve your 1st bug!

  • Every organization maintains a list of easy bugs to get started. Ask for a bug on the IRC. Mozilla has a dedicated website for this. (BugsAhoy)
  • Download and setup the source code. Don't be afraid to take help, this can be difficult.
  • Ask / Look for relevant parts of the code.
  • Solve it! Run it! Test it!
  • Learn git / mercurial
  • Follow up on the feedback received

Solve more bugs!

  • Solve some more easy bugs to gain confidence.
  • Soon people will get to know you.
  • Be active on the IRC. Keep asking for help. They will know you are serious then.
  • In case you don't like something about the organization, you should consider switching orgs.

Time to Strike!

  • You have done the basics and now it's time to strike gold.
  • Ask about active contributor programs in your organization / difficult bugs.
  • Mention that you are interested in GSoC / Outreachy.
  • Get actively involved and do great work!

GSoC / Outreachy

  • Pray your organization is selected for GSoC / Outreachy. (~mid February)
  • Get to know about the GSoC / Outreachy projects being offered. NO, you don't have to come up with your own ideas. (you shouldn't without consulting the org, in fact)
  • Write an awesome proposal. Make sure the proposal is well researched. Here's mine.
  • Make sure you ask everything. You don't need to be perfect, but the solution should be feasible. Orgs generally have a good idea about the approach.

Mozilla (Demo)

  • IRC Channels
  • Bugzilla / Github
  • Mercurial / DXR
  • BugsAhoy
  • Quarter of Contribution
  • Testing Procedures

Lastly, start now. Organizations reward effort / commitment, not talent.

Questions?

Introduction to FOSS

By Kalpesh Krishna

Introduction to FOSS

  • 844
Loading comments...

More from Kalpesh Krishna