محاضرة ألفاها نواف البديع في حاضنة بادر بعنوان " كيف تبدأ مشروعك مفتوح المصدر" يمكن التواصل مع نواف عبر توتر http://twitter.com/nalbadia أو من خلال موقع النادي العربي للمصادر المفتوحة http://www.openarabs.org
The freedom to use the software for any purposeThe freedom to change the software to suit your needsThe freedom to share the software with everyoneThe freedom to share the changes you make
- Meet & communicate with other project leaders - Develop leadership and communication skills - Find people who share the same passion - Develop management skillssSurvival:Idealism - Completely free & Non-commerial - Very high quality - Very low development cost - Integrates with all related systems!! In Reality - Community not interested. - Few contributors - Developers high rates Survival - You need to rely on your skills if you are bootstrapped company – self funded - You need to make money from day one - - You need to find - You project should be market oriented not product oriented Growing up: Scaling up - Software - Community - Company - Partners – In for Money, no passing for learning ….Independence: - Staffing - Funding - Revenue - Partners
-Targeted Users: if you consider enterprise projects then you need to develop enterprise programming languages like Java-Desktop or Web: if you consider desktop application for windows then use then you need to use .NET but if you want write once use everywhere then use Java for desktop. For Web you can use PHP as it is famous-Complexity: if your solution is very complex then you should use a language that support rapid development with good IDE supportTechnical requirements might limit the scope of the language you select, for example if you need high performance then you should go unmanaged code. Some cultures might reject the project based on the language it uses, for example M$ technology in Europe. Consider you want to support your project by IDE then you might go with eclipse. Or if you want to want to optimize parts of your code then you need to write unmanaged code.
IDE for developing the codeCode Repository: for storing the code and managing the changes.
Project Management and Collaboration tools usually web application for collaborating between the members of the project, e.g. forums Issue Management: for tracking the bugs.
The original copyright notice should be included in all versions of the source code and the executable.All advertising materials mentioning features or use of the BSD must include the name of the author. And the name of the author must not use to endorse the product.A disclaimer of liability that prevent the author from being sued over the software.The software can be linked and used for propriety software.
GPL 1Distribute the executable and the source code.You can’t add more terms that restricts the use of the software. So if you want to combine another license with the GPL software has to be released under the GPL.
GPL 2Changed a term that is related to the freedom of distributing the software under GPL. For example if someone created an application that violate countries laws then it can not be GPLed
GPL 3Came after 15 years from GPL 2. And has strong and weak version (LGPL) which allows the use of the LGPL program with propriety. Included more details on the definition of “source code”. Hardware restrictions on software modification. This way some vendors will release hardware that runs modified version of the GPL software without the ability to tolerate the software itself by adding new features.Internationalization and how to handle violations.Adding extra permission by the copyright holder.
Originated from Apache Software Foundation in 2000. The copyright notice and the disclaimer must be presented and never changes.Allows the use of the source code to be developed propriety software and hence the license can be shifted but everything included in the original source code must be preserved like trademark, patent…The reason for it is to overcome the GPL2 license as the GPL 3 didn’t come.Apache license are compatible with GPL 3 (meaning that the Apache software can be combined and redistributed with the GPL 3)
The MIT license, sometimes called X11, was introduced by Massachusetts Institute of Technology. It is also considered to be among the simplest license and it is very similar to BSD except that the BSD includes the ‘advertising clause’. The software can be used with the propriety as long as the original license is included.The license can also be modified to suit the needs of the user.
No previous experience </li></ul>Before You Start<br />
8<br />Open Source Projects<br />Innovation<br />Create new or innovate an <br />existing solution<br />Imitation<br />Imitate successful<br />commercial product<br />Project Idea<br />
Creation<br />Survival<br />Growing up<br />9<br />Independence<br />You have to know your project stages?<br />
Which tools and programming languages should you select?<br />10<br />
Selecting your language<br />Groovy<br />C#<br />Haskell<br />C++<br />PHP<br />Objective-C<br />The Language you like<br />Ruby<br />Erlang<br />Scala<br />Java<br />Perl<br />F#<br />Python<br />ASP<br />VB<br />
Selecting your language<br />Is it desktop, web or mobile application?<br />Target users<br />The complexity of the project<br />The technical requirements of the project<br />The culture of the target users<br />Sometimes you need more than one language!!!<br />
Tools you need<br />Integrated Development Environment (IDE)<br />Code Repository<br />
Tools you need - continue<br />Project Management and Collaboration tools<br />Issue Management<br />
What Open Source license should you choose?<br />15<br />
BSD License<br />The original copyright notice should always presented.<br />The author name should be presented in the advertisement material.<br />A disclaimer of liability.<br />Can be used with propriety software.<br />16<br />
GNU GPL (General Public License)<br />GPL 1<br />Distribute the executable and the source code.<br />Any software that include GPL product must be GPL-ed.<br />You can’t add more terms that restricts the use of the software. <br />17<br />
GNU GPL - continue<br />GPL 2<br />Changed a term that is related to the freedom of distributing the software under GPL. <br />18<br />
GNU GPL - continue<br />GPL 3<br />Came after 15 years from GPL 2. <br />Strong (GPL3) and weak version (LGPL 3) which allows the use of the LGPL program with propriety. <br />Included more details on the definition of “source code”. <br />Hardware restrictions on software modification. <br />Internationalization and how to handle violations.<br />19<br />
Apache License<br />Originated from Apache Software Foundation in 2000. <br />The copyright notice and the disclaimer must be presented and never changes.<br />The source code to be evolved into propriety software.<br />The reason for it is to overcome the GPL2 license as the GPL 3 was not introduced.<br />20<br />
MIT License<br />Sometimes called X11 and was introduced by Massachusetts Institute of Technology.<br />Considered to be among the simplest license and it is very similar to BSD. <br />The software can be used with the propriety as long as the original license is included.<br />The license can also be modified to suit the needs of the user.<br />21<br />
Build your project community<br />Contribute to other projects.<br />Use social networks; Facebook, Twitter etc.<br />Try to obtain respect of the community.<br />Offer services for FREE e.g. support.<br />Everyone is a salesman for the project.<br />Speak in conferences.<br />Attend all related events & conferences and speak about your project.<br />27<br />
You must know<br />The Open Source projects are usually maintained by geographically distributed groups of highly motivated people dedicating their time freely, expecting only recognition.<br />Large project can be maintained by very small group of people.<br />28<br />