<div class="xblock xblock-public_view xblock-public_view-vertical" data-course-id="course-v1:MOOC-FLOSS+101+2021_1" data-init="VerticalStudentView" data-runtime-class="LmsRuntime" data-runtime-version="1" data-block-type="vertical" data-usage-id="block-v1:MOOC-FLOSS+101+2021_1+type@vertical+block@chap-02-seq-03-ver-01" data-request-token="ac6142ce903311ee8c631237928d7ffd" data-graded="False" data-has-score="False">
<div class="vert-mod">
<div class="vert vert-0" data-id="block-v1:MOOC-FLOSS+101+2021_1+type@html+block@chap-02-seq-03-ver-01-html-02">
<div class="xblock xblock-public_view xblock-public_view-html xmodule_display xmodule_HtmlBlock" data-course-id="course-v1:MOOC-FLOSS+101+2021_1" data-init="XBlockToXModuleShim" data-runtime-class="LmsRuntime" data-runtime-version="1" data-block-type="html" data-usage-id="block-v1:MOOC-FLOSS+101+2021_1+type@html+block@chap-02-seq-03-ver-01-html-02" data-request-token="ac6142ce903311ee8c631237928d7ffd" data-graded="False" data-has-score="False">
<script type="json/xblock-args" class="xblock-json-init-args">
{"xmodule-type": "HTMLModule"}
</script>
<div class="edit-link-wrapper"><div class="edit-link"><p style="text-align: right;"><a href="https://gitlab.com/-/ide/project/mooc-floss/mooc-floss/edit/master/-/course/html/chap-02-seq-03-ver-01-html-02.html" target="_blank"><i class="fa fa-pencil mr-1"></i> Edit on Gitlab</a></p></div><div class="edit-link-original-content"><div class="flex-container">
<div class="figure-and-caption"><img width="400" src="/assets/courseware/v1/7b9c003483e2fa2c3b1634840ebf7f03/asset-v1:MOOC-FLOSS+101+2021_1+type@asset+block/ch_02-stallman_pengu_printer.svg" alt="Richard Stallman Penguin character, having printer issues" /><span>Richard Stallman, age 27 wrestles with printer issues</span></div>
<div class="side-text">
<p><a href="https://www.oreilly.com/openbook/freedom/" target="[object Object]"><em>Once upon a time</em>,</a> a staff programmer at MIT AI lab, named R. Stallman, tried to print some documents, and the printer malfunctioned. Long story short, he was shocked to discover he could not access the code to fix his printer, and that in general companies had a growing tendency to <em>not publish the code</em> when they sold hardware or software, preventing people to fix <em>stuff they did buy</em> or adapt it to their needs. With others, he then started to develop a collection of software that would <em>have to</em> be distributed along with their code in an open way, and contributed to create a global movement to inspire people to create <em>Free software.</em></p>
</div>
<p>The <em>Free software</em> movement, where <em>free </em>is intended to mean freedom (not gratis) grew around the idea of empowering users, against the idea that users should be powerless against software they use, while the software created this way would end up forming a<em> <a href="https://en.wikipedia.org/wiki/Digital_commons_(economics)" target="[object Object]">digital</a><a href="https://en.wikipedia.org/wiki/Digital_commons_(economics)" target="[object Object]"> common</a></em>: a good available to anyone. In their definition, it means that distributed software should grant the users <em>four freedoms</em>:</p>
<ol>
<li><strong>Use: </strong>anyone should be able to use the software for any purpose.</li>
<li><strong>Study:</strong> No restriction should be put on the ability to study the code, for anyone.</li>
<li><strong>Share: </strong>The software can be shared and copied freely.</li>
<li><strong>Improve:</strong> Anyone can modify the code, and share those modifications.</li>
</ol>
<p>With the collaboration culture of the hackers, this ended up as a very efficient way to create software, with a rule that was mainly popularized by Eric S. Raymond in <a href="http://www.catb.org/~esr/writings/cathedral-bazaar/" target="[object Object]"><em>The Cathedral and the Bazaar</em></a>: the more distributed development is, the faster bugs will be found out.</p>
<p>To popularize this development model with businesses that were wary of the <em>free</em> implications of <em>free software</em>, he popularized the term <em>open source software</em>, insisting on the development model rather than the social implications. These two terms coexist since then, even in the very names and missions of the two main american non-profits around it: the <strong>Free Software Foundation</strong>, <em>promoting computer user freedom</em>, and the <strong>Open Source Initiative</strong>, <em>advocating for the benefits of open source.</em></p>
<p>Several ways to enforce those definitions emerged, and with different goals in mind, ended up creating several <em>licenses¹</em>, and different <em>economic models</em> around it. The third module of the MOOC will try to give a tour of these notions, as well as what's at the core of Free/Libre/Open Source software: Communities. </p>
<p>As of this day, the <a href="https://www.gnu.org/philosophy/free-sw.en.html" target="[object Object]">Free Software Definition</a> and the <a href="https://opensource.org/docs/osd" target="[object Object]">Open Source Definition</a> both coexist. Even if it is possible to find examples of licenses that are approved by one board and not the other, all major licenses satisfying one also satisfy the other. Some other parties also have their definitions of the term, for instance the Debian Project has the <a href="https://www.debian.org/social_contract#guidelines" target="[object Object]">Debian Free Software Guidelines</a>.</p>
<p>In the rest of the MOOC, we will assume that these notions, while carrying different ideological backgrounds, are functionally equivalent, and such software can be called "Free/Open Source Software" (<strong>FOSS</strong>), also often found under the name <strong>"FLOSS"</strong> to insist that "Free" means "<strong>L</strong>ibre" and not necessarily "Gratis". This term is the one we'll try to use in most of the course, as the goal is to be inclusive of the differences between free software and open source, allowing a diversity of perspective on the matter, and leaving the people we interview in the course free to use the words they prefer.</p>
<p><span style="color: #808080;"><em>On the name of the MOOC</em></span></p>
<p><span style="color: #808080;"><em>« Open Source Masterclass », the brand name of the course, along with the sub-name « </em><i>Contribute code to upstream free/libre/opensource projects</i><em style="font-size: 1em;"> » was chosen as a result of a compromise, acknowledging that the term « Open Source » is much more visible to an audience that is not already familiar with these concepts and reach a more diverse audience. Several contributors of the course recognize this while preferring the term Free Software for their own projects.</em></span></p>
</div>
<p>¹: A license is a permission granted by a licensor to do something with a thing they distribute. In our case, people creating a software project give permission to anyone to run it, look at its code, modify it, and redistribute it, permission which would otherwise be restricted by <em>copyright laws</em>.</p></div></div>
</div>
</div>
</div>
<script type="text/javascript">
(function (require) {
require(['/static/js/dateutil_factory.a28baef97506.js?raw'], function () {
require(['js/dateutil_factory'], function (DateUtilFactory) {
DateUtilFactory.transform('.localized-datetime');
});
});
}).call(this, require || RequireJS.require);
</script>
<script>
function emit_event(message) {
parent.postMessage(message, '*');
}
</script>
</div>
<div class="xblock xblock-public_view xblock-public_view-vertical" data-course-id="course-v1:MOOC-FLOSS+101+2021_1" data-init="VerticalStudentView" data-runtime-class="LmsRuntime" data-runtime-version="1" data-block-type="vertical" data-usage-id="block-v1:MOOC-FLOSS+101+2021_1+type@vertical+block@chap-02-seq-03-ver-02" data-request-token="ac6142ce903311ee8c631237928d7ffd" data-graded="False" data-has-score="False">
<div class="vert-mod">
<div class="vert vert-0" data-id="block-v1:MOOC-FLOSS+101+2021_1+type@html+block@chap-02-seq-03-ver-02-html-01">
<div class="xblock xblock-public_view xblock-public_view-html xmodule_display xmodule_HtmlBlock" data-course-id="course-v1:MOOC-FLOSS+101+2021_1" data-init="XBlockToXModuleShim" data-runtime-class="LmsRuntime" data-runtime-version="1" data-block-type="html" data-usage-id="block-v1:MOOC-FLOSS+101+2021_1+type@html+block@chap-02-seq-03-ver-02-html-01" data-request-token="ac6142ce903311ee8c631237928d7ffd" data-graded="False" data-has-score="False">
<script type="json/xblock-args" class="xblock-json-init-args">
{"xmodule-type": "HTMLModule"}
</script>
<div class="edit-link-wrapper"><div class="edit-link"><p style="text-align: right;"><a href="https://gitlab.com/-/ide/project/mooc-floss/mooc-floss/edit/master/-/course/html/chap-02-seq-03-ver-02-html-01.html" target="_blank"><i class="fa fa-pencil mr-1"></i> Edit on Gitlab</a></p></div><div class="edit-link-original-content"><p>For a person or a community, choosing to develop their project as a free or open source software can stem from many different reasons: This model of organization is a great multifaceted tool, and we'll try to summarize here the main reasons for it. You can also think of it as motivation for following this MOOC: Understanding why this model is so prevalent can help you get motivated in partaking in this world.</p>
<h4>Free software is an efficient way to create good and reliable software</h4>
<p>Having an open development model is a great way to produce stable and secure software: the more eyes can look at a code, the more chances someone can spot errors or inefficiencies for instance. In many places, like AI or cryptography, open source code is the norm because that ensures the ability to audit and trust that the code is doing what it should. In addition, the <em></em><i>community</i> aspects around it can help spreading the word and the efficiency of the development process. It's also a battle-tested way of sharing the maintenance load of big projects across a variety of actors who all have a vested interest in some project's health: if a small company alone would not be able to develop a project it depends on, a <em>collaboration</em> around it can, and will decrease the total amount of work put in better tools.</p>
<h4>Free software is creating a global common</h4>
<p>Since its model encourages sharing and improvements, the creation of free software is adding to the world's collective knowledge, as anyone is free to <em>use</em> it, <em>learn</em> from it, <em>adapt</em> it to their needs, and <em>share</em> it again.</p>
<p>All words are important here: <strong>tools</strong> for all are important to foster development, <strong>education</strong> resources available to all are an important asset to reducing inequalities, <strong>adaptability</strong> ensures a prospect of accessibility for all and empowerment of users, and <strong>sharing</strong> makes improvements available again.</p>
<h4>Contributing creates visibility</h4>
<p>Whether you're a single contributor on a code platform, or a giant megacorporation, being able to show off that you're producing tools that all can use and adapt is a great way for others to see what you <em>can do, and have done</em>. In many if not most parts of the computer industry, an open source contributions portfolio can help you display your abilities. </p></div></div>
</div>
</div>
<div class="vert vert-1" data-id="block-v1:MOOC-FLOSS+101+2021_1+type@html+block@1c7a0a918cd8427eb255276b9a83483d">
<div class="xblock xblock-public_view xblock-public_view-html xmodule_display xmodule_HtmlBlock" data-course-id="course-v1:MOOC-FLOSS+101+2021_1" data-init="XBlockToXModuleShim" data-runtime-class="LmsRuntime" data-runtime-version="1" data-block-type="html" data-usage-id="block-v1:MOOC-FLOSS+101+2021_1+type@html+block@1c7a0a918cd8427eb255276b9a83483d" data-request-token="ac6142ce903311ee8c631237928d7ffd" data-graded="False" data-has-score="False">
<script type="json/xblock-args" class="xblock-json-init-args">
{"xmodule-type": "HTMLModule"}
</script>
<div class="edit-link-wrapper"><div class="edit-link"><p style="text-align: right;"><a href="https://gitlab.com/-/ide/project/mooc-floss/mooc-floss/edit/master/-/course/html/1c7a0a918cd8427eb255276b9a83483d.html" target="_blank"><i class="fa fa-pencil mr-1"></i> Edit on Gitlab</a></p></div><div class="edit-link-original-content"><p>As an illustration, here is an (opinionated) list of the most successful free/libre/open source software, who have become standard:</p>
<ul>
<li><strong>Chromium</strong> is the base of Google Chrome, and is published as open source. Its rendering engine, <strong>Blink</strong>, is shared by almost all browsers (except <strong>Firefox</strong>, which is also free software). In general, the importance of web browsers in modern life makes it almost unthinkable to not have them auditable, and free software licenses are a good way to make it possible.</li>
<li><strong>GNU/Linux</strong> (or just "Linux") is an operating system powering most servers (which also run free software like <strong>Apache</strong> when it comes to serving web content), a large majority of smartphones (as <strong>Android</strong>, also open-source, runs on it), and lots of computers.</li>
<li><strong>Almost all programming languages, compilers, and tooling</strong> are open-source, as it makes it easier for anyone to help improve them. Not all IDEs are free software, but some of the most common ones like <strong>VSCodium</strong> and text editors like <strong>vim</strong> and <strong>emacs</strong> are.</li>
<li><strong>Libreoffice</strong>, <strong>VLC</strong>,<strong> Blender</strong>, <strong>MySQL</strong>, etc. have become some of the most renowned software in their respective areas</li>
</ul></div></div>
</div>
</div>
</div>
<script type="text/javascript">
(function (require) {
require(['/static/js/dateutil_factory.a28baef97506.js?raw'], function () {
require(['js/dateutil_factory'], function (DateUtilFactory) {
DateUtilFactory.transform('.localized-datetime');
});
});
}).call(this, require || RequireJS.require);
</script>
<script>
function emit_event(message) {
parent.postMessage(message, '*');
}
</script>
</div>
<div class="xblock xblock-public_view xblock-public_view-vertical" data-course-id="course-v1:MOOC-FLOSS+101+2021_1" data-init="VerticalStudentView" data-runtime-class="LmsRuntime" data-runtime-version="1" data-block-type="vertical" data-usage-id="block-v1:MOOC-FLOSS+101+2021_1+type@vertical+block@chap-02-seq-03-ver-04" data-request-token="ac6142ce903311ee8c631237928d7ffd" data-graded="False" data-has-score="False">
<div class="vert-mod">
<div class="vert vert-0" data-id="block-v1:MOOC-FLOSS+101+2021_1+type@problem+block@9cf8ee7073d04e2782e34563eaf2eae6">
<div class="xblock xblock-public_view xblock-public_view-problem xmodule_display xmodule_ProblemBlock" data-course-id="course-v1:MOOC-FLOSS+101+2021_1" data-block-type="problem" data-usage-id="block-v1:MOOC-FLOSS+101+2021_1+type@problem+block@9cf8ee7073d04e2782e34563eaf2eae6" data-request-token="ac6142ce903311ee8c631237928d7ffd" data-graded="False" data-has-score="True">
<div class="page-banner"><div class="alert alert-warning"><span class="icon icon-alert fa fa fa-warning" aria-hidden="true"></span><div class="message-content">Quiz is only accessible to enrolled learners. Sign in or register, and enroll in this course to view it.</div></div></div>
</div>
</div>
</div>
<script type="text/javascript">
(function (require) {
require(['/static/js/dateutil_factory.a28baef97506.js?raw'], function () {
require(['js/dateutil_factory'], function (DateUtilFactory) {
DateUtilFactory.transform('.localized-datetime');
});
});
}).call(this, require || RequireJS.require);
</script>
<script>
function emit_event(message) {
parent.postMessage(message, '*');
}
</script>
</div>