#format rst #language de OSS 2019 ======== Ort: W3.05, Zeit: Mittwoch, 14:00-15:30, 15:40-17:10 DEADLINE FUER STUDIENARBEITEN (MASTER): FREITAG, 28.6., 0 Uhr * Link zu `früheren Veranstaltungen `_. * Gliederung: http://hhoegl.informatik.hs-augsburg.de/hhwiki/OssGliederung * Fragensammlung: http://hhoegl.informatik.hs-augsburg.de/hhwiki/OssFragen * Lesematerial: http://hhoegl.informatik.hs-augsburg.de/oss * Alte Klausuren: http://hhoegl.informatik.hs-augsburg.de/oss/Klausuren/ .. contents:: Inhalt .. sectnum:: Grobe Gliederung ---------------- 1. Motivation: Warum gibt man den Quelltext freiwillig her? #. Vor- und Nachteile von offener und geschlossener Software #. Definition der Begriffe "freie Software" und "offene Software" #. Geschichtliche Entwicklung (Voraussetzungen zur Entstehung von OSS) #. GNU Software und die Free Software Foundation (FSF) #. Die Open-Source Bewegung #. Wo wird freie und offene Software verwendet? #. Typische Anwendungsbereiche #. Wie macht man freie und offene Software? Regeln, Werkzeuge, kollaboratives Arbeiten mit git #. Aufbauen von Gemeinschaften ("community building") #. Beispiele von erfolgreichen OSS-Projekten #. Ein wenig Urheberrecht #. Die wichtigsten Lizenzen #. Freie Programme, die man kennen muss (http://hhoegl.informatik.hs-augsburg.de/hhwiki/OssProgramme) #. Anwendungsbereiche der offenen Denkweise ausserhalb der Softwareentwicklung #. Open-Innovation #. Geschäftsmodelle mit freier Software Termine ------- :: 1. 27.3. 2. 3.4. 10.4. entfällt 3. 17.4. 4. 24.4. 5. 8.5. 6. 15.5. 7. 22.5. 29.5. Pyramid (frei) 8. 5.6. <=== Vorlesung (trotz Go-Out) 12.6. 19.6. 9. 26.6. <=== Projekttag! 10. 3.7. 8.7., 8:30 Klausur .. _Texte: Weiterführende Texte, Videos, Websites, etc. -------------------------------------------- (Material: http://hhoegl.informatik.hs-augsburg.de/oss) **Artikel aus der Zeitung** (Neu) Andreas Proschofsky, Linux statt Windows: Es ist Zeit für den Umstieg, November 2018, Der Standard. https://www.derstandard.de/story/2000090352691/linux-statt-windows-es-ist-zeit-fuer-den-umstieg?ref=article 1. Artikel in der SZ zum Thema `Linux und Open-Source-Software statt Microsoft Windows `_ (11.3.2018), behandelt Open-Xchange, gegruendet von Rafael Laguna. #. Jonas Jansen, FAZ 20.3.2017, `Mit offener Software gegen den globalen Überwachungsstaat `_ (`lokale Kopie `_), dreht sich auch um Open-Xchange. #. Helmut Martin-Jung, Warum Open-Source-Software wichtig ist, `sz 25.4.2017 `_ #. Helmut Martin-Jung, SZ 7.4.2016, `Open Source erobert die Welt `_. #. Helmut Martin-Jung, SZ 6.8.2014, `Das Netzwerk ist fuer alle da `_ **Definition freie und offene Software** 1. https://de.wikipedia.org/wiki/Freie_Software #. Markus Nüttgens, Open-Source-Software, `Enzyklopaedie der Wirtschafsinformatik `_, 2014. #. Volker Grassmuck, Freie Software. Zwischen Privat- und Gemeineigentum (siehe OssMaterial_) **Probleme mit kommerzieller (geschlossener) Software** * ARD Mediathek, Das Microsoft-Dilemma, 2018 (verfügbar bis 19.05.2018, `Link zur Mediathek `_) Youtube: https://www.youtube.com/watch?v=_ZaDuinGf2o **Freie Software** * Sam Williams, Free as in Freedom. Richard Stallman's Crusade for Free Software. 2002, http://www.oreilly.com/openbook/freedom **Linux** 1. Linus Torvalds / David Diamond, Just for Fun: The Story of an Accidental Revolutionary, 2001. 2. Glyn Moody, Rebel Code: Linux and the Open Source Revolution, 2002. **Offene Innovation** * C\. Emde, Wie vermehren wir unser Wissen - früher und heute? (siehe OssMaterial_) **Lizenzen** 1. https://opensource.guide/legal (The Legal Side of Open Source, von github) #. https://choosealicense.com (von github) #. https://de.creativecommons.org/index.php/was-ist-cc/ #. http://www.ifross.org/lizenz-center #. Falk Zscheile , Wissen sichern mit freien und offenen Lizenzen, CLT2017, https://chemnitzer.linux-tage.de/2017/de/programm/beitrag/260 **Urheberrecht in der digitalen Welt** * http://irights.info **Git** 1. https://guides.github.com 2. http://hhoegl.informatik.hs-augsburg.de/hhwiki/GitSpicker **Wie man freie Software macht** 1. Karl Fogel, Producing Open-Source Software, https://producingoss.com #. The Architecture of Open Source Applications http://aosabook.org/en/index.html **Gemeinschaften** * Jono Bacon, The Art of Community, http://www.artofcommunityonline.org **Andere Kurse und Tutorials zum Thema "Freie und Open-Source Software"** - https://gitlab.cecs.anu.edu.au/comp8440/course/wikis/home - Beginners in Open Source Week https://opensource.com/life/14/2/beginners-open-source-week - http://teachingopensource.org - http://www.theopensourceway.org - http://www.dbus.de/eip/inhalt.html **Verschiedenes** 1. https://opensource.com (von Redhat) #. Open-Source Yearbook 2017 und 2018 (siehe OssMaterial_) #. https://opensource.guide (github) #. http://opensource.org (2018 ist der 20. Geburtstag!) #. http://oss-watch.ac.uk "OSS Watch provides unbiased advice and guidance on the use, development, and licensing of free software, open source software, and open source hardware." #. Vicky Brasseur, Forge Your Future with Open Source, Pragmatic Programmers 2018 (Login/Passwort fuer Zugang ist Ihnen bekannt). http://hhoegl.informatik.hs-augsburg.de/nonfree/Buecher/Pragprog-Opens-2018/ #. Andy Oram, Zaheda Bhorat, Open Source in the Enterprise, O'Reilly 2018 (26 Seiten). http://hhoegl.informatik.hs-augsburg.de/nonfree/Buecher/Enterprise-OSS/enterprise-oss-book-2018.pdf .. _OssMaterial: http://hhoegl.informatik.hs-augsburg.de/oss Hausaufgaben ------------ **1. Hausaufgabe** 27. Maerz 2019 1. Schauen Sie sich nochmal ihre Vorlesungsnotizen an. #. Was ist *freie* Software, was ist *offene* (engl. "open-source") Software? #. Achten Sie darauf welche Software Sie in einer Woche bei der taeglichen Arbeit verwenden. Welche Lizenz hat diese Software? Auf welchen Betriebssystemen läuft sie? Ist es geschlossene oder offene Software? #. Schauen Sie sich den Film "Das Microsoft-Dilemma" an und schreiben Sie sich die wesentlichen Aussagen auf. #. Lesen Sie die SZ Artikel von Helmut Martin-Jung und notieren Sie in Stichpunkten den Inhalt. #. Lesen Sie im Buch von Grassmuck den Abschnitt "Geschichte der freien Software", Buch S. 177-232. Siehe http://hhoegl.informatik.hs-augsburg.de/oss/grassmuck.html. Fragen dazu sind `hier `_. #. Machen Sie einen Zeitstrahl von 1960 bis jetzt und tragen Sie die Geschehnisse ein, über die wir in der ersten Vorlesung gesprochen haben. #. Schaue Sie sich die Website https://irights.info an. Worum geht es dort? #. Welche Lizenzen haben wir angesprochen? Was bedeutet das "gespiegelte" C? Welchen Lizenzbaukasten kennen Sie? #. Suchen Sie auf Youtube nach Videos von Richard M. Stallman über *Free Software*. Ein Beispiel wäre das `Video1 `_ (ca. 2 Min.) über die "four freedoms". Ein anderes `Video2 `_ über "Free Software, Free Society" (ca. 13 Min.). **2. Hausaufgabe** 3. April 2019 (bis 17. April 2019) - In Moodle eintragen (https://moodle.hs-augsburg.de/course/view.php?id=2473) **3. Hausaufgabe** 17. bis 24. April Buch: http://hhoegl.informatik.hs-augsburg.de/nonfree/Buecher/Pragprog-Opens-2018 "Code Reading" - Interessantes (kleines) Projekt suchen. Ein paar Vorschlaege sind hier: http://hhoegl.informatik.hs-augsburg.de/hhwiki/OssGliederung#code-reading - Quelltextverzeichnis untersuchen - Autoren - Lizenz - Was macht das Programm? - Wie lange existiert das Projekt? - Gibt es eine Homepage im WWW? - README, ChangeLog, Dokumentation, Doku-Format - Gibt es eine Manpage? - Welches Build-System wird verwendet? - Wie erzeugt man eine ausfuehrbare Datei? - Kann das Programm als Paket gepackt werden und in ein Repository gestellt werden? Wenn ja, welcher Pakettyp? (Beispiele: deb, rpm, wheel, snap, AppImage, etc.) - Wie gross ist das Projekt in etwa ("lines of code", https://dwheeler.com/sloccount) - Wie editiert man die Dateien? Ist eine IDE vorgesehen? - In welcher Programmiersprache (bzw. Sprachen) wurde das Projekt geschrieben? - Gibt es einen Coding-Style? - Ist Dokumentation im Quelltext enthalten? - Gibt es eine Autokonfiguration? Wenn ja, welche? - Gibt es eine Lokalisierung auf unterschiedliche Sprachen? - Fuer welche Betriebssysteme ist das Programm verwendbar? - Welches Versionskontrollsystem wird verwendet? - Welche Versionierungsschema wird verwendet? - Gibt es Forks des Projektes? - Wie ist der Workflow bei der Weiterentwicklung? Wie reicht man Aenderungen ein? - Gibt es eine Release-Planung? - Wird ein Test-Framework verwendet? - Gibt es einen Issue-Tracker ueber den man Kommentare und Fehlerbereichte einreichen kann? - Probieren Sie das Programm aus - Wie koennte man bei dem Projekt mitmachen? - Sonstige Anmerkungen **4. Hausaufgabe** 24. April bis 8. Mai - Verbesserung der Hausaufgaben-Abgabe (Kopf, Formatierung, Inhalt) - "Code Reading" von der letzten Hausaufgabe fortfuehren. - Vim Tutor. Vim installieren, dann auf der Shell das Kommand starten: ``vimtutor``. - Emacs Tutor. Emacs installieren, starten und dann das Tutorial aufrufen mit ``C-h t`` (das bedeutet die Tasten Strg und h druecken, dann Tasten loslassen und danach die Taste t druecken). - Film "Codename Linux" https://www.youtube.com/watch?v=X5jyOKPOcPI - Film "Revolution OS" https://www.youtube.com/watch?v=Eluzi70O-P4 - VM Brasseur, Forge Your Future with Open Source, Pragmatic Programmers 2018 (Login/Passwort fuer Zugang ist Ihnen bekannt). Sie sollten die ersten vier Kapitel lesen bis Seite 52. http://hhoegl.informatik.hs-augsburg.de/nonfree/Buecher/Pragprog-Opens-2018/ - Chemnitzer Linuxtag nach fuer unsere Veranstaltung verwertbaren Vortraegen absuchen https://chemnitzer.linux-tage.de/2019/de **5. Hausaufgabe** (ab. 8. Mai) - Film *Software Rebellen - Die Macht des Teilens* (u.a. mit Richard Stallman) https://www.arte.tv/de/videos/077346-000-A/software-rebellen/ von Philippe Borrel, Frankreich 2017 Verfügbar vom 02/05/2019 bis 05/06/2019 - Dreiteiliges Tutorial ueber Git von Kedar Vijay Kulkarni (Redhat), 2018. Für Anfänger geeignet. Sie sollten statt dem im Text erwaehnten github Account unser Gitlab nutzen, das Sie unter https://r-n-d.informatik.hs-augsburg.de:8080 finden. - A step-by-step guide to Git https://opensource.com/article/18/1/step-step-guide-git - How to clone, modify, add, and delete files in Git https://opensource.com/article/18/2/how-clone-modify-add-delete-git-files - A guide to git branching https://opensource.com/article/18/5/git-branching - Git Sitzungen nachvollziehen http://hhoegl.informatik.hs-augsburg.de/hhwiki/OssFragen#git-sitzung-1 http://hhoegl.informatik.hs-augsburg.de/hhwiki/OssFragen#git-sitzung-2 http://hhoegl.informatik.hs-augsburg.de/hhwiki/OssFragen#gitlab-beispiel-mit-workflow - Das Repository https://r-n-d.informatik.hs-augsburg.de:8080/open-source/repo1 habe ich zum Experimentieren eingerichtet. Es ist bisher nur eine winzige Python Quelltextdatei und eine README.md drin. Ich bitte alle, irgendwelche Änderungen daran zu machen, die Sie entweder auf einem separaten Branch oder in einem Fork mir als Merge-Request zukommen lassen. - Im Buch von VM Brasseur, Forge Your Future with Open Source, das Kapitel 5 lesen (S. 53 bis 72). Das Thema ist "Make a Contribution". **6. Hausaufgabe** (ab. 15. Mai) - Software-Lizenzen: Zusammenfassen der wesentlichen Lizenzen in Ihrem Hausaufgabentext. Zu verwendende Quellen (beide sind von github): - http://choosealicense.com, https://choosealicense.com/appendix (alle Lizenzen in einer Tabelle) - "The Legal Side of Open Source" https://opensource.guide/legal Suchen Sie für jede Lizenz mindestens zwei Projekte, die unter dieser Lizenz stehen. Finden Sie Gründe, warum die Apache 2.0 Lizenz besonders häufig bei freien Projekten verwendet wird, die auch in der kommerziellen Welt mitmischen, z.B. bei Android. Lesen Sie dazu den Text https://blog.chef.io/2009/08/11/why-we-chose-the-apache-license. - VM Brasseur, Forge Your Future with Open Source, Kapitel 6 (beitragen, ohne zu kodieren; Code Reviews schreiben; Software-Test; Sichten ("triage") und testen von Issues). **7. Hausaufgabe** (ab. 31. Mai) (Bitte das Gelesene auch grob in Ihrem Hausaufgabentext zusammenfassen) - Artikel von Stürmer und Myrach zum Thema "Community Building" lesen (siehe Link *Lesesmaterial* oben) - Kapitel 2 ("Der Einstieg") im Buch von Fogel `Producing OSS `_ lesen https://producingoss.com/de/getting-started.html Wer mehr Zeit (freiwillig) investieren möchte, dem empfehle ich vor allem die folgenden, eher nicht-technischen Kapitel aus dem Buch: - Kapitel 4. Soziale und politische Infrastruktur https://producingoss.com/de/social-infrastructure.html - Kapitel 5. Geld https://producingoss.com/de/money.html - Kapitel 6. Communications https://producingoss.com/de/communications.html - Kapitel 8. Leitung von Freiwilligen https://producingoss.com/de/managing-volunteers.html - VM Brasseur, Forge Your Future with Open Source, Kapitel 7 und 8 (Interact with the community / It's about the people) - Wenn ich noch ein dünnes Büchlein empfehlen sollte, das jeder Software-Entwickler kennen sollte, dann das hier (natürlich freiwillig): Brian W. Fitzpatrick, Ben Collins-Sussman, Debugging Teams: Better Productivity Through Collaboration, O'Reilly 2015. - https://learning.oreilly.com/library/view/debugging-teams/9781491932049/ - https://books.google.de/books/about/Debugging_Teams.html?id=2Jq9CgAAQBAJ&redir_esc=y Studienarbeiten (nur bei Master) -------------------------------- * Blender und 3D-Druck (MS) * JavaScript (IR) * Container-Virtualisierung (LM) * Open-Source und Microsoft (FT) * Usability in Open Source Software (KR)