[[!meta title="Cvičení"]]
-[[!toc]]
+[[!toc levels=2]]
Obecné informace
==========
-Cvičení probíhá v laboratoři [KN:E-s109][1].
+Cvičení probíhají v laboratoři [KN:E-s109][1] a vede je
+[Michal Sojka][2]. Druhým cvičícím je [Jan Kaisrlík][8].
-[1]:http://www.feld.cvut.cz/education/rozvrhy-ng.B092/public/cz/mistnosti/10/12/m10121304.html
+Na stanicích v laboratoři je síťová instalace [Debian][6] GNU/Linux.
+Informace o účtech a vzdáleném přístupu se nacházejí na stránkách
+[IT oddělení katedry řídicí techniky][5].
Osnova
==========
-1. Seznámení se s předmětem a hodnocením, kontakt s reálným OS
- projektem
-2. Tvorba "produktu" z nezávislých OSS komponent (embedded Linux)
-3. Specifikace individuálního zadání samostatná práce a jeho zařazení
+1. Seznámení se s předmětem a hodnocením. Úloha 1: [[Hackovací intro|cviceni/1]].
+2. Úloha 2: [[Tvorba "produktu" z nezávislých OSS komponent|cviceni/2]] (embedded Linux)
+3. [[Specifikace individuálního zadání|cviceni/3]] samostatná práce a jeho zařazení
do existujících OS projektů (konzultace se cvičícími)
-4. Verzovací systém Git
-5. Prezentace projektu do kterého budu přispívat v samostatné práci a
- nástin řešení
-6. Test
-7. Samostatná práce
-8. Samostatná práce
-9. Samostatná práce
-10. Samostatná práce
-11. Prezentace výsledků (povinná účast)
-12. Zápočet
+4. Úloha 3: [[Verzovací systém Git|cviceni/4]]
+5. [[Prezentace projektu do kterého budu přispívat v samostatné práci a
+ nástin řešení|cviceni/5]]
+6. Úloha 4: [[Obsluha mnoha klientů|cviceni/server]]
+7. Úloha 5: [[Open street map|cviceni/osm]]
+8. Test (14. 4. 2016) ([[zadání|cviceni/6]], [[výsledky|cviceni/6/vysledky]])
+9. [[Samostatná práce, konzultace|cviceni/konzultace]]
+10. [[Samostatná práce, konzultace|cviceni/konzultace]]
+11. [[Samostatná práce, konzultace|cviceni/konzultace]]
+12. [[Prezentace výsledků (19. 5. 2016; povinná účast)|cviceni/11]]
+13. [[Zápočet|cviceni/12]]
Podmínky udělení zápočtu
==========
-* Účast na 1. - 6. a 11. cvičení,
-* odevzdané úlohy z 1. - 4. cvičení
+* Účast na 1. – 8. a 12. cvičení (individuálně hodnotíme předchozí omluvy ze závažných důvodů),
+* odevzdané úlohy 1 – 5,
* absolvován test,
-* prezentace záměr práce
+* prezentace záměru práce,
* prezentace výsledku práce.
+<a name="semestralka" />
Samostatná práce
==========
-[[Nabídka projektů|projekty]]
+Cílem samostatné práce je zkusit si na vlastní kůži jak funguje (či
+nefunguje :-) ) vývoj open source softwaru a naučit se komunikovat s
+open source vývojářskými komunitami. Každý student si vybere
+existující open source projekt a pokusí se do něj přispět.
+
+Vybraný projekt musí splňovat následující podmínky:
+
+* má veřejně přístupný repozitář s historií projektu
+* historie musí dokládat minimálně dva roky aktivního vývoje nebo na
+ vývoji musí pracovat minimálně pět aktivních vývojářů (autorů
+ commitů).
+
+Příspěvek do projektu může být téměř vše, co projektu prospěje –
+např.:
+
+* oprava chyby,
+* přidání nové vlastnosti,
+* napsání dokumentace,
+* lokalizace (netechnické činnosti hodnotíme menším počtem bodů).
+
+Cílem ale není pouze práci provést, ale dostat ji do projektu tak, aby
+její výsledky byly dostupné všem, kdo daný projekt využívají. V
+závislosti na typu (a velikosti) projektu může být tento krok mnohem
+těžší než vlastní vývojová práce. Je potřeba srozumitelně vysvětlit
+správcům projektu co děláte, proč to děláte a případně reagovat na
+další požadavky správců.
+
+Výsledky své práce zveřejněte na své
+[[profilové stránce|student/2015]]. Na konci semestru by vaše stránka
+měla vypadat podobně jako např.
+[[stránka pana Houdka|student/houdepre]].
+
+Jak si vybrat vhodný projekt?
+-----------------------------------
+
+Open source projekty se dají rozdělit na dobře a špatně fungující.
+Chceme, abyste se v tomto předmětu zapojili do těch dobrých a špatně
+fungujícím se vyhnuli. Nejenom, že tím dostanete víc bodů, ale hlavně
+ze své práce budete mít mnohem lepší pocit.
+
+V seznamu níže uvádíme naše doporučení ohledně výběru projektu a
+úlohy, kterou budete řešit. Doporučení vycházejí ze zkušeností z
+minulých běhů předmětu OSP.
+
+* Zkontrolujte, že je projekt živý, t.j. do repozitáře přibývají
+ commity a správci projektu komunikují s ostatními (mailing list,
+ fórum, IRC). Pokud je poslední commit v projektu několik let starý
+ nebo se během posledních pár měsíců neobjevila v mailing listu
+ jediná zpráva od správců, projektu se vyhněte.
+
+* Pokud se rozhodnete opravit chybu, kterou najdete v bug trackeru, je
+ dobré si vybrat takovou chybu, která byla správci projektu
+ potvrzena. Často se v bug trackeru objevují hlášení od uživatelů,
+ která sice jako chyby vypadají, ale ve skutečnosti to chyby nejsou.
+ Může se jednat i vlastnosti programu, které správci nechtějí měnit,
+ nebo to může být chyba konfiguraci daného uživatele apod. Ať už je
+ důvod jakýkoli, pokud takovou chybu-nechybu opravíte, moc úspěchu s
+ tím nesklidíte.
+
+ A i když si vyberete potvrzenou chybu, přemýšlejte nad tím jak je
+ její oprava užitečná pro uživatele. Často se totiž studentům stává,
+ že i když chybu opraví, nedostane se jim do konce předmětu žádné
+ odezvy, protože v projektu řeší důležitější (užitečnější) věci.
+
+* Pokud chcete implementovat novou vlastnost, vyberte si takovou věc o
+ kterou mají uživatelé (nebo správci) zájem. Nevymýšlejte nesmysly,
+ které nikoho nezajímají.
+
+Pokud nevíte jaký projekt si vybrat, může vám pomoct
+[[tato stránka|cviceni/projekty]]. Při práci na projektech vám můžou
+pomoct [[odpovědi na často kladené otázky|faq]].
+
+Google summer of code
+----------
+
+Širokou nabídku open source projektů, včetně konkrétních úloh, které
+mají zájem o příspěvky studentů představuje
+[Google summer of code][4]. Většina technologií společnosti Google je
+postavena na open source softwaru (OSS) a proto společnost sponzoruje
+rozvoj těchto projektů a platí studenty na nich pracující. Studenti
+mohou zasílat přihlášku do 27. března. Rozhodnutí o přijetí či
+nepřijetí bude známo 27. dubna. Studenti OSP přijatí do GSOC získají
+všechny body za *průběh samostatné práce*. Povinnost závěrečné
+prezentace a její bodové hodnocení však zůstává.
+
+Představu o schválených organizacích a tématech projektů lze
+získat například z minulých běhů programu ([Google summer of code 2014][9]).
+Většina z přijatých organizací pokračuje v dalším běhu. Diskuze
+a seznam potenciálních témat pro další běh je pak připravovaný
+většinou na ktomu určené stránce ve Wiki projektu.
+Projekt RTEMS má přímo připravený [návod][10] pro zájemce o GSoC
+a [seznam projektů k řešení][11].
+
+
+ [1]:http://www.fel.cvut.cz/education/rozvrhy-ng/public/cz/mistnosti/10/12/m10121304.html
+ [2]:http://rtime.felk.cvut.cz/~sojka/
+ [3]:http://cmp.felk.cvut.cz/~pisa/
+ [4]:https://www.google-melange.com/gsoc/homepage/google/gsoc2015
+ [5]:http://support.dce.felk.cvut.cz/mediawiki/index.php/GNU/Linux_v_laborato%C5%99%C3%ADch
+ [6]:http://www.debian.org/
+ [7]:http://dce.fel.cvut.cz/katedra/ing-rostislav-lisovy
+ [8]:https://dce.fel.cvut.cz/katedra/ing-jan-kaisrlik
+ [9]:https://www.google-melange.com/gsoc/projects/list/google/gsoc2014
+ [10]:https://devel.rtems.org/wiki/GSoC
+ [11]:https://devel.rtems.org/wiki/Developer/OpenProjects