155PIN2 Projekt - Informatika 2: Porovnání verzí

Z GeoWikiCZ
mBez shrnutí editace
 
(Není zobrazeno 203 mezilehlých verzí od 3 dalších uživatelů.)
Řádek 1: Řádek 1:
{{Upravit}}
'''Poznámka:''' od zimního semestru 2015-2016 nahrazeno předmětem [[155GIT4]] Informatika 4


__TOC__
== Anotace ==
== Anotace ==


Projekt 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ů.


'''Doporučená literatura'''
== 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 odevzdána v jediném souboru '''153pin2-2009-x.tar.gz''', kde '''x''' označuje přidělený kód skupiny. Součástí závěrečné zprávy musí být:
* ''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 text překládaných programů musí být dodán vždy soubor Makefile
** se zdrojovými texty překládaných programů musí být dodán vždy soubor <code>Makefile</code>
* 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.
Struktura adresáře (příklad pro skupinu A rok 2009):
** Plná dokumenace '''153pin2-2009-x.pdf''' musí být k datu odevzdání zprávy vystavená na webu
<pre>
** Textová část prezentace (jeden soubor ve formátu PDF) a plná závěrečná zpráva (153pin2-2009-x.tar.gz) jsou uloženy v podadresáři '''x/src''', například
/2009
::http://josef.fsv.cvut.cz/~pin2-2009/a/src
|
* Na serveru josef.fsv.cvut.cz je pro všechny skupiny založeno společné konto '''pin22009''', jednotlivé projekty se ukládají do podadresařů '''x'''. Přístup ke kontu pjin2009 je možný pouze přes veřejné klíče, které je nutno (v případě potřeby) vygenerovat a poslat k zařazeni. Pro snažší administraci mají všechny veřejné klíče jednotné pojmenování '''pin2-2009-x-jmeno.pub'''.
|-/a
* Na serveru josef.fsv.cvut.cz je založena databáze pin2_2009 a schémata pin2_2009x, v projektech se schémata uvádějí vždy explicitně pro každou tabulku, tedy např. SELECT * FROM pin2_2009a.obce;
  |
  |-/dokumentace
    |-...
    |-dokumentace_2009_a.pdf
    |-...
  |-/src
  |-/prezentace
    |-...
    |-prezentace_2009_a.pdf
    |-...
</pre>
 
* 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 ===
 
{{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


;Konzultace
* Starší ročníky jsou dostupné jako submoduly repozitáře '''pin2'''


:[[Ing. Martin Landa]] <tt>&lt;martin.landa fsv.cvut.cz&gt;</tt> (B802, [[Ing. Martin Landa#Tuition|konzultační hodiny]])
git clone git@geo102.fsv.cvut.cz:pin2.git


== Zadání projektu ==
: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]].


* [[153PIN2 Projekt - Informatika 2 - 2009|Letní semestr 2009]]
== Konzultace ==


== Odkazy ==
:[[Ing. Martin Landa, Ph.D.]] <tt>&lt;martin.landa fsv.cvut.cz&gt;</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

http://geo102.fsv.cvut.cz/trac/pin2

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)