155PIN2 Projekt - Informatika 2: Porovnání verzí
m -upravit |
mBez shrnutí editace |
||
(Není zobrazeno 188 mezilehlých verzí od 3 dalších uživatelů.) | |||
Řádek 1: | Řádek 1: | ||
'''Poznámka:''' od zimního semestru 2015-2016 nahrazeno předmětem [[155GIT4]] Informatika 4 | |||
__TOC__ | __TOC__ | ||
== Anotace == | == Anotace == | ||
Předmět navazuje na [[153PJIN]]. Studenti jsou rozděleni do skupin, které během semestru pracují na zadaném tématu. | Předmět navazuje na [[153PJIN|Projekt - Informatika]] z bakalářského studia. Studenti jsou rozděleni do skupin, které během semestru pracují na zadaném tématu z oblasti geoinformačních technologií. | ||
Skupiny během semestru průběžně prezentují výsledky a postup prací. Semestr je zakončen veřejnou prezentací projektů. | Skupiny během semestru průběžně prezentují výsledky a postup prací. Semestr je zakončen veřejnou prezentací projektů. | ||
''' | == Zadání projektu == | ||
=== Aktuální === | |||
* '''[[153PIN2 / 2014|Letní semestr 2014]]''' | |||
=== Archiv === | |||
* [[153PIN2 Projekt - Informatika 2 - 2013|Letní semestr 2013]] | |||
* [[153PIN2 Projekt - Informatika 2 - 2012|Letní semestr 2012]] | |||
* [[153PIN2 Projekt - Informatika 2 - 2011|Letní semestr 2011]] | |||
* [[153PIN2 Projekt - Informatika 2 - 2010|Letní semestr 2010]] | |||
* [[153PIN2 Projekt - Informatika 2 - 2009|Letní semestr 2009]] | |||
== Harmonogram == | |||
<googlecalendar>h9ks4h3git3ug1h8ucbihlqel0%40group.calendar.google.com&ctz=Europe/Prague&mode=agenda</googlecalendar> | |||
== Požadavky == | == Požadavky == | ||
* Výsledek projektu je šířen pod licencí GNU GPL, pokud s touto podmínkou autoři nesouhlasí, musí to explicitně uvést na první straně dokumentace | * Výsledek projektu je šířen pod licencí [http://www.gnu.org/licenses/gpl.html GNU GPL], pokud s touto podmínkou autoři nesouhlasí, musí to explicitně uvést na první straně dokumentace | ||
* Závěrečná zpráva je uložena do | * ''Závěrečná zpráva'' je uložena do repozitáře '''pin2'''. Součástí závěrečné zprávy musí být: | ||
** textová dokumentace ve formátu PDF včetně zdrojového textu, např. LaTeX | ** textová dokumentace ve formátu PDF včetně zdrojového textu, např. LaTeX | ||
** všechny zdrojové texty strukturované podle potřeby do hierarchie podadresářů | ** všechny zdrojové texty strukturované podle potřeby do hierarchie podadresářů | ||
** se zdrojovými | ** se zdrojovými texty překládaných programů musí být dodán vždy soubor <code>Makefile</code> | ||
Struktura adresáře (příklad pro skupinu A rok 2009): | |||
<pre> | <pre> | ||
/2009 | /2009 | ||
Řádek 23: | Řádek 42: | ||
| | | | ||
|-/dokumentace | |-/dokumentace | ||
|-... | |||
|-dokumentace_2009_a.pdf | |||
|-... | |||
|-/src | |-/src | ||
|-/prezentace | |-/prezentace | ||
|-... | |||
|-prezentace_2009_a.pdf | |||
|-... | |||
</pre> | </pre> | ||
* Projekt je zakončen veřejnou prezentací | * Projekt je zakončen ''veřejnou prezentací'' | ||
** K prezentaci se předkládá textová část dokumentace (nemusí obsahovat přílohy), tak aby byla k dispozici a mohla být dána k nahlédnutí přítomným zájemcům | ** K prezentaci se předkládá textová část dokumentace (nemusí obsahovat přílohy), tak aby byla k dispozici a mohla být dána k nahlédnutí přítomným zájemcům | ||
** Plná dokumentace musí být k datu odevzdání | ** Plná dokumentace musí být k datu odevzdání projektu vystavena v repozitáři '''pin2''' | ||
== Poznámky == | |||
=== Trac === | |||
{{wikipedia|Trac|lang=en}} je nástroj pro správu projektu a hlášení chyb. Trac je svobodný software licencovaný pod GNU GPL. Umožňuje integraci systému hlášení chyb, systému pro správu verzi (např. [[Git]]) a wiki. | |||
Trac předmětu je dostupný na adrese | |||
:::'''http://geo102.fsv.cvut.cz/trac/pin2''' | |||
Příklad vypsání ticketů pro skupinu [http://geo102.fsv.cvut.cz/trac/pin2/query?status=assigned&status=closed&status=new&status=reopened&component=2010-a&order=priority&col=id&col=summary&col=status&col=type&col=priority&col=milestone&col=reporter 2010/A]. | |||
=== Git === | |||
Zdrojové kódy včetně dokumentace jsou uloženy v [[Git]] repozitáři '''pin2'''. Právo zápisu je omezeno na členy dané skupiny, přístup pro čtení omezen není. | |||
Návod pro práci s Gitem naleznete [[Git|zde]]. | |||
* '''Repozitář pro aktuální akademický rok naklonujeme příkazem''' (předpokládá se právo zápisu) | |||
git clone git@geo102.fsv.cvut.cz:pin2/2014.git pin2-2014 | |||
* Starší ročníky jsou dostupné jako submoduly repozitáře '''pin2''' | |||
git clone git@geo102.fsv.cvut.cz:pin2.git | |||
: | :Příklad pro akademický rok 2009/2010 | ||
== | cd pin2 | ||
git submodule init | |||
git submodule update 2010 | |||
* ''Pro experimenty'' (seznámení s Gitem) používejte repozitář '''sandbox''' | |||
git clone git@geo102.fsv.cvut.cz:sandbox.git | |||
==== Přístup do Git repozitáře ==== | |||
Pro přístup do repozitáře potřebuje SSH klíč. | |||
===== GNU/Linux ===== | |||
Pro vytvoření klíče použijte příkaz | |||
ssh-keygen -t dsa | |||
Klíč se v tomto případě uloží do adresáře <tt>.ssh</tt>, tj. ''privátní'' <tt>.ssh/id_dsa</tt>, ''veřejný'' <tt>.ssh/id_dsa.pub</tt>. | |||
===== MS Windows ===== | |||
Návod instalace Gitu najdete [[Git#Git pod MS Windows|zde]]. | |||
* Git Bash | |||
ssh-keygen.exe | |||
* Git GUI | |||
Help -> Show SSH key | |||
Generate key | |||
Veřejný klíč najdete v domovském adresáři - <tt>.ssh\id_dsa.pub</tt>. | |||
==== Pracovní cyklus ==== | |||
Před prvním commitem (<tt>git commit</tt>) je vhodné nastavit osobní data a textový editor pro editaci zpráv logu. | |||
git config --global user.name "Martin Landa" | |||
git config --global user.email "martin.landa@fsv.cvut.cz" | |||
A textový editor | |||
git config --global core.editor "gedit" | |||
či v připadě MS Windows | |||
git config --global core.editor "C:/Windows/System32/notepad.exe" | |||
''Poznámka:'' Pokud jste zapomněli nastavit <tt>user.name</tt> a <tt>user.email</tt> před prvním commitem, můžete situaci napravit příkazem | |||
git commit --amend --author="Martin Landa <martin.landa@fsv.cvut.cz>" | |||
; Vytvoření základních adresářů projektu (viz požadavky) | |||
mkdir a | |||
mkdir a/dokumentace | |||
mkdir a/src | |||
mkdir a/prezentace | |||
; Přidání nového souboru | |||
cd a/dokumentace | |||
git add Makefile | |||
git commit -am"Makefile pro dokumentaci projektu" | |||
; Nahrání změn do vzdáleného repozitáře (geo102) | |||
Před modifikací souborů je vhodné aktualizovat data v repozitáři a tím zabránit případným kolizím při nahrávaní změn do vzdáleného repozitáře. | |||
git pull | |||
Přehled aktuálního stavu poskytuje příkaz <tt>git status</tt> | |||
git status | |||
<pre> | |||
# On branch master | |||
# Changed but not updated: | |||
# (use "git add <file>..." to update what will be committed) | |||
# (use "git checkout -- <file>..." to discard changes in working directory) | |||
# | |||
# modified: Makefile | |||
# | |||
</pre> | |||
Před nahráním změn do vzdáleného repozitáře je vhodné pro kontrolu zobrazit změny, které jste v lokálním repozitáři provedli | |||
git diff Makefile | |||
<pre> | |||
diff --git a/Makefile b/Makefile | |||
index 743e0c7..26de1b4 100644 | |||
--- a/Makefile | |||
+++ b/Makefile | |||
@@ -3,3 +3,6 @@ PDFLATEX=pdflatex | |||
pdf: | |||
$(PDFLATEX) $(NAME).tex | |||
+ | |||
+clean: | |||
+ rm -f $(NAME).pdf | |||
</pre> | |||
Nahraní změn do lokálního repozitáře se provede příkazem <tt>git commit</tt> | |||
git add Makefile | |||
git commit -am"Makefile: pridano pravidlo 'clean'" | |||
Nakonec se synchronizují změny ve vzdáleném repozitáři | |||
git push | |||
; Přejmenování/přesunutí souboru | |||
git mv Makefile Makefile.old | |||
git commit -am"Makefile prejmenovan na Makefile.old" | |||
; Odstranění souboru | |||
git rm Makefile.old | |||
git commit -am"Makefile.old odstranen" | |||
; Vrátit provedené změny | |||
Před odstraněním lokálních změn je vhodné zjistit jejich rozsah | |||
git diff Makefile | |||
<pre> | |||
diff --git a/Makefile b/Makefile | |||
index c1b0730..2f43e19 100644 | |||
--- a/Makefile | |||
+++ b/Makefile | |||
@@ -2,9 +2,6 @@ | |||
NAME=dokumentace.tex | |||
all: | |||
- make pdf | |||
- | |||
-pdf: | |||
$(PDFLATEX) $(NAME).tex | |||
clean: | |||
</pre> | |||
Odstranění lokální modifikace (tj. přepsání souboru lokálního repozitáře souborem ze vzdáleného repozitáře) se provede příkazem <tt>git revert</tt>. Tyto změny jsou '''nevratné'''! | |||
git checkout -- Makefile | |||
; Přehled provedených změn | |||
git log | |||
<pre> | |||
commit 2539ad083147271d908dc9b50ec57bb45582f5f9 | |||
Author: Martin Landa <martin.landa@fsv.cvut.cz> | |||
Date: Tue Feb 22 18:27:44 2011 +0100 | |||
Makefile.old odstranen | |||
commit 9bd2c41d8c3c90d132f81b8499fd3e83f7c9cac0 | |||
Author: Martin Landa <martin.landa@fsv.cvut.cz> | |||
Date: Tue Feb 22 18:27:07 2011 +0100 | |||
Makefile prejmenovan na Makefile.old | |||
commit cb3c67d97b955448bbcf19577ddca76d469b3694 | |||
Author: Martin Landa <martin.landa@fsv.cvut.cz> | |||
Date: Tue Feb 22 18:25:49 2011 +0100 | |||
Makefile: pridano pravidlo 'clean' | |||
commit ffd3f338bad1124c7595bd55c6214c0eb9c223c3 | |||
Author: Martin Landa <martin.landa@fsv.cvut.cz> | |||
Date: Tue Feb 22 18:22:46 2011 +0100 | |||
Makefile pro dokumentaci projektu | |||
</pre> | |||
=== PostGIS === | |||
Pro účel projektu je na serveru 'geo102' zřízena {{freegis|PostGIS}} databáze '''pgis_pin2'''. Každé skupině je přiřazeno unikátní schéma, např. skupině 'A' v roce 2009 - ''a09''. V projektech se schéma uvádí vždy explicitně pro každou tabulku, tedy např. | |||
= | <source lang="sql"> | ||
SELECT count(*) FROM a09.obce; | |||
</source> | |||
==== Přihlášení k databázi pgis_pin2 ==== | |||
* host: <tt>geo102.fsv.cvut.cz</tt> (geo102) | |||
* uživatelské jméno: <tt>pin2_<skupina><rok></tt>, např. <tt>pin2_b11</tt> | |||
Např. | |||
psql pgis_pin2 -U pin2_b11 -h geo102.fsv.cvut.cz -W | |||
Databáze obsahuje ve schématu <tt>osm</tt> data {{freegis|OpenStreetMap}} pro ČR. Příklad vytvoření tématické vrstvy najdete [[Diskuse:153UZPD Úvod do zpracování prostorových dat - projekt#Vytvoření tématické vrstvy|zde]]. | |||
== Konzultace == | |||
:[[Ing. Martin Landa, Ph.D.]] <tt><martin.landa fsv.cvut.cz></tt> (B802/B869, [[Ing. Martin Landa#Tuition|konzultační hodiny]]) | |||
{{Geoinformatika}} | {{Geoinformatika}} |
Aktuální verze z 5. 1. 2015, 15:49
Poznámka: od zimního semestru 2015-2016 nahrazeno předmětem 155GIT4 Informatika 4
Anotace
Předmět navazuje na Projekt - Informatika z bakalářského studia. Studenti jsou rozděleni do skupin, které během semestru pracují na zadaném tématu z oblasti geoinformačních technologií.
Skupiny během semestru průběžně prezentují výsledky a postup prací. Semestr je zakončen veřejnou prezentací projektů.
Zadání projektu
Aktuální
Archiv
Harmonogram
<googlecalendar>h9ks4h3git3ug1h8ucbihlqel0%40group.calendar.google.com&ctz=Europe/Prague&mode=agenda</googlecalendar>
Požadavky
- Výsledek projektu je šířen pod licencí GNU GPL, pokud s touto podmínkou autoři nesouhlasí, musí to explicitně uvést na první straně dokumentace
- Závěrečná zpráva je uložena do repozitáře pin2. Součástí závěrečné zprávy musí být:
- textová dokumentace ve formátu PDF včetně zdrojového textu, např. LaTeX
- všechny zdrojové texty strukturované podle potřeby do hierarchie podadresářů
- se zdrojovými texty překládaných programů musí být dodán vždy soubor
Makefile
Struktura adresáře (příklad pro skupinu A rok 2009):
/2009 | |-/a | |-/dokumentace |-... |-dokumentace_2009_a.pdf |-... |-/src |-/prezentace |-... |-prezentace_2009_a.pdf |-...
- Projekt je zakončen veřejnou prezentací
- K prezentaci se předkládá textová část dokumentace (nemusí obsahovat přílohy), tak aby byla k dispozici a mohla být dána k nahlédnutí přítomným zájemcům
- Plná dokumentace musí být k datu odevzdání projektu vystavena v repozitáři pin2
Poznámky
Trac
Trac je nástroj pro správu projektu a hlášení chyb. Trac je svobodný software licencovaný pod GNU GPL. Umožňuje integraci systému hlášení chyb, systému pro správu verzi (např. Git) a wiki.
Trac předmětu je dostupný na adrese
Příklad vypsání ticketů pro skupinu 2010/A.
Git
Zdrojové kódy včetně dokumentace jsou uloženy v Git repozitáři pin2. Právo zápisu je omezeno na členy dané skupiny, přístup pro čtení omezen není.
Návod pro práci s Gitem naleznete zde.
- Repozitář pro aktuální akademický rok naklonujeme příkazem (předpokládá se právo zápisu)
git clone git@geo102.fsv.cvut.cz:pin2/2014.git pin2-2014
- Starší ročníky jsou dostupné jako submoduly repozitáře pin2
git clone git@geo102.fsv.cvut.cz:pin2.git
- Příklad pro akademický rok 2009/2010
cd pin2 git submodule init git submodule update 2010
- Pro experimenty (seznámení s Gitem) používejte repozitář sandbox
git clone git@geo102.fsv.cvut.cz:sandbox.git
Přístup do Git repozitáře
Pro přístup do repozitáře potřebuje SSH klíč.
GNU/Linux
Pro vytvoření klíče použijte příkaz
ssh-keygen -t dsa
Klíč se v tomto případě uloží do adresáře .ssh, tj. privátní .ssh/id_dsa, veřejný .ssh/id_dsa.pub.
MS Windows
Návod instalace Gitu najdete zde.
- Git Bash
ssh-keygen.exe
- Git GUI
Help -> Show SSH key Generate key
Veřejný klíč najdete v domovském adresáři - .ssh\id_dsa.pub.
Pracovní cyklus
Před prvním commitem (git commit) je vhodné nastavit osobní data a textový editor pro editaci zpráv logu.
git config --global user.name "Martin Landa" git config --global user.email "martin.landa@fsv.cvut.cz"
A textový editor
git config --global core.editor "gedit"
či v připadě MS Windows
git config --global core.editor "C:/Windows/System32/notepad.exe"
Poznámka: Pokud jste zapomněli nastavit user.name a user.email před prvním commitem, můžete situaci napravit příkazem
git commit --amend --author="Martin Landa <martin.landa@fsv.cvut.cz>"
- Vytvoření základních adresářů projektu (viz požadavky)
mkdir a mkdir a/dokumentace mkdir a/src mkdir a/prezentace
- Přidání nového souboru
cd a/dokumentace git add Makefile git commit -am"Makefile pro dokumentaci projektu"
- Nahrání změn do vzdáleného repozitáře (geo102)
Před modifikací souborů je vhodné aktualizovat data v repozitáři a tím zabránit případným kolizím při nahrávaní změn do vzdáleného repozitáře.
git pull
Přehled aktuálního stavu poskytuje příkaz git status
git status
# On branch master # Changed but not updated: # (use "git add <file>..." to update what will be committed) # (use "git checkout -- <file>..." to discard changes in working directory) # # modified: Makefile #
Před nahráním změn do vzdáleného repozitáře je vhodné pro kontrolu zobrazit změny, které jste v lokálním repozitáři provedli
git diff Makefile
diff --git a/Makefile b/Makefile index 743e0c7..26de1b4 100644 --- a/Makefile +++ b/Makefile @@ -3,3 +3,6 @@ PDFLATEX=pdflatex pdf: $(PDFLATEX) $(NAME).tex + +clean: + rm -f $(NAME).pdf
Nahraní změn do lokálního repozitáře se provede příkazem git commit
git add Makefile git commit -am"Makefile: pridano pravidlo 'clean'"
Nakonec se synchronizují změny ve vzdáleném repozitáři
git push
- Přejmenování/přesunutí souboru
git mv Makefile Makefile.old git commit -am"Makefile prejmenovan na Makefile.old"
- Odstranění souboru
git rm Makefile.old git commit -am"Makefile.old odstranen"
- Vrátit provedené změny
Před odstraněním lokálních změn je vhodné zjistit jejich rozsah
git diff Makefile
diff --git a/Makefile b/Makefile index c1b0730..2f43e19 100644 --- a/Makefile +++ b/Makefile @@ -2,9 +2,6 @@ NAME=dokumentace.tex all: - make pdf - -pdf: $(PDFLATEX) $(NAME).tex clean:
Odstranění lokální modifikace (tj. přepsání souboru lokálního repozitáře souborem ze vzdáleného repozitáře) se provede příkazem git revert. Tyto změny jsou nevratné!
git checkout -- Makefile
- Přehled provedených změn
git log
commit 2539ad083147271d908dc9b50ec57bb45582f5f9 Author: Martin Landa <martin.landa@fsv.cvut.cz> Date: Tue Feb 22 18:27:44 2011 +0100 Makefile.old odstranen commit 9bd2c41d8c3c90d132f81b8499fd3e83f7c9cac0 Author: Martin Landa <martin.landa@fsv.cvut.cz> Date: Tue Feb 22 18:27:07 2011 +0100 Makefile prejmenovan na Makefile.old commit cb3c67d97b955448bbcf19577ddca76d469b3694 Author: Martin Landa <martin.landa@fsv.cvut.cz> Date: Tue Feb 22 18:25:49 2011 +0100 Makefile: pridano pravidlo 'clean' commit ffd3f338bad1124c7595bd55c6214c0eb9c223c3 Author: Martin Landa <martin.landa@fsv.cvut.cz> Date: Tue Feb 22 18:22:46 2011 +0100 Makefile pro dokumentaci projektu
PostGIS
Pro účel projektu je na serveru 'geo102' zřízena PostGIS databáze pgis_pin2. Každé skupině je přiřazeno unikátní schéma, např. skupině 'A' v roce 2009 - a09. V projektech se schéma uvádí vždy explicitně pro každou tabulku, tedy např.
SELECT count(*) FROM a09.obce;
Přihlášení k databázi pgis_pin2
- host: geo102.fsv.cvut.cz (geo102)
- uživatelské jméno: pin2_<skupina><rok>, např. pin2_b11
Např.
psql pgis_pin2 -U pin2_b11 -h geo102.fsv.cvut.cz -W
Databáze obsahuje ve schématu osm data OpenStreetMap pro ČR. Příklad vytvoření tématické vrstvy najdete zde.
Konzultace
- Ing. Martin Landa, Ph.D. <martin.landa fsv.cvut.cz> (B802/B869, konzultační hodiny)