contributing to open source

41
Contributing to Open Source Why, How, and Aah .. :) Amol A Sale [email protected] 1

Upload: amol-sale

Post on 24-May-2015

166 views

Category:

Technology


0 download

DESCRIPTION

Presentation mainly deals with Open Source and how Os projects work? Who does it? Why they do it? Why you should contribute to Open Source? Different ways of contribution.

TRANSCRIPT

Page 1: Contributing to Open Source

Contributing to Open Source

Why, How, and Aah .. :)

Amol A [email protected]

1

Page 2: Contributing to Open Source

Outline

Who runs open source projects?

Why open source?

Business models

Contributing to open source.

Why to contribute?

What benefit student or professional gets out of it?

CMS, Desktops, Cloud, virtualization software. Business and productivity.

Case studies: google, Facebook , twitter etc.

Different ways to contribute

to ubuntu

to linux kernel

to google chrome OS

to firefox

to wikipedia

Resources2

Page 3: Contributing to Open Source

What is open source exactly and why it exists?

Wiktionary definition:

• “The practice of providing open-source code for a product; Open-source software

in general; To make open-source”

• free sharing of technological information like cooking recipes have been shared

since the beginning of human culture. Sharing cooking recipe does not mean

sharing cooked food.

3

Page 4: Contributing to Open Source

Why open source?

• Making Linux GPL'd was definitely the best thing I ever did.

• Linus Torvalds

• FLOSS potentially saves industry over 36% in software R&D investment that

can result in increased profits or be more usefully spent in further

innovation.

• No code is good code, there is always scope for improvement and human

limit may restrict the growth of your project, so open the source.

• To make your code world class.

• Open source software projects may offer a learning opportunity those

students aren’t getting in school.

• The best run open source projects have real standards, and teams of

experienced programmers.

4

Page 5: Contributing to Open Source

Who is doing it?

5

Page 6: Contributing to Open Source

6

Page 7: Contributing to Open Source

7

Page 8: Contributing to Open Source

Why they contribute?

• Companies like IBM, Intel, SGI, MIPS, Freescale, HP, etc. -- to ensure that

Linux runs well on their hardware.

• Distributors like Red Hat, Novell, and CentOS, Ubuntu have a clear interest

in making Linux as capable as it can be.

• Companies like Sony, Nokia, and Samsung ship Linux as a component of

products like video cameras, television sets, and mobile telephones.

• VMWare - built on Linux kernel.

• Nvidia – Interested in Graphics business.

• Intel – Processor family interest

• Google – Run many Linux based servers in house.

• Volkswagen?

8

Page 9: Contributing to Open Source

What do I get as a student out of it?

You get :

• Chance to interact with world class software team.

• Chance to modify or improve world class source code.

• Come out with better skills than students who only do the required class

work.

• Learn from professionals.

• Build your resume stronger.

• Learn project management.

• Learn ins and out of Source code.

9

Page 10: Contributing to Open Source

How do I Get Started ?

• Choose an area of your interest.

• Do your homework -- mailing list(s), a wiki, code repository; things done in

the past, things discussed on mailing list.

• "Be familiar with coding style, contribution practices, community email

etiquette, and copyright assignment practices for the project you are

contributing to." "Most of all, have fun! Don't be discouraged by strong

personalities in the community and try to understand other people’s

perspectives. "

• Reviewing code -- any competent developer appreciates more eyes on the

code.

• ASK questions

• Documentation as a comments inside source code

• Embedded Linux -- hot area for developers.

• Don’t forget to understand licensing.

10

Page 11: Contributing to Open Source

Business models

• Open source software can be sold and used commercially.

• Donations?

• Saas? Iaas?

• Thought there are FOSS apps around developed by big companies, Open

source does not always means free of cost.

• You can charge/sell your software along with source code.

• You can distribute it free and charge for Support.

• Important: First understand the Licensing in depth and then go with

business.

11

Page 12: Contributing to Open Source

Few Examples

• Canonical Ltd. offers Ubuntu for free, while they sell commercial technical

support contracts.

• Mozilla Foundation have a partnership with Google and other companies

which provides revenue for inclusion of search engines in Mozilla Firefox.

• MySQL is offered for free, but with the enterprise version includes support

and additional features.

• Novell offers openSUSE for free through the openSUSE Project, while selling

SUSE Linux Enterprise (SLE).

• Red Hat offers the Fedora for free through the Fedora Project, while selling

Red Hat Enterprise Linux (RHEL).

• Oracle offers OpenOffice.org for free, while selling StarOffice.

12

Page 13: Contributing to Open Source

Examples contd …

• Zend Technologies offers Zend Server CE and Zend Framework for free,

but sells Zend Server with support and additional features.

• Wikipedia – Runs of donations. Sharing what we know for free.

• KQInfotech's ZFS port to Linux

• Infibeam?

13

