Open Source Basics

From Ott09 Wiki
Jump to: navigation, search

Open Source! (aka the shit) (business models of the future!)

Free Software definition (1983) "four freedoms" 0. run the program for any purpose 1. study how the program works and adapt the program to your needs (this is the open source preceontitons) 2. copy the program and redistribute copies to help your neighbor 3. improve the program and release your improvements so that the whole community benefits

free software is more ethical and philosophical

people who use the term open source usually are talking about the model

open source initiative defined the term "open source" -- more of a marketing term

there is a fundamental disconnect between free software and open source

the reasoning behind each is different, and that has affects the user/developer community

both are community developed software, neither says anything about price

both offer the right to fork development at any point, to copy the codebase and start redistributing a different version

freedom to fork is the ability to take the project and make a new project and brand it differently

branding becomes very important with open source projects like mozilla

open source projects like mozilla use licences that allow them to control their brand

licencing is really at the core

there are permissive (BSD or Apache) licences (CC-BY) author retains the copyright but only to disclaim warranty and keep attribution

there are copyleft share-alike licences (GPL) where derivative works must be as free as the original version (CC-BY-SA) "stardard copyleft"

there is a problem to this freedom, Google runs on a Linux (GPL licenced) stack, but they only need to distribute it internally

the Affero GPL is new, when the GPL was written the idea of a network-based service (like Google or Twitter) didn't extist

the AGPL gives end-users of a networked-based service the right to access (download) the source code

identi.ca is an example of a successful AGPL project

so that's the licences in a nutshell, the next part is all about community management

essenitally the fundamental advantage is that it makes the tool better

it makes for a better piece of software, it makes for a better tool

"in the face of a thousand eyes, all bugs become shallow" - richard stallman

free software hackers tend to create new functions and tools rather than fixing bugs and adding polish, because those tasks are basically boring and time-intensive

free software projects are hosted online in a version control system (open source repository) which incudes a bug tracker

a version control system such as GIT allows users who are coders to fix bugs as they come across them

to "commit" code is to add code to an open source project

the "commiters" are the people really in charge of an open source project

open source generally moves forward because of people "scratching their own itch"

as i (thom hastings) like to put it, "code the change you wish to see in the world"

when you open source your software, it is an opportunity to create and further your brand

the caveat is that your project may get hijacked and taken another dirction by tons of people, if they don't like what you're doing and want to do something else (this is rare, but can happen)

mixed licensing is a possibility, keeping some code free but keeping some proprietary, locked up, etc

open source and security is a thing, a thousand eyes make all security holes tiny

tomas: "if a hacker really wants to, the hole will be found, it's just a matter of time, even if your software is locked up... i think the thousand eyes approach outweighs it"

when you open source a project, any silly littly overlooked security hole becomes a big deal, a possible problem

solution is to hire a security team to comb through you code before you open source it

what happens if you only open source part of you code?

pragmatist free software people will be happy with what you give

free software zealots (like stallman) will hate you and call you evil

for the most part, the community just wants to know what you're up to

they want to know what you're holding back and why

why do i want to help? why do i want to contrubite?

"it's very much a trust model" the key word is transparency

it's a trust relationship, you're trying to built trust

building a community of contrubitors (collaborators, developers, commiters) is key to the success of an open source project

you can keep stuff locked up, but you must be transparent about what you are holding back and why (in order to build trust)

just say "this is our business model, we need to keep this part locked up for the sake of our business model"

great talk to understand open source business models: open source business 101 for hackers (ross turk, community manager for sourceforge)