Open Source Basics
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)