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

Z GeoWikiCZ
mBez shrnutí editace
 
(Není zobrazeno 208 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 ==
 
* 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 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 <code>Makefile</code>
 
Struktura adresáře (příklad pro skupinu A rok 2009):
<pre>
/2009
|
|-/a
  |
  |-/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
 
* 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 ====


== Cvičení ==
* host: <tt>geo102.fsv.cvut.cz</tt> (geo102)
* uživatelské jméno: <tt>pin2_<skupina><rok></tt>, např. <tt>pin2_b11</tt>


;Konzultace
Např.


:[[Ing. Martin Landa]] <tt>&lt;martin.landa fsv.cvut.cz&gt;</tt> (B802, [[Ing. Martin Landa#Tuition|konzultační hodiny]])
psql pgis_pin2 -U pin2_b11 -h geo102.fsv.cvut.cz -W


=== Požadavky ===
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]].


== Akademický rok 2008-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)