+ All Categories
Home > Software > Open source and then some: An Introduction

Open source and then some: An Introduction

Date post: 15-Feb-2017
Category:
Upload: akash-tandon
View: 546 times
Download: 1 times
Share this document with a friend
30
Transcript
Page 1: Open source and then some: An Introduction
Page 2: Open source and then some: An Introduction

Open Source and

then someHow a printer and few geeks

revolutionized computingCreated by: Akash Tandon

Email: [email protected]: https://in.linkedin.com/in/akashtandon

Page 3: Open source and then some: An Introduction
Page 4: Open source and then some: An Introduction

Richard Stallman

Founder of the Free Software Movement

Page 5: Open source and then some: An Introduction

Linus Torvalds

Creator of theLinux Kernel

(and more lately, git)

Page 6: Open source and then some: An Introduction

Eric Raymonds’“Cathedral and the Bazaar”

Page 7: Open source and then some: An Introduction

What is Open-Source?

(Wild guesses often work in the most unexpected of ways)

Page 8: Open source and then some: An Introduction

What is Open-Source?Open source doesn't just mean access to the source code. The distribution terms of open-source software must comply with the following criteria:

• Free redistribution• Source Code• Derived works• Integrity of the author’s source code• No discrimination against persons or any groups

• No discrimination against fields of endeavour• Distribution of the license• License must not be specific to a product• License must not restrict other software• License must be technology-neutral

Page 9: Open source and then some: An Introduction

About Linux and a brief history lesson

Page 10: Open source and then some: An Introduction

How can you chip in?

Hint: Not that difficult.

No, seriously!

Page 11: Open source and then some: An Introduction

Open Source Projects/Organizations

Individual projects relate to the development of a single software, or group of software. e.g. Linux, Apache HTTP web server, Git, etc. Each project has its own philosophy, hierarchy, development methodology, coding style, etc. Often open-source projects related to similar technologies operate under the umbrella of a single organization. e.g. The Linux foundation, Apache Software foundation, Python Software Foundation. These organizations may be registered non-profits, corporate entities, or just a bunch of people who organized themselves.

Page 12: Open source and then some: An Introduction

A word about version control

Before we dive in into the basics of how to start contributing to a project of your choice,it would be useful to know a thing or two about version control.

As you must understand by now (hopefully), a major part of open-source development isdeveloping and collaborating on the source code of individual software/projects.

Such type of collaboration means a lot of people (even hundreds) working on the same pieces of code simultaneously. Sounds like a chaotic bazaar, doesn’t it?

To manage collaborations on code, certain software systems are used. They are known as version control. They record changes to a file or a set of files over time, and are extremelyimportant tools in a developer’s arsenal. E.g. Git (rocks!) and Subversion (meh).

Page 13: Open source and then some: An Introduction

A word about version control (continued)

Knowledge of the right version control system (more often than not, git) is essentialas you begin your open-source journey.

Moving forward, we will assume that you can use perform basic operations using Git.The basic operations being the ability to copy the source code onto your local systemfrom a remote host and make changes to the source code. And also to host your version of code online or ask the original developers to look into your code for inclusionin the main source code.

Remember, the above description is a toned-down version and entire books have beenwritten only about git itself. But understanding the above for now would do!

And don’t worry, a workshop is to follow pretty soon in order to cover theBasics of Git.

Page 14: Open source and then some: An Introduction
Page 15: Open source and then some: An Introduction

Finding the right organization/project

Searching the web (Google, DuckDuckGo, Quora, etc.) can be a pretty good start. Even a search as simple “Python Django open source projects” will return multipleuseful hits.

Organization lists’ from previous year GSoC can be an extremely useful resource inyour search. You can get an idea about the type of projects for particular organizations.e.g. For the 2015 list, go to https://www.google-melange.com/gsoc/projects/list/google/gsoc2015

Search for projects on Github*. A huge number of Open-Source projects are hostedthere nowadays. The option to filter according the involved programming languagesis provided. Pretty darn useful, I’d say!

*Github is an online service for hosting git repositories/files using git.

Page 16: Open source and then some: An Introduction

Finding the right project (continued)

Page 17: Open source and then some: An Introduction

Finding the right project (continued)

Page 18: Open source and then some: An Introduction

But is it really the right project?!

Some quick searches to begin with surely help. But there’s a deeper method involvedto make sure that you end up with the right project.