Page 14: Contributing to Open Source

So do you …

• ..use good quality FOSS every day?

• ..like the freedom and openness of the Internet?

• ..think that Internet content should remain free?

• ..share stuff with your friends for free?

BUT

• Did you know that all (a lot) of this stuff is based on...

FOSS ?

14

Page 15: Contributing to Open Source

Hey, Come on! These are all big MNCs selling/supporting open source software, what is there for a student like

me?

15

Page 16: Contributing to Open Source

Prodigies? 16

Page 17: Contributing to Open Source

So how you too can be one among them?

• Come up with a distinctive practical idea.

• See if there is any work done towards it in open source projects.

• If yes, See how can you adopt it and make it compatible with your idea?

• If not, start a new open source project

• Every tool is available there starting from kernel, filesystem to web server,

open source social network platform find ways to adopt it to your idea.

• CMS (Content Management Systems) – Drupal, Wordpress, Open Cart,

MediaWiki and many more.

• Open Source consultancy to SMEs or individuals.

• Open source training.

• Hosted Services – Cloud, Virtualization based infrastructure.

• Saas or Iaas

17

Page 18: Contributing to Open Source

Opportunities in India

• Ever growing Indian Market. • Indian government is going to create business opportunity

worth billions of dollars. •Web 2.0 or 3.0 – Ever growing Online business. Semantic Web

is next big thing. • Education? • Services. • Hosted services.

18

Page 19: Contributing to Open Source

Hot Tech trends today (off course with the help of Open Source tools)

• Android

• Google Chrome OS

• Amazon cloud solutions

• Eucalyptus cloud solutions

• Virtualization with vmware, xen, kvm etc.

• Diaspora

a free personal web server that implements a distributed social networking service,

providing a decentralized alternative to social network services like Facebook. a NYU

student project, they received $200,000 funding which includes a donation from Mark Z also.

• Dropbox

A cloud based file backup tool, now a days a buzzword on Internet.

19

Page 20: Contributing to Open Source

Semantic Web

• enables machines to understand the semantics, or meaning, of information on

the World Wide Web

• Web 3,0

• DBpedia

• FOAF

• Linkedin is coming with an algorithm which will predict you future achievements

at workplace.

• What will happen with our data ???

Why semantic web here?

• Most of the web 3.0 or semantic web projects are based on open source model.

20

Page 21: Contributing to Open Source

Ways to contribute.

21

Page 22: Contributing to Open Source

Linux Kernel• Choose an area of the kernel of your interest.

• Do your homework -- mailing list(s), a wiki, code repository; things done in the

past, things discussed on mailing list.

• "Be familiar with coding style, contribution practices, community email

etiquette, and copyright assignment practices for the project you are

contributing to." "Most of all, have fun! Don't be discouraged by strong

personalities in the community and try to understand other people’s

perspectives. "

• Testing kernel for different QA tests.

• Reviewing code -- any competent developer appreciates more eyes on the

code.

• Documentation as a comments inside source code

• Submitting patches.

• And you know what? It never ends …

• "Most of all, have fun!” 22

Page 23: Contributing to Open Source

Linux Kernel Useful Links

Mailing Lists

• The Linux Kernel Archives http://kernel.org/

• The linux kernel mailing list archive https://lkml.org/

• Subscriptions http://www.tux.org/lkml/

Other important Links

• Linux foundation http://www.linuxfoundation.org/

• Linux kernel interactive map http://www.makelinux.net/kernel_map

• Kernel documentation http://kernel.org/doc/

• Linux Kernel Newbie's http://kernelnewbies.org/

• TLDP http://tldp.org/

23

Page 24: Contributing to Open Source

Ubuntu

• Development

Write and package new software or fix bugs in existing software. Your

technical skills can make a real difference.

• Design

Put your creativity to work by improving the look and feel of Ubuntu. Help

design graphics, backgrounds or themes for the next release.

• Bug squad

Help make Ubuntu even better by working with bug reports to ensure

they're clear, complete and easy to reproduce. Anyone can help!

• Documentation

Help produce official documentation, share the solution to a problem, or

check, proof and test other documents for accuracy.

24

Page 25: Contributing to Open Source

Ubuntu contd…

• Support

Share your technical know-how with other users by joining email and

discussion lists or Internet relay chat (IRC) channels.

• Testing

Ubuntu releases new versions every six months so we need lots of testers

who can report or confirm problems.

• Ubuntu Brainstorm

Everyone can participate in the Brainstorm website. It's full of ideas on how

to improve Ubuntu.

http://brainstorm.ubuntu.com/

25

Page 26: Contributing to Open Source

Wikipedia

• Among top five most visited website.

• Runs on donations and contributions from around world.

• Everyone should contribute because it’s cool to share your knowledge. And

it’s a lot of fun.

• Most friendly open source project!

• Helps you to become good at writing world class articles.

How to ?

