[[!meta title="Open Source Programování"]]
+[[!toc]]
-[Popis předmětu][1] na stránkách [fakulty][2].
-
-Studenti se seznámí s open-source projekty a technikami ověřenými při
+V tomto předmětu se studenti seznámí s open-source projekty a technikami ověřenými při
programování rozsáhlejších aplikací a operačních systémů. Budou
uvedeny důvody, které vedly k založení projektu GNU, a vysvětleno,
proč může být tento přístup vhodnou platformou i pro spolupráci
komerčních firem. Dále budou popsány standardní nástroje pro tvorbu,
-správu, ladění a testování zdrojových kódů a základní skladba
+správu, ladění a testování (nejenom) open-source softwaru a základní skladba
operačního systému POSIXového typu. Předložen bude i úvod do tvorby
ovladačů pro takovéto operační systémy a skladby uživatelských a
grafických knihoven. Závěrečný blok přednášek bude zaměřen na využití
popsaných technik ve vestavných aplikacích a pro řízení v reálném
čase.
+[Popis předmětu][1] na stránkách [fakulty][2] a odkaz na rozvrh v [Bílé knize ČVUT][3].
+
Aktuality
=========
-* Ve čtvrtek 24.3. v době cvičení bude probíhat písemný a praktický test
-* Vyhlášen [seznam organizací](http://www.google-melange.com/gsoc/program/accepted_orgs/google/gsoc2011), které budou
- podporované v [Google Summer of Code 2011](http://www.google-melange.com/gsoc/program/home/google/gsoc2011)
-* <span>3. 3. 2011</span>: Zveme studenty na
- [[exkurzi do vyvojovjového pracoviště Siemens Corporate Technology|exkurze]],
- která se uskuteční 23. března 2011.
-* Ve dnech 5. a 6. března proběhne na Strahově konference a setkání [install fest](http://www.installfest.cz/if11/).
+
+<!-- * Dne 20. dubna od 14:30 bude o vývoji grafických aplikací přednášet Ing. František Vacek
+ * Návrh nativních a mobilních GUI aplikací, nástroje, prostředí a knihovny* aneb *Qt everywhere* -->
+
+<!-- * Ve dnech 5. a 6. března proběhne na Strahově konference a setkání [InstallFest](http://installfest.cz/if16/).
+ Prezentace představí různé otevřené technologie a nástroje. Jejich značná část se pak zabývá operačním systémem
+ GNU/Linux, na ně provozovanými službami a jeho využitím i na různých počítačových a mobilních platformách. -->
+
+* Červen 2020 Lenovo certifikuje celou řadu notebooků ThinkPad a ThinkStation Workstation pro použití s Ubuntu LTS a Red Hat Enterprise Linux, více v [oznámení](https://news.lenovo.com/pressroom/press-releases/lenovo-brings-linux-certification-to-thinkpad-and-thinkstation-workstation-portfolio-easing-deployment-for-developers-data-scientists/). Zároveň minmálně vybrané modely budou nabízené ke koupi s předisntalovanou distribucí Fedora, více v čase [1:27:46](https://www.youtube.com/watch?v=eK5IhNbkM5g&t=5266s) [Fedora 32 release party](https://twitter.com/Sesivany/status/1256693535832768512). Setkání české skupiny vývojářů projektu Fedora zajišťovala naše fakulta. přístup firmy Lenovo je příkladný v tom, že nebudou přizpůsobovat svému hardware jen určitou distribuci v určité verzi, ale zajstí podporu přes údržbu a rozvoj ovladačů v hlavním vývojovém stromu Linuxe Torwaldse.
+
+* Červen 2020, Internet Archive přestane podporovat [Internet Explorer](https://en.wikipedia.org/wiki/Internet_Explorer) aneb správa zdrojových kódů podle Microsoftu. Po letech popírání Internetu, kdy uživatelé museli spoléhat na cizí řešení [Winsock](https://en.wikipedia.org/wiki/Winsock) založené na [BSD](https://en.wikipedia.org/wiki/Berkeley_sockets) Microsoft BSD kód integruje s velkou slávou do Windows a využívá jí k propagaci až je Bill Gates označen [Otcem Internetu](https://www.lupa.cz/clanky/neslavne-vyroky-slavnych-iii/). Microsoft využívá zdrojové kódy prohlížeče Mosaic a platí až 100 mil USD ročně na jeho vývoj s týmem okolo tisíce vývojářů a další peníze do nástrojů pro tvorbu obsahu, který je z jiných prohlížečů těžko přístupný. Ve stejné době (1998) hrstka vývojářů hledá cestu jak z alternativním platforem udržet dostupnost obsahu Internetu a vzniká [KHTML](https://en.wikipedia.org/wiki/KHTML). Z něho vzniká [WebKit](https://en.wikipedia.org/wiki/WebKit) na kterém staví svůj [prohlížeč](https://en.wikipedia.org/wiki/Safari_(web_browser)) Apple, poději Google [Chrome](https://en.wikipedia.org/wiki/Google_Chrome) a nakonec [Blink](https://en.wikipedia.org/wiki/Blink_(browser_engine)), na který Microsoft přechází jako na standardní prohlížeč a který jako 230 MB materiálu dodává i na GNU/Linux jako binární (pouze) Debian balíček [Teams](https://en.wikipedia.org/wiki/Microsoft_Teams). Stojí za to se tedy zamyslet kam se podělo deset tisíc člověkoroků práce a jestli do důchodu odchází s pocite většího naplnění dobře živený vývojář, jehož veškerá práce sloužila k proszení pravidla "Jeden prsten vládne všem" a skončila na smetišti dějin nebo sice ne tak zajištění tvůrci původního kódu KHTML, Qt a dalších otevřených technologií. Zároveň je dobré se poučit do budoucna, které technologie pro udržitelný rozvoj používat.
+
+* Květen 2020, Prezident Microsoftu Brad Smith přiznal na konferenci [pořádané MIT](https://www.zdnet.com/article/microsoft-we-were-wrong-about-open-source-but-luckily-you-can-change/): "Microsoft was on the wrong side of history when open-source exploded at the beginning of the century and I can say that about me personally." Srovnejte s [Halloween documents](https://en.wikipedia.org/wiki/Halloween_documents).
+
+* Prosinec 2019 Televize CNBC s téměř 100 milióny platících zákazníků publikuje krátký filem [The Rise Of Open-Source Software](https://www.youtube.com/watch?v=SpeDK1TPbew)
+
+* Říjen 2018 Microsoft nakupuje webowou službu a kopletní systém pro vývoj a správu projektů ve verzovacím systému Git [GitHub](https://github.com/). Viz článek [Microsoft finalizes its $7.5 billion GitHub acquisition](https://www.zdnet.com/article/microsoft-finalizes-its-7-5-billion-github-acquisition/)
+
+* Listopad 2017 V seznamu [500 nejvýkonnějších](https://www.top500.org) výpočetních systémů světa se již nenachází ani jeden, který by nepoužíval jádro Linux. Viz článek [Linux totally dominates supercomputers](http://www.zdnet.com/article/linux-totally-dominates-supercomputers/)
+
+* 24 května 2017 Zveřejněnil Brian Harry ve své sérii článků o [Git Virtual File System - GVFS](https://github.com/Microsoft/GVFS) popis závěrečné fáze obměny kocepce správy zdrojových kódů operačního systému Microsoft Windows
+ * [The largest Git repo on the planet](https://blogs.msdn.microsoft.com/bharry/2017/05/24/the-largest-git-repo-on-the-planet/),
+ autor Brian Harry.
+
+* 13 května 2016 od 13:00 bude v místnosti KN:G-205 k tématu efektivního řešení úlohy *Obsluha mnoha klientů*
+ prezentovat Bc. Martin Vajnar článek
+ *[Algorithmic Improvements for Fast Concurrent Cuckoo Hashing](http://www.cs.princeton.edu/~mfreed/docs/cuckoo-eurosys14.pdf)*,
+ autorů Xiaozhou Li, David G. Andersen, Michael Kaminsky, Michael J. Freedman.
+
+* 5 května 2016 byly publikovány výsledky průzkumu zájmu zaměstnavatelů o odborníky se znalostí Open-Source technologií a vývoje
+ [The 2016 Open Source Jobs Report: Companies Hungry for Professional Open Source Talent](http://www.linuxfoundation.org/news-media/announcements/2016/05/2016-open-source-jobs-report-companies-hungry-professional-open)
+
+* 2015 Společnost Microsoft přechází s kompletní platformou Dot Net na otevřený vývojový model
+ * [Oficiální vývojový strom .NET v prostředí GitHub](https://github.com/Microsoft/dotnet)
+
+Komunikace
+==========
+
+Pro účely komunikace mezi studenty a vyučujícími slouží
+[mailing list][ml]. Studentům doporučujeme sledovat komunikaci na
+mailing listu, buď v [archivu][ar] nebo prostřednictvím
+[přihlášení se k odběru][ml]. Vyučující předpokládají, že studenti
+berou na vědomí zaslané informace.
+
+Další komunikační kanály jsou:
+
+- Twitter: <img src="Twitter_logo.png" alt="Twitter" class="twitter-logo">[[@CTU_OSP|twitter]]
+- IRC: #ctu_osp on [Freenode](https://freenode.net/) ([Webchat](http://webchat.freenode.net?channels=%23ctu_osp))
+
+[ml]: https://rtime.felk.cvut.cz/mailman/listinfo/osp
+[ar]: https://rtime.felk.cvut.cz/pipermail/osp/
Hodnocení předmětu
==========
+<!-- TODO: U cvičení 3 smazat poznámku a) -->
+<!-- TODO: Zpřísnit hodnocení - možná kontrolní termín v cca 9. týdnu:
+ Kdo nebude mít uspokojující postup na wiki, toho si pozveme
+ na kobereček.-->
[[!table class="borders" data="""
-Co | Podmínka<br/>zápočtu | Body | Poznámky |
-Cvičení 1 (úprava MC) | ✓ | 5 | a) |
-Cvičení 2 (dmsg vypíše Hello <my name>) | ✓ | 5 | a) |
-Cvičení 3 (předložení návrhu samostatné práce) | ✓ | 5 | a) |
-Cvičení 4 (úprava patche proti Git historii) | ✓ | 5 | a) |
-Prezentace záměru práce | ✓ | 5 | d) |
-Test v půli semestru | ✓ | 15 | |
-*Průběh samostatné práce* | | | |
- Odezva od člena projektu | | 3 | d) |
- Vaše změny (i nepřijaté) jsou dostupné ve veřejném repozitáři | | 3 | d) |
- Otestování vašich změn členem projektu | | 3 | d) |
- Zahrnutí vaší implementace do projektu | | 3 | d) |
- Vaše změny jsou zdokumentovány v dokumentaci projektu | | 3 | d) |
- Výsledná práce odpovídá zadání ze 3. týdne | | 3 | d) |
-Prezentace výsledku práce | ✓ | 10 | b), d) |
-Ohloh KudoRank | | 10 | c), d) |
-Zkouška | | 30 | |
-**Celkem** | | **108** | |
+Co | Podmínka<br/>zápočtu | Body | Poznámky,<br/>deadline |
+Úloha 1 (úprava MC) | ✓ | 5/1 | a), 10. 3. 2016 |
+Úloha 2 (dmsg vypíše Hello <my name>) | ✓ | 5/1 | a), 17. 3. 2016 |
+Konzultace návrhu samostatné práce | ✓ | | |
+Úloha 3 (úprava patche proti Git historii) | ✓ | 5/1 | a), 31. 3. 2016 |
+Prezentace záměru práce | ✓ | 5/1 | |
+Úloha 4 (Open street map) | ✓ | 5/1 | a), 14. 4. 2016 |
+Úloha 5 (obsluha mnoha klientů) | ✓ | 5(+5)/1 | a), b), 28. 4. 2016 |
+Test v půli semestru | ✓ | 15 | |
+*Průběh samostatné práce* | | | |
+ Odezva od člena projektu | | 3 | c) |
+ Vaše změny (i nepřijaté) jsou dostupné ve veřejném repozitáři | | 3 | c) |
+ Otestování vašich změn členem projektu | | 3 | c) |
+ Zahrnutí vaší implementace do projektu | | 3 | c) |
+ Vaše změny jsou zdokumentovány v uživatelské dokumentaci projektu | | 3 | c) |
+ Výsledná práce odpovídá zadání ze 3. týdne | | 3 | c) |
+ Profilová stránka a slidy k závěrečné prezentaci jsou anglicky | | 2 | |
+Prezentace výsledku práce | ✓ | 1 – 5 | d) |
+Open HUB kudorank | | (3) | e) |
+Zkouška | | 30 | |
+**Celkem** | | **100+(8)** | |
"""]]
[[!table class="borders" data="""
#### Poznámky:
<ol class="lower-alpha">
-<li>5 bodů pokud je úloha odevzdána do příštího cvičení (včetně), jinak
+<li>5 bodů pokud je úloha odevzdána do "deadlinu" (včetně), jinak
1 bod.</li>
-<li>4 – 10 bodů podle pořadí hodnoceného všemi přítomnými.</li>
-<li>počet uznaných bodů z hodnocení na serveru Ohloh bude omezen
- podle počtu uživatelem vytvořených commitů (příspěvků) do registrovaných
- projektů starších než jeden rok.</li>
-<li>pokud si vyberete v rámci zapojení do OSP lokalizaci, bude vaše bodové hodnocení z něho sníženo o 1/3.</li>
+<li>Pět nejlepších studentů získá navíc 1 – 5 bonusových bodů.</li>
+<li>pokud si vyberete jako samostatnou práci lokalizaci, bude vaše bodové hodnocení sníženo o 1/3.</li>
+<li>1 – 5 bodů v závislosti na hodnocení (hlasování) všemi přítomnými.</li>
+<li>[Open HUB][4] profil s kudorankem větším než 0 získaným za commity v open-source
+projektech splňujících požadavky na [[samostatnou práci|cviceni#semestralka]].</li>
</ol>
#### Pravidla pro studenty kombinovaného studia (KS):
* [Andrew Tridgell: Teaching FOSS at Universities, LCA 2010](http://2009.r2.co.nz/20100118/50100.htm)
([slides](http://www.lca2010.org.nz/slides/50100.odp))
* [The Australian National University, Free and Open Source Software Development](http://cs.anu.edu.au/students/comp8440/)
-* [Fachhochschule Augsburg, Hubert Högl](http://www.hs-augsburg.de/~hhoegl/oss/oss.html)
+* [Fachhochschule Augsburg, Hubert Högl](http://elk.informatik.fh-augsburg.de/hhweb/oss/index.html)
* [TeachingOpenSource.org](http://teachingopensource.org/)
* [Aberystwyth University: Open Source Development Issues](http://www.aber.ac.uk/en/modules/deptcurrent/?m=CS38110) ([Steve McIntyre: prednáška](http://www.einval.com/~steve/talks/Aberystwyth-2009/HEADER.html))
+* [Karlova Univerzita, MFF, Open source programování](http://pasky.or.cz/vyuka/2011-PRG055/)
+* [Open Source Comes to Campus](http://campus.openhatch.org/) -- one-day workshop taught by OpenHatch people.
Literatura
============
+Pro prohloubení či upřesnění látky probírané na přednáškách mohou
+posloužit následující odkazy:
+
+* [Karl Fogel: Producing Open Source Software (How to Run a Successful Free Software Project)](http://producingoss.com/en/index.html), CreateSpace, 2009, ISBN-13: 978-1441437716
+* Překlad [Karl Fogel: Tvorba open source softwaru](http://knihy.nic.cz/), CZ.NIC, z. s. p. o., 2012, ISBN-13: 978-80-904248-5-2
+* Floss Manuals <http://flossmanuals.net/>
* The Linux Documentation Project <http://tldp.org/>
* Popis programátorských technik v Unixu <http://dce.felk.cvut.cz/pos/os_api/unix.html>
* GNU Operating System <http://www.gnu.org/>
* Embedded Linux kernel and driver development, <http://free-electrons.com/>
* Love R.: Linux Kernel Development (2nd Edition), Novell Press, 2005.
-* Corbet J., Rubini A., Kroah-Hartman G.: Linux Device Drivers (3rd Edition),
-* O'Reilly Media, Inc., 2005, ISBN-10: 0596005903, ISBN-13: 978-0596005900
-* [Karl Fogel: Producing Open Source Software (How to Run a Successful Free Software Project)](http://producingoss.com/en/index.html)
+* Corbet J., Rubini A., Kroah-Hartman G.: Linux Device Drivers (3rd Edition), O'Reilly Media, Inc., 2005, ISBN-10: 0596005903, ISBN-13: 978-0596005900
* [An Exploration of Fedora’s Online Open Source Development Community](http://www.cyber-anthro.com/beta-an-exploration-of-fedora%E2%80%99s-online-open-source-development-community/)
+* [Ben Lynn: Git Magic](http://www-cs-students.stanford.edu/~blynn/gitmagic/index.html)
+* [Defensive patent publications](http://opensource.com/education/13/2/software-defensive-patents)
Prezentace studentských projektů z minulých běhů předmětu
==========================================================
-* [[Studenti|student/2010]]
-
- [1]: http://www.feld.cvut.cz/education/bk/predmety/12/53/p12539404.html
- [2]: http://fel.cvut.cz/
+* [[Rok 2010|student/2010]]
+* [[Rok 2011|student/2011]]
+* [[Rok 2012|student/2012]]
+* [[Rok 2013|student/2013]]
+* [[Rok 2014|student/2014]]
+* [[Rok 2015|student/2015]]
+* [[Rok 2016|student/2016]]
+
+ [1]: http://www.fel.cvut.cz/cz/education/bk/predmety/12/53/p12539404.html
+ [2]: http://fel.cvut.cz/
+ [3]: http://bilakniha.cvut.cz/cs/predmet3054806.html#rozvrh
+ [4]: http://www.openhub.net/