Open Source Development. Ely Levy Yair Yarom

Similar documents
Open Source Development

Free as in Freedom A step towards Software freedom. Salahaddin University By: Amanj Sherwany

Intro to FOSS. What is FOSS?

Foundations of Software Engineering. Lecture 24: Open Source Claire Le Goues

Independent implementations of an interface

A Practical Introduction to Version Control Systems

HKG18-TR01: Open Source Philosophy. Daniel Lezcano

Ethics. Ethics. Ethics. Ethics. The issue of software ownership. The issue of software ownership. Programmers and the Hacker mentality.

Linux Applications and Software Licensing. Linux System Administration COMP2018 Summer 2017

Russell Doty Red Hat

Leveraging Open Source Software

Case study on PhoneGap / Apache Cordova

Getting started with GitHub

History of Unix, Linux and the Open Source

2/8/18. Overview. Project Management. The First Law. What is Project Management? What Are These Changes? Software Configuration Management (SCM)

An Introduction for Linux Users. Murray Stokely

Project Management. Overview

Topic 1- The Basic Knowledge of Open Source and Free Software

The Effects of Open Source License Choice on Software Reuse

FOSSology Project Information

Open Source Licensing: An Overview

Free & Open Source Software: The Academic Future

Introduction to Operating Systems. Note Packet # 1. CSN 115 Operating Systems. Genesee Community College. CSN Lab Overview

Tools for SW Projects

Aurelien Jarno 26/02/2006 FOSDEM. Debian GNU/kFreeBSD. Aurelien Jarno. What? Why? Status. The future. How to help?

EWRG-CES. Bharath Setturu EWRG, CES, IISc

OPEN SOURCE SOFTWARE

Manage quality processes with Bugzilla

Linux operating system

Peer Participation and Software

Introducing: Free/Open Source Software Distributed Systems Real Time Systems and Multimedia Systems

The Penguin and the Droid

Open Source Software. International Open Access Week at the

Unix to Linux. CS 3113 Fall 2018 Dr. Christan Grant

2/9/2013 LAB OUTLINE INTRODUCTION TO VCS WHY VERSION CONTROL SYSTEM(VCS)? II SENG 371 SOFTWARE EVOLUTION VERSION CONTROL SYSTEMS

Introduction to Linux Overview and Some History

It s a Unix(-like) System? An Introduction to TrueOS and Open Source Software. Copyright ixsystems, Inc. 2017

click2try Tutorial Redmine 2009 Presage Technologies, LLC.

Does Windows 10 Have Privacy Issues? February 11, Joel Ewing

Open Source Legality Patterns

The Anatomy of A FOSS Project

Delivering Effective Solutions in the Age of Open Source Technology

Introduction to Git and GitHub. Tools for collaboratively managing your source code.

Configuration. Monday, November 30, :28 AM. Configuration

Linux with Biology in IT

TPF Update TPF Users Group, Acapulco May 2004

Decentralized Version Control Systems

Bouncing forwards, tracing back.

Open Source Development from the trenches (Jajuk) Bertrand Florat

Informatics Web Publishing

What do you get when you cross a Fox with a Penguin? Huh? Well? What DO you get?

IT Project Management Challenges with Open Source. George A Pace

Programming with Haiku

A Seminar report On LAMP Technology

The Center for Internet Security

COURSE OUTLINE. UNIX Programming 2014 Fall by Euiseong Seo

Solving Linux File System Pain Points. Steve French Samba Team & Linux Kernel CIFS VFS maintainer Principal Software Engineer Azure Storage

Community vs. Enterprise: How not to piss off your community (and still be profitable)

Chapter 01: Introduction to Linux

Recipes. Marketing For Bloggers. List Building, Traffic, Money & More. A Free Guide by The Social Ms Page! 1 of! 24

Taxonomy for Open Source Software Development

Middle East Technical University. Department of Computer Engineering