• Create an account

• Learn some basic markup syntax and go. It’s that simple.

What can be contributed?

• Articles, Images, Audio, modifications to existing articles. Participate in talk

pages, it’s a lot of fun.

26

Page 27: Contributing to Open Source

Chromium OS

• An open-source operating system built on top of linux kernel.

• Built on concept of cloud for people who spend most time on the web.

• Anybody can download the build, read/review the source code, modify and

submit it back. http://www.chromium.org/chromium-os

• Chromium OS Developer Guide

http://www.chromium.org/chromium-os/developer-guide

• A best place to participate in next big thing!

27

Page 28: Contributing to Open Source

Mozilla

• Mozilla foundation hosts many cool and successful projects.

• Firefox is one of the most downloaded software on earth.

Contribution opportunities:

• Localization

• Testing and Quality Assurance

• Coding

• Visual Design

http://www.mozilla.org/contribute/

28

Page 29: Contributing to Open Source

Other cool projects

• Xen http://www.xen.org/community/

• KVM http://www.linux-kvm.org/page/Code

• Android

• Gnome

• KDE

• File systems like ext, zfs, raiserfs.

• Content management systems like drupal, wordpress.

This list is so big and never ending:

http://en.wikipedia.org/wiki/List_of_free_and_open_source_software_packages

29

Page 30: Contributing to Open Source

Some cool Internship, Fellowship projects

30

Page 31: Contributing to Open Source

Shuttleworth Foundation 1 yr Fellowship

Program

http://www.shuttleworthfoundation.org/funding/fellowship-programme/

Does not have strictly defined areas of funding

Suggested areas

– Communication and Analytical Skills in Education

– Intellectual Property Rights

– Open and Collaborative Educational Resources

– Telecommunications

– Open Philanthropy

– Open Science

• work from where you are.

31

Page 32: Contributing to Open Source

Internship at the FSF

http://www.fsf.org/volunteer/internships

• FSF sponsors the GNU project

• Chance to work with team who writes gcc, gdb, emacs and many cool

projects.

• Work remotely

• Unpaid but value of experience counts.

32

Page 33: Contributing to Open Source

Google summer of code

• Offers student developers stipends to write code for various open

source software projects.

• accepted students are paired with a mentor[s] from the participating

projects, thus gaining exposure to real-world software development

scenarios and the opportunity for employment in areas related to

their academic pursuits.

• more source code is created and released for the use and benefit of

all.

http://code.google.com/soc/

http://code.google.com/opensource/

33

Page 34: Contributing to Open Source

The Google Open Source Programs Office

• Google’s repository of open source projects

• You get version control, issue tracking, wikis, download hosting and

other useful tools.

Get started

• Create a new open source project

• Download a project we've released

• Explore Google Code-in

• Download open source patches

http://code.google.com/opensource/

34

Page 35: Contributing to Open Source

Sourceforge, github etc.

• Web based source code repository.

• Developers have access to centralized storage and tools for

managing projects.

• Best known for providing revision control systems such as CVS, SVN,

Bazaar, Git or Mercurial.

• Project wikis, metrics and analysis, access to a MySQL database, and

unique sub-domain URLs (such as http://project-

name.sourceforge.net).

• http://sourceforge.net/

• https://github.com/

35

Page 36: Contributing to Open Source

Facebook open source

• Facebook is a modern web wonder.

• Facebook has been developed from the ground up using open source

software. Primarily LAMP.

• FB contributes to open source by releasing kernel code, open source tools,

SDKs, dev tools, technical tips about.

http://developers.facebook.com/opensource/

36

Page 37: Contributing to Open Source

Twitter Open Source

• Twitter is also built on open-source software

http://engineering.twitter.com/

http://twitter.com/about/opensource

37

Page 38: Contributing to Open Source

The wonderland of web!

• Content management systems drupal, wordpress, wikimedia.

• Business?

• Email servers

• Web servers

• Hosting.

• Cloud infrastructure. Amazon EC2?

• Intranet portals,

• E-commerce – open cart etc.

38

Page 39: Contributing to Open Source

Major linux events around us

• FOSS.in http://foss.in/

• Gnunify http://gnunify.in/

• Open Source India http://osidays.com/

39

Page 40: Contributing to Open Source

Resources to learn more

• IBM developerworks. http://www.ibm.com/developerworks/

• TLDP http://tldp.org/

• Slashdot http://linux.slashdot.org/

• MIT open courseware http://ocw.mit.edu/

• Linux Journal http://www.linuxjournal.com/

• Linux Commands http://www.linuxcommand.org/

• Learn Linux (shuttleworth foundation) http://learnlinux.tsf.org.za/

• Wikipedia

• Our best friend – Google.

40

Page 41: Contributing to Open Source

Thank You.

If you liked this presentation then download it and

“Pass it ON”

http://anandyatri.com/?page_id=338