class: center, middle # LINGI 2401 : Open Source strategy for software development ??? This is a new course. And I'm a new teacher. So thanks for being an beta tester. --- class: center, middle # Lecturer Lionel Dricot lionel.dricot@uclouvain.be lionel@ploum.net @ploum - @ploum@mamot.fr ??? I'm required to give this course in English --- class: center, middle # What is free software? 2 minutes --- class: center, middle # Understanding, using, contributing to free software - Companies are looking for open source talents - A good GitHub account is the best CV - Most applications use lot of open source tools and libraries --- class: center, middle # Market university --- class: center, middle # Why are we here? ??? ask and draw on the board --- class: center, middle # What is freedom? 2 minutes --- class: center, middle # Do you like optimisation problems? --- class: center, middle  --- class: center, middle  --- class: center, middle  ??? Video to watch: https://media.ccc.de/v/32c3-7331-the_exhaust_emissions_scandal_dieselgate#video&t=3589 by "Felix "tmbinc" Domke" https://fr.wikipedia.org/wiki/Affaire_Volkswagen It will kill 2000 people https://news.mit.edu/2017/volkswagen-emissions-premature-deaths-europe-0303 --- class: center, middle # James Liang ??? VW Engineer sentenced to 3 years in prison. --- class: center, middle *"This was a couple of software engineers who put this in for whatever reason,"* Michael Horn, VW America CEO, testifying before US Congress ??? http://blog.cleancoder.com/uncle-bob/2015/10/14/VW.html --- class: center, middle # It's only the beginning Killer drones, AI populated kill lists, self driving cars,… --- class: center, middle #What code are you ready to do to keep your job? Or for money, fame, power and a company car… ??? Or for prison and sleepless night --- class: center, middle #What code will you be ashamed about? ??? What code will keep you up at night --- class: center, middle # You are not a cog in the market machine Market university is political bullshit ??? I'm not here to make you a better employee. We don't need workers, we need empowered citizens --- class: center, middle #With great power comes great responsibility Software is power ??? You have the opportunity to become more powerful than a lot of other. So you must learn to disobey. --- class: center, middle # Humboldtian university VS market university ??? I'm here to share my experience. I'm also here to enable you share yours. This is not a math course. There's no single truth. --- class: center, middle # This was an introduction - But I hope you will keep it in my mind during the year. - Next some administrative talks - Then we start with the history of free software --- class: center, middle # Subjects we will discuss - Licenses - Business models - Community - Political aspects - Security and privacy - Interoperability and standards - Decentralisation - Introduction to Bitcoin and blockchain (if time permits) --- class: center, middle #LINGI 2401: the lessons - Every Tuesday 8:30AM - Myself or an external speaker and you. - Slides with notes to be published on github.com/ploum/lingi2401 - Open to contributions (remarkJS): pay forward! - Open to suggestions: what do you want to learn? ??? Presence required when it's an external speaker. By respect for her/him. --- class: center, middle #Suggest and invite your own external speakers ??? Assignment: do some research about OpenCollective --- class: center, middle #Reference material Producing Open Source Software, by Karl Fogel ??? available for free online. https://producingoss.com First year I use it as a ref material --- class: center, middle #LINGI 2401: the project - Small contribution to an existing open source project - Report documenting your contribution and the process (markdown format, should not be long) - Deadline : 2 weeks before blocus - 5 minutes to present it to the class --- class: center, middle #The easy way to complete the project - Choose your open source project now or next week - Validate it with me - Start a blank file for the report - Make your contribution while writing the report as a journal --- class: center, middle #The realistic way to complete the project - Realise there was a project 3 days before the deadline - Write an email that looks like you were working on it for weeks but forgot to request my approval - Try to make a contribution in one night - Write the report after a white night and send it 3 hours after the deadline - Realise that the title contains the random string "xsojz" --- class: center, middle # LINGI 2401: the online platform - We have an official Moodle (but I didn't use it last year) - You can invite me on the unofficial forum/facebook/whatever - We can also use the GitHub project with ticket for questions --- class: center, middle # LINGI 2401: the exam - Face to face meeting - You will have your computer, Internet and everything you want. - Let's design the exam together! ??? Don't try to pretend you will study early. How can I make it fair? --- class: center, middle # LINGI 2402 - 5 credits for contributing to an open-source projects - 2401 is only a warm-up - See Obo and Yde for more informations - I'm here to help you succeed with 2402 --- class: center, middle # First assignment - Choose the open source project you will contribute to ??? What are ideas of open source projects you would like to contribute? --- class: center, middle #Itch to scratch - The project should be something you use - The contribution should be a fix you want to see badly - Should be something outside of your confort zone ??? No internal UCL projects or personal project. --- class: center, middle #How to validate my project? - Submit a new file to ploum/lingi2401/projects/projects_20\*\*-\*\* - If I merge it, then it's accepted --- class: center, middle #Questions? --- class: center, middle #History of free software To put a bit of context --- class: center, middle #At first, every software were free - Mostly academic - Cost was the hardware - Modifications were required for every hardware --- class: center, middle #Commercial software vs hackers - Software cost money - Source code is copyrighted - Hobbyists or hackers were still exchanging source code - Remember: no Internet --- class: center, middle background-image: url(https://github.com/ploum/lingi2401/raw/master/images/xerox9700.jpg) #Xerox 9700 ??? In 1980, a new printer was installed in the AI departement of the MIT --- class: center, middle background-image: url(https://github.com/ploum/lingi2401/raw/master/images/young_rms.png) ??? This guy had modified the software on the previous printer so you were notified when your print was done (because most people worked on a different floor than the printer). He realised he could not do it anymore with the new printer because the software was copyrighted and no source code were available. --- class: center, middle background-image: url(https://github.com/ploum/lingi2401/raw/master/images/rms.png) #Richard Stallman ??? Founder of the Free Software movement --- class: center, middle #Free Software philosophy - People should be free - So software should be free too - So non-free software are unethical - Software is not the meal, it's the recipe --- class: center, middle #Free as in free speech - Free to use - Free to study - Free to modify - Free to redistribute --- class: center, middle # What is freedom? Free to use your own definition of freedom ??? My personal take: free to use means that it should be usable. Something that is not user-friendly enough (for instance) is not very free to use in a certain way. --- class: center, middle #GNU is Not Unix - Free operating system - Lot of tools but still no kernel - GNU/GPL in 1989 by RMS and Eben Moglen - GNU/Hurd in 1990 --- From: torvalds@klaava.Helsinki.FI (Linus Benedict Torvalds) Newsgroups: comp.os.minix Subject: What would you like to see most in minix? Summary: small poll for my new operating system Message-ID: <1991Aug25.205708.9541@klaava.Helsinki.FI> Date: 25 Aug 91 20:57:08 GMT Organization: University of Helsinki Hello everybody out there using minix – I’m doing a (free) operating system (just a hobby, won’t be big and professional like gnu) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I’d like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things). I’ve currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I’ll get something practical within a few months, and I’d like to know what features most people would want. Any suggestions are welcome, but I won’t promise I’ll implement them 🙂 Linus (torvalds@kruuna.helsinki.fi) PS. Yes – it’s free of any minix code, and it has a multi-threaded fs. It is NOT protable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that’s all I have :-(. --- class: center, middle #Linux ??? 1991, based on Minix --- class: center, middle #GNU/Linux --- class: center, middle #Linux distributions - SLS (Softlanding Linux System) : 1992 - Slackware : 1993 - Debian : 1993 - … - Ubuntu : 2004 ??? For the first time, individuals were able to have a free operating system on the home computer. --- class: center, middle #Open Source Initiative - Eric Raymond and Bruce Perens in 1998 - Free software is too political - Business are afraid of free software - Let's say Open Source instead of Free Software --- class: center, middle #Open Source philosophy - Open Source is the best way to develop complex software - It's the only way for really complex software - The Cathedral and the Bazaar --- class: center, middle # Free Software vs Open Source - Free software because it's better for humans, even if software are less good. - Open source because it's better for software development. - Free software won't compromise. Non-free software are to be avoided. - Open source looks for compromises and may even help proprietary software. ??? Still ongoing war of terms; in practice and for most people, it refers to the same thing. --- class: center, middle # FLOSS Free Libre Open Source Software --- class: center, middle # Discussion time