Answer the below questions to find the right fit:-> What open-source software do you use?-> What are your professional interests?-> What are your hobbies?-> What is your skill set?-> What do you want out of your involvement with Open-Source?

And then, shortlist, ask around about them (fellow developers in college, on forums)and evaluate your options before zeroing in on a project.

All set now. Time to start contributing!Err… but where to start?

Page 19: Open source and then some: An Introduction

How to start contributing?

Once a project is found, its helpful to look at it from a user’s perspective.Install it, use it and play with it.

Reading its source code can be extremely helpful. Moreover, in your Open-Source journey you will be required to do this a lot. Start practising!

Individual projects have “contribution guides/how-to-contribute docs/ developer guides”. They are very often well-developed and lay down the general guidelines. Try to follow them.

Try to findsomething like this!

Page 20: Open source and then some: An Introduction

How to start contributing (continued)

Snapshot of Linux’ssource code.

Page 21: Open source and then some: An Introduction

How to start contributing? (continued)

Once somewhat acquainted with the project or if stuck/facing issues, contact the involved personnel through the proper channels.

Mailing lists and IRC channels are two of the most popular modes ofcommunication in the open-source ecosystem.

When communicating, try to follow certain etiquettes. Basic stuff like: -> NEVER SHOUT! -> Be considerate. Don’t be pushy. -> Be to-the-point. Being vague won’t help. -> Do your research before asking questions.

Search “Open Source communication etiquettes” for more about this.

Page 22: Open source and then some: An Introduction

A word about IRC

IRC stands for internet relay chat. It’s a communication protocol. What we are interested in are IRC clients and channels; methods to use the protocol.

Internet Relay Chat is much like your instant messengers, but is devoid of spam or general security risks that other IM services often allow.

You will need to download a suitable IRC client.e.g. HexChat (for Windows), Xchat, Pidgin (For Linux), etc.

Using the client, you can connect to multiple networks and each networkcontains numerous channels.E.g. Freenode (one of the most popular IRC channels).

On the contact information of the relevant project/organization, the networkand channel info would be provided. Join them and you are good to go!

SNAPSHOTS ON NEXT PAGE

Page 23: Open source and then some: An Introduction

A word about IRC (continued)Join a network Join a network

Page 24: Open source and then some: An Introduction

Perks of going theOpen Source

way

Page 25: Open source and then some: An Introduction

The real deal

This one’s kind of obvious. Open-Source is the real deal. It’s creating stuff for thereal world, not classroom assignments. It’s hard work but once all is said and done, you will be a much better programmer/developer/co-worker than when you had started out.

If done right, you will have had ample practise reading large number of lines of codelike a pro. Reading varied styles of code is an important step towards becominga better programmer. Some of the world’s best programmers are working on open-source projects. Nothing like diving into the coding styles of some of the very best!

The myth of the “lone super-programmer” is exactly that; a myth. Even the very bestcan’t produce world-quality software code all on their own. They need to work withothers. Open-Source projects give you the perfect platform to collaborate.

Speaking of collaboration…

Page 26: Open source and then some: An Introduction

Learn to work together While working on open-source projects, a lot of code is passed around.

Even if the code is technically top-notch, its no good if the other personcan’t comprehend what’s going on in your code.

As you work on projects and read code of some of the top developers, youwill learn how to write ‘readable code’. Code which can be read and comprehended by others and also by yourself six months down the line.

Coding style guides are available for different programming languages onthe internet. Go through the one for your favourite programming language.

The requirement to write good-quality code transcends just OS. Even whenworking at a traditional coding job at an MNC, such an ability would beappreciated.

Speaking of large corporations…

Page 27: Open source and then some: An Introduction

Large companies are goingthe Open Source way

The 9th annual Future of Open Source survey (April, 2015) revealed that almost78% of software companies are using OS software to run several of their critical processes.

The same survey revealed that majority of the companies are having troublemanaging their OS stack.

Many large companies and several prominent start-ups are involved and haveinvested in Open Source in a big way.E.g. Facebook, Google, Twitter, Sqore, Microsoft, etc.

More and more personnel adept in the ways of Open Source would be requiredin the future.

For companies like Google, getting involved in Open Source is a community-building exercise rather than a business one.

And that brings us to…

Page 28: Open source and then some: An Introduction

*Insert joke about badass design/editing skills*

Page 29: Open source and then some: An Introduction

Conferences, meet-upsand mentors

Page 30: Open source and then some: An Introduction

Keep hacking!


Recommended