Computer Software. c 2016 by David W. Gerbing. School of Business Administration Portland State University

IoT & Open Source. Martin von Haller Groenbaek Partner, Copenhagen LES SCANDINAVIA: INTERNET OF THINGS & IP SEMINAR 25 November 2015

ASSIGNMENT 3 02/13/2015. Assignment 3 CITA 171: OPERATING SYSTEM USE & ADMIN TECHNOLOGY. Royce, Alexander CITA 171 OPERATING SYSTEM USE & ADMIN

About the Tutorial. Audience. Prerequisites. Copyright & Disclaimer. Drupal

Getting Started with Contributing to OpenStack An Introductory Crash Course on OpenStack Development

CS108 Software Systems: UNIX. Fall 2011

Web Hosting. Important features to consider

Linux install Party. Elsa Guillot, Pablo Hernandez 19/10/14. IFS, Massey University. Elsa, Pablo (IFS) Open Source Workshop (beamer) 19/10/14 1 / 21

Tracking FreeBSD in a Commercial Environment

Behind the Scenes of the Apache Software Foundation

<Insert Picture Here> Introduction to MySQL

TDDC88 Lab 4 Software Configuration Management

POC Evaluation Guide May 09, 2017

MANAGE YOUR CONSTRUCTION21 COMMUNITY

Chapter-16 INTERNET AND OPEN SOURCE CONCEPTS

What do you get when you cross a Fox with a Penguin? Huh? Well? What DO you get?

CS 378 (Spring 2003) Linux Kernel Programming. Yongguang Zhang. Copyright 2003, Yongguang Zhang

Linux. What is it? What s good about it? What s bad about it?

Perceptive DataTransfer

What is FreeBSD? Christian Brüffer The FreeBSD Project

This slide is relevant to providing either a single three hour training session or explaining how a series of shorter sessions focused on per chapter

Simplicity and minimalism in software development

Going Open Source. The 20 Most Important Things To Do. Martin Aschoff, AGNITAS AG

Taking a Website Live

Putting the open in opensuse: Community-driven KDE Development. Will Stephenson

Subdomains The Simple Way To Boost Profits And Save Money

If you don t have the JDK, you will need to install it. 1. Go to

Characteristics include Users as co-developers Bazaar Model Projects start with personal problems to solve Users debug systems many eyes make bugs sha

CS197U: A Hands on Introduction to Unix

An Operating System History of Operating Systems. Operating Systems. Autumn CS4023

Trolltech's success with dual licensing 12 Years Of Symbiosis

CS 390 Chapter 2 Homework Solutions

Revision Control OSS Survey

Google Groups for Business: Create a Collaborative Inbox

WordPress Tutorial for Beginners with Step by Step PDF by Stratosphere Digital

Donor Database Management Survey Report

Firefox Indic Localization: Tips & Techniques Presentation to BarcampBangalore7:

The basic knowledge of open source and free software- Topic 1 & OSS in perspective- Topic 2. Parastoo Mohagheghi, 26 August 2010.

Transcription:

Open Source Development Ely Levy Yair Yarom

Outline (I) Background Free Software definitions The 4 freedoms Open Source Definition (OSD) Licenses General BSD, MIT, GPL, LGPL Patents and Standards

Outline (II) Project Management Working Together Recruiting Volunteers Why does open source work? Universities Programmers Governments Companies

Outline (III) Advantages and Disadvantages Examples Mozilla Apache Demo Source forge Freshmeat

Background (I) hacker communities '60-'70 '74 First Unix system at Berkeley. '84 Richard M. Stallman starts GNU '85 The beginning of FSF '89 Net/1 first open source BSD '91 Net/2 now the utilities were BSD licensed as well. '91 Linus Torvalds starts working on Linux

Background (II) '92 USL vs BSDi lawsuit Injection to stop distributing NET/2 Slowing development for 2 years In the end only 3 lines of code were removed Encourage people to try out Linux By then some big open source projects exists e.g. Xorg, Perl etc. '97 Eric Steven Raymond wrote his The Cathedral and the Bazaar

Background (III) The gnu project tools and compiler Linux kernel OSTG (Sourceforge, slashdot, freshmeat) Companies Linux distributions (Redhat, Novell, Suse,...) Hardware companies (Intel, Cisco, Sony,...) Others (IBM, Sun, Mysql and many more...) Non Companies BSD distributions Apache, gnome, kde, mozilla, samba,...

Free Software Free as in free speech not as in free beer Freedoms (as defined by the FSF): 0) Run the program, for any purpose 1) Study how it works, adapt to your needs 2) Redistribute copies to help your neighbor 3) Improve and Release to the public

Open Source Initiative (I) Open Source Definition: Free Redistribution Source Code Derived Work Integrity of The Author's Source Code No Discrimination Against Persons or Groups

Open Source Initiative (II) No Discrimination Against Fields of Endeavor Distribution of License License Must Not Be Specific to a Product License Must Not Restrict Other Software License Must Be Technology Neutral

Licenses OSI gives license approval for open source licenses. There are many open source licenses There are over 50 licenses in osi's site at the moment Some of them are not compatible with each other Causes confusion We'll go over the main three types.

Licenses - BSD/MIT Very simple licenses Allows you to do whatever you want with the code Beside, of course, claiming it as your own. Had an advertising clause which was removed later on There are few similar licenses like X11, and freebsd, but they mostly say the same

Licenses - GPL GNU General Public License Copyleft license Redistributes can't add additional restrictions Preserve freedom Not allowed to distributed changes without the source code. All derivative work must be GPL-ed e.g Linking/Inheriting/Plugins

Licenses - LGPL GNU Lesser General Public License Came to solve the linking problem against GPL-ed dynamic libraries (specifically glibc) You are allowed to link against LGPL library no matter what license you use as long as it allows reverse engineering of the program This applies also to Plugins and modules Same as GPL (compatible)

Licenses - GPL/LGPL Disadvantages: Considered complicated I'm a programmer Jim, not a lawyer Hard to integrate with other licenses Lots of loose ends Lacking clear handling of software patents Bad international support Web services loop hole GPLv3 will solve some of those

Patents and Standards Software patents are many Hard to be avoided Some licenses deal with that Not all countries have the same patent laws Open standards are very important Allow better integration between systems You are not depended on one platform Companies use them to prevent open source implementation

Project Management Treat users well Potential co-developers Help in locating and fixing of bugs Listen and incorporate their (great) ideas Perfection (in design) is achieved not when there is nothing more to add, but rather when there is nothing more to take away." Release Early, Release Often Increase the feedback from your users

Working Together Useful tools Version Control (CVS, SVN, Arch,...) Bug Tracking (Bugzilla,...) API documentation (Doxygen,...) Sharing information (Wiki) Contact (Forums, Mailing lists,...) Using CMS (Content management system)

Working Together - VCS Version control system A lot of people working on the same code Accessible Repository Access control and permission locks Working on the same files Saves history (change log, tracking bugs) Working on local copies Branches, easy merging. Reverting changes Use diff to make patches

Working Together BTS Bug Tracking system Allows users to easily report bugs Reduce duplicate bug reports Allows coders to track bugs status Discussing the bug Attaching patches for testing Save bug tracking history Extra features Voting on bugs Hiding security bugs until disclosed

Working Together API docs Share API between developers Especially important with libraries Programmers doesn't like writing documentation We want automatic tool Object oriented Interaction between classes UML Good but Complicated

Working Together Sharing info Mailing list Good way to communicate between developers (CVS Watch,archive) Wiki Everyone can edit Writing documentation for the project Useful also for tutorial and FAQs Communicating with users Forums Has history, easier to use than mailing list

Working Together - CMS Content management system We need to set up so many things One system provides them all Easy to manage Allows global login to all sections Unified look and feel Various companies offer hosting for new projects

Recruiting Volunteers (I) Project vision Keep it short If people don t know where the project is going they won t know how to help it get there Tasks and jobs Goals and subgoals (know where to go, and have an idea how to get there) Helpful description: why, where, when, who, what, how

Recruiting Volunteers (II) Attracting others to join in Think about their perspective Contributing to the community Need experience Want their name to appear in the project Describe jobs according to the volunteers perspective Bounties Clear and cheaper than hiring Getting new people interested

Why does open source work? (I) Universities write open source Show that your algorithm work Gain community help for complicated but interesting projects (i.e BSD) Easier to attract and get companies donation Good advertisement Programmers gain experience They contribute to project they like Easy to show to your new employer

Why does open source work? (II) Governments Do you trust another country with your critical info? Keep jobs in country, feed the economy Easier to localize to fit your own country You can check and see how secure the software is Created from tax payer money why shouldn't they be able to see the code? Public eye (Electronic voting,...)

Why does open source work? (III) Open source companies You can be paid for optimization (reiserfs, mysql) Selling solutions for other companies (IBM) Packing and QA Configuring the system Offering bug fixes/features for 3 rd party software Providing support for end users (Novell, redhat, ubuntu) Web services (google, zimbra)

Why does open source work? (IV) Hardware companies help with driver development Not many companies do that because of NDA Easy to port open source systems to new platforms (i.e cell) Sell cheaper hardware Save on licensing Save on development Done by many companies in the embedded market (Cisco, Nortel, Sony,...)

Open Source Advantages (I) Community work User participate in bug report and features More developers can join in Code reuse Base yourself on an existing project Existing libraries You are not depended on one company Companies goes bankrupt 3 rd party supporters can see the code

Open Source Advantages (II) Highly customizable Get your home programmer to customize the software to your needs You can port it to your favorite platform Multinational support Users help out in translating the program 3 rd party code patches Security (Sometimes)

Open Source Pitfalls I would RTFM if there was a FM to FR It's more fun to program than to write docs Who wants to work on my project? Setting a developer/user community Getting support for the project Code reuse abuse Hey, it's my project... More than just programmers Graphic designers, Usability teams...

Mozilla Browser Wars '98 Netscape communicator free, and open source Big boost to the open source community Didn't want Microsoft Internet Explorer to set the future internet standards

Mozilla.org Overseen by the mozilla foundation. Supervisors, organizers, maintainers Not the coders Stop the source from branching to thousands of different descendants Module owners Benevolent Dictator Many projects Firefox, Thunderbird, Bugzilla,...

Apache (I) Apache Foundation Non profit corporation Started as the Apache Group '95 Organizational, legal, and financial support Apache projects HTTP server Ant Jakarta (Tomcat) Beehive

Apache (II) Membership Show commitment to the project Need to be approved by the majority of existing ASF members All members owns the apache codes

Demo Project - SourceForge SourceForge (sourceforge.net) Provides tools for managing projects CMS CVS Bug report Mailing list Forums etc. over 1,000,000 users over 100,000 projects

Demo Project - FreshMeat Freshmeat (freshmeat.net) Largest index of UNIX (and XP) software including themes, palm OS software, etc. Comment board Articles Technical support Statistics

Demo Project How to Write a project (optional) Find a license (open source) Create a sourceforge account register the project upload the source Create a freshmeat account register the project

SourceForge Open Account Opening account Main page create account Read some legal stuff (Terms of use, private policy) Confirm by email Complete registration First login true identity

SourceForge Register Project Registering project UNIX name Must be Open source (OSD) Legal stuff Categorization license audience development status topic programming language operating system user interface translations database

SourceForge Register Project Registration (cont.) Short public project description Long project description for the reviewers Public project name confirmation wait for up to 2 business days

Freshmeat Simpler registration Fill the form Submit the project Fill another (longer) form