<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="sk">
	<id>http://www.kiwiki.info/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=WikiSysop</id>
	<title>Kiwiki - Príspevky používateľa [sk]</title>
	<link rel="self" type="application/atom+xml" href="http://www.kiwiki.info/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=WikiSysop"/>
	<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php/%C5%A0peci%C3%A1lne:Pr%C3%ADspevky/WikiSysop"/>
	<updated>2026-06-15T16:37:14Z</updated>
	<subtitle>Príspevky používateľa</subtitle>
	<generator>MediaWiki 1.34.0</generator>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Poloautomatick%C3%BD_parkovac%C3%AD_syst%C3%A9m&amp;diff=1452</id>
		<title>Poloautomatický parkovací systém</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Poloautomatick%C3%BD_parkovac%C3%AD_syst%C3%A9m&amp;diff=1452"/>
		<updated>2010-01-26T10:40:39Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]]&lt;br /&gt;
[[Kategória:Bakalárske práce]]&lt;br /&gt;
[[Kategória:Informatika]]&lt;br /&gt;
[[Kategória:Mechatronika]]&lt;br /&gt;
{{Hlavička_FM|{{PAGENAME}}|Martin Pilař|Ing. Juraj Ďuďák|&lt;br /&gt;
2009/2010&lt;br /&gt;
|Semestrálna práca&lt;br /&gt;
|Mechatronika&lt;br /&gt;
}}&lt;br /&gt;
{{Praca_uvod|1|Poloautomatický parkovací systém|Rozdelenie parkovacích systémov a médií|Poloaoutovatický parkovací systém|Návrh modelu poloaoutomatického parkovacieho systmu|Softvérová časť parkovacieho systému|||||||}}&lt;br /&gt;
{{Abstrakt&lt;br /&gt;
|slovensky&lt;br /&gt;
|anglicky&lt;br /&gt;
}}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
'''Úvod'''&lt;br /&gt;
&lt;br /&gt;
=Rozdelenie parkovacích systémov a médií=&lt;br /&gt;
==Spoplatnené parkovacie systémy==&lt;br /&gt;
==Nespoplatnené parkovacie systémy==&lt;br /&gt;
==Médiá parkovacieho systému==&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Poloautomatick%C3%BD_parkovac%C3%AD_syst%C3%A9m_-_implement%C3%A1cia&amp;diff=1451</id>
		<title>Poloautomatický parkovací systém - implementácia</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Poloautomatick%C3%BD_parkovac%C3%AD_syst%C3%A9m_-_implement%C3%A1cia&amp;diff=1451"/>
		<updated>2010-01-26T10:40:23Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]]&lt;br /&gt;
[[Kategória:Bakalárske práce]]&lt;br /&gt;
[[Kategória:Informatika]]&lt;br /&gt;
[[Kategória:Mechatronika]]&lt;br /&gt;
{{Praca_uvod|2|Poloautomatický parkovací systém|Rozdelenie parkovacích systémov a médií|Poloaoutovatický parkovací systém|Návrh modelu poloaoutomatického parkovacieho systmu|Softvérová časť parkovacieho systému|||||||}}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
= =&lt;br /&gt;
==Vjazd náhodne parkujúceho==&lt;br /&gt;
==Vjazd predplatiteľa==&lt;br /&gt;
==Výjazd náhodne parkujúceho==&lt;br /&gt;
==Výjazd predplatiteľa==&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Softv%C3%A9rov%C3%A1_%C4%8Das%C5%A5_parkovacieho_syst%C3%A9mu&amp;diff=1450</id>
		<title>Softvérová časť parkovacieho systému</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Softv%C3%A9rov%C3%A1_%C4%8Das%C5%A5_parkovacieho_syst%C3%A9mu&amp;diff=1450"/>
		<updated>2010-01-26T10:40:07Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Vytvorená stránka „Kategória:Študentské práce Kategória:Bakalárske práce Kategória:Informatika Kategória:Mechatronika {{Praca_uvod|4|Poloautomatický parkovací syst…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]]&lt;br /&gt;
[[Kategória:Bakalárske práce]]&lt;br /&gt;
[[Kategória:Informatika]]&lt;br /&gt;
[[Kategória:Mechatronika]]&lt;br /&gt;
{{Praca_uvod|4|Poloautomatický parkovací systém|Rozdelenie parkovacích systémov a médií|Poloaoutovatický parkovací systém|Návrh modelu poloaoutomatického parkovacieho systmu|Softvérová časť parkovacieho systému|||||||}}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
= =&lt;br /&gt;
kapitolky si dopíš&lt;br /&gt;
&lt;br /&gt;
=Záver=&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=N%C3%A1vrh_modelu_poloautomatick%C3%A9ho_parkovacieho_syst%C3%A9mu&amp;diff=1449</id>
		<title>Návrh modelu poloautomatického parkovacieho systému</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=N%C3%A1vrh_modelu_poloautomatick%C3%A9ho_parkovacieho_syst%C3%A9mu&amp;diff=1449"/>
		<updated>2010-01-26T10:39:31Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Vytvorená stránka „Kategória:Študentské práce Kategória:Bakalárske práce Kategória:Informatika Kategória:Mechatronika {{Praca_uvod|3|Poloautomatický parkovací syst…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]]&lt;br /&gt;
[[Kategória:Bakalárske práce]]&lt;br /&gt;
[[Kategória:Informatika]]&lt;br /&gt;
[[Kategória:Mechatronika]]&lt;br /&gt;
{{Praca_uvod|3|Poloautomatický parkovací systém|Rozdelenie parkovacích systémov a médií|Poloaoutovatický parkovací systém|Návrh modelu poloaoutomatického parkovacieho systmu|Softvérová časť parkovacieho systému|||||||}}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
= =&lt;br /&gt;
==Komunikácia cez port RS 232==&lt;br /&gt;
==Hardvér==&lt;br /&gt;
==Doska mikroproceora AT89C20510==&lt;br /&gt;
==Rampy==&lt;br /&gt;
==Tlačiarne==&lt;br /&gt;
==Snímač čiarového kódu==&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Poloautomatick%C3%BD_parkovac%C3%AD_syst%C3%A9m_-_implement%C3%A1cia&amp;diff=1448</id>
		<title>Poloautomatický parkovací systém - implementácia</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Poloautomatick%C3%BD_parkovac%C3%AD_syst%C3%A9m_-_implement%C3%A1cia&amp;diff=1448"/>
		<updated>2010-01-26T10:37:13Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Vytvorená stránka „Kategória:Študentské práce Kategória:Bakalárske práce Kategória:Informatika Kategória:Mechatronika {{Praca_uvod|2|Poloautomatický parkovací syst…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]]&lt;br /&gt;
[[Kategória:Bakalárske práce]]&lt;br /&gt;
[[Kategória:Informatika]]&lt;br /&gt;
[[Kategória:Mechatronika]]&lt;br /&gt;
{{Praca_uvod|2|Poloautomatický parkovací systém|Rozdelenie parkovacích systémov a médií|Poloaoutovatický parkovací systém|Návrh modelu poloaoutomatického parkovacieho systmu||||||||}}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
= =&lt;br /&gt;
==Vjazd náhodne parkujúceho==&lt;br /&gt;
==Vjazd predplatiteľa==&lt;br /&gt;
==Výjazd náhodne parkujúceho==&lt;br /&gt;
==Výjazd predplatiteľa==&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Poloautomatick%C3%BD_parkovac%C3%AD_syst%C3%A9m&amp;diff=1447</id>
		<title>Poloautomatický parkovací systém</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Poloautomatick%C3%BD_parkovac%C3%AD_syst%C3%A9m&amp;diff=1447"/>
		<updated>2010-01-26T10:35:29Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]]&lt;br /&gt;
[[Kategória:Bakalárske práce]]&lt;br /&gt;
[[Kategória:Informatika]]&lt;br /&gt;
[[Kategória:Mechatronika]]&lt;br /&gt;
{{Hlavička_FM|{{PAGENAME}}|Martin Pilař|Ing. Juraj Ďuďák|&lt;br /&gt;
2009/2010&lt;br /&gt;
|Semestrálna práca&lt;br /&gt;
|Mechatronika&lt;br /&gt;
}}&lt;br /&gt;
{{Praca_uvod|1|Poloautomatický parkovací systém|Rozdelenie parkovacích systémov a médií|Poloaoutovatický parkovací systém|Návrh modelu poloaoutomatického parkovacieho systmu||||||||}}&lt;br /&gt;
{{Abstrakt&lt;br /&gt;
|slovensky&lt;br /&gt;
|anglicky&lt;br /&gt;
}}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
'''Úvod'''&lt;br /&gt;
&lt;br /&gt;
=Rozdelenie parkovacích systémov a médií=&lt;br /&gt;
==Spoplatnené parkovacie systémy==&lt;br /&gt;
==Nespoplatnené parkovacie systémy==&lt;br /&gt;
==Médiá parkovacieho systému==&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Nastavenie_priority_procesu_a_vplyv_na_jeho_%C4%8Dinnos%C5%A5_v_opera%C4%8Dnom_syst%C3%A9me&amp;diff=1434</id>
		<title>Nastavenie priority procesu a vplyv na jeho činnosť v operačnom systéme</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Nastavenie_priority_procesu_a_vplyv_na_jeho_%C4%8Dinnos%C5%A5_v_opera%C4%8Dnom_syst%C3%A9me&amp;diff=1434"/>
		<updated>2010-01-26T10:05:51Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]]&lt;br /&gt;
[[Kategória:Bakalárske práce]]&lt;br /&gt;
[[Kategória:Informatika]]&lt;br /&gt;
[[Kategória:operačné systémy]]&lt;br /&gt;
{{Hlavička_FM|{{PAGENAME}}|Martin Cibulka|Ing. Peter Kvasnica,PhD.|&lt;br /&gt;
2009/2010&lt;br /&gt;
|Semetrálna práca|Mechatronika}} &lt;br /&gt;
{{Praca_uvod|1|Nastavenie priority procesu a vplyv na jeho činnosť v operačnom systéme|Procesy|Plánovanie procesov|Plánovanie procesov v OS Windows||||||||}}&lt;br /&gt;
{{Abstrakt|slovesnky|anglicky}}&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
'''Úvod'''&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Nastavenie priority procesu a vplyv na jeho činnosť v operačnom systéme=&lt;br /&gt;
==Proces==&lt;br /&gt;
==Plánovanie procesov==&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Kateg%C3%B3ria:Opera%C4%8Dn%C3%A9_syst%C3%A9my&amp;diff=1433</id>
		<title>Kategória:Operačné systémy</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Kateg%C3%B3ria:Opera%C4%8Dn%C3%A9_syst%C3%A9my&amp;diff=1433"/>
		<updated>2010-01-26T10:04:18Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Vytvorená stránka „Stránky s obsahom z oblasti operačných systémov.“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Stránky s obsahom z oblasti operačných systémov.&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Pl%C3%A1novanie_procesov_v_OS_Windows&amp;diff=1432</id>
		<title>Plánovanie procesov v OS Windows</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Pl%C3%A1novanie_procesov_v_OS_Windows&amp;diff=1432"/>
		<updated>2010-01-26T10:03:11Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Vytvorená stránka „Kategória:Študentské práce Kategória:Bakalárske práce Kategória:Informatika Kategória:operačné systémy {{Praca_uvod|3|Nastavenie priority proces…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]]&lt;br /&gt;
[[Kategória:Bakalárske práce]]&lt;br /&gt;
[[Kategória:Informatika]]&lt;br /&gt;
[[Kategória:operačné systémy]]&lt;br /&gt;
{{Praca_uvod|3|Nastavenie priority procesu a vplyv na jeho činnosť v operačnom systéme|Procesy|Plánovanie procesov|Plánovanie procesov v OS Windows||||||||}}&lt;br /&gt;
&lt;br /&gt;
= = &lt;br /&gt;
obsah kapitoly&lt;br /&gt;
&lt;br /&gt;
=Záver=&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Pl%C3%A1novanie_procesov&amp;diff=1431</id>
		<title>Plánovanie procesov</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Pl%C3%A1novanie_procesov&amp;diff=1431"/>
		<updated>2010-01-26T10:02:13Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Vytvorená stránka „Kategória:Študentské práce Kategória:Bakalárske práce Kategória:Informatika Kategória:operačné systémy {{Praca_uvod|2|Nastavenie priority proces…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]]&lt;br /&gt;
[[Kategória:Bakalárske práce]]&lt;br /&gt;
[[Kategória:Informatika]]&lt;br /&gt;
[[Kategória:operačné systémy]]&lt;br /&gt;
{{Praca_uvod|2|Nastavenie priority procesu a vplyv na jeho činnosť v operačnom systéme|Procesy|Plánovanie procesov|Plánovanie procesov v OS Windows||||||||}}&lt;br /&gt;
&lt;br /&gt;
= =&lt;br /&gt;
==Základné princípy==&lt;br /&gt;
==Algoritmy plánovania==&lt;br /&gt;
==Plánovanie pomocou viacerých front==&lt;br /&gt;
==Plánovanie systémov reálneho času==&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Porovnanie_v%C3%BDkonnosti_virtualiza%C4%8Dn%C3%BDch_softv%C3%A9rov%C3%BDch_produktov&amp;diff=1430</id>
		<title>Porovnanie výkonnosti virtualizačných softvérových produktov</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Porovnanie_v%C3%BDkonnosti_virtualiza%C4%8Dn%C3%BDch_softv%C3%A9rov%C3%BDch_produktov&amp;diff=1430"/>
		<updated>2010-01-26T09:53:40Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]]&lt;br /&gt;
[[Kategória:Bakalárske práce]]&lt;br /&gt;
[[Kategória:Informatika]]&lt;br /&gt;
[[Kategória:Operačné systémy]]&lt;br /&gt;
{{Hlavička_FM|{{PAGENAME}}|Dušan Vojsovič|Ing. Tomáš Páleník|&lt;br /&gt;
2009/2010&lt;br /&gt;
|Semetrálna práca|Mechatronika}} &lt;br /&gt;
{{Praca_uvod|1|Porovnanie výkonnosti virtualizačných softvérových produktov|Virtualiyácia a jej história a princípy|Porovnanie vybrabých virtualizačných produktov|||||||||}}&lt;br /&gt;
{{Abstrakt|slovesnky|anglicky}}&lt;br /&gt;
__TOC__&lt;br /&gt;
'''Úvod'''&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
=Virtualizácia a jej história a princípy=&lt;br /&gt;
==Pojem virtualizácia==&lt;br /&gt;
==História a vznik virtualizácie==&lt;br /&gt;
==Spôsoby a úrovne virtualizácie==&lt;br /&gt;
==Virtualizačné systémy a emulátory==&lt;br /&gt;
==Využitie virtualizácie==&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Porovnanie_v%C3%BDkonnosti_virtualiza%C4%8Dn%C3%BDch_softv%C3%A9rov%C3%BDch_produktov&amp;diff=1429</id>
		<title>Porovnanie výkonnosti virtualizačných softvérových produktov</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Porovnanie_v%C3%BDkonnosti_virtualiza%C4%8Dn%C3%BDch_softv%C3%A9rov%C3%BDch_produktov&amp;diff=1429"/>
		<updated>2010-01-26T09:52:43Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: /* Virtualiyácia a jej história a princípy */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]]&lt;br /&gt;
[[Kategória:Bakalárske práce]]&lt;br /&gt;
[[Kategória:Informatika]]&lt;br /&gt;
[[Kategória:Operačné systémy]]&lt;br /&gt;
{{Hlavička_FM|{{PAGENAME}}|Dušan Vojsovič|Ing. Tomáš Páleník|&lt;br /&gt;
2009/2010&lt;br /&gt;
|Semetrálna práca|Mechatronika}} &lt;br /&gt;
{{Praca_uvod|1|Porovnanie výkonnosti virtualizačných softvérových produktov|Virtualiyácia a jej história a princípy|Porovnanie vybrabých virtualizačných produktov|||||||||}}&lt;br /&gt;
{{Abstrakt|slovesnky|anglicky}}&lt;br /&gt;
&lt;br /&gt;
'''Úvod'''&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
=Virtualizácia a jej história a princípy=&lt;br /&gt;
==Pojem virtualizácia==&lt;br /&gt;
==História a vznik virtualizácie==&lt;br /&gt;
==Spôsoby a úrovne virtualizácie==&lt;br /&gt;
==Virtualizačné systémy a emulátory==&lt;br /&gt;
==Využitie virtualizácie==&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Porovnanie_vybrab%C3%BDch_virtualiza%C4%8Dn%C3%BDch_produktov&amp;diff=1428</id>
		<title>Porovnanie vybrabých virtualizačných produktov</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Porovnanie_vybrab%C3%BDch_virtualiza%C4%8Dn%C3%BDch_produktov&amp;diff=1428"/>
		<updated>2010-01-26T09:48:34Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Vytvorená stránka „Kategória:Študentské práce Kategória:Bakalárske práce Kategória:Informatika Kategória:Operačné systémy {{Hlavička_FM|{{PAGENAME}}|Dušan Vojsov…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]]&lt;br /&gt;
[[Kategória:Bakalárske práce]]&lt;br /&gt;
[[Kategória:Informatika]]&lt;br /&gt;
[[Kategória:Operačné systémy]]&lt;br /&gt;
{{Hlavička_FM|{{PAGENAME}}|Dušan Vojsovič|Ing. Tomáš Páleník|&lt;br /&gt;
2009/2010&lt;br /&gt;
|Semetrálna práca|Mechatronika}} &lt;br /&gt;
{{Praca_uvod|2|Porovnanie výkonnosti virtualizačných softvérových produktov|Virtualiyácia a jej história a princípy|Porovnanie vybrabých virtualizačných produktov|||||||||}}&lt;br /&gt;
{{Abstrakt|slovesnky|anglicky}}&lt;br /&gt;
&lt;br /&gt;
= =&lt;br /&gt;
==Virtual PC 2007==&lt;br /&gt;
==VirtualBox 3==&lt;br /&gt;
==VMware Player 3==&lt;br /&gt;
&lt;br /&gt;
=Záver=&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Porovnanie_v%C3%BDkonnosti_virtualiza%C4%8Dn%C3%BDch_softv%C3%A9rov%C3%BDch_produktov&amp;diff=1427</id>
		<title>Porovnanie výkonnosti virtualizačných softvérových produktov</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Porovnanie_v%C3%BDkonnosti_virtualiza%C4%8Dn%C3%BDch_softv%C3%A9rov%C3%BDch_produktov&amp;diff=1427"/>
		<updated>2010-01-26T09:47:10Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Vytvorená stránka „Kategória:Študentské práce Kategória:Bakalárske práce Kategória:Informatika Kategória:Operačné systémy {{Hlavička_FM|{{PAGENAME}}|Dušan Vojsov…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]]&lt;br /&gt;
[[Kategória:Bakalárske práce]]&lt;br /&gt;
[[Kategória:Informatika]]&lt;br /&gt;
[[Kategória:Operačné systémy]]&lt;br /&gt;
{{Hlavička_FM|{{PAGENAME}}|Dušan Vojsovič|Ing. Tomáš Páleník|&lt;br /&gt;
2009/2010&lt;br /&gt;
|Semetrálna práca|Mechatronika}} &lt;br /&gt;
{{Praca_uvod|1|Porovnanie výkonnosti virtualizačných softvérových produktov|Virtualiyácia a jej história a princípy|Porovnanie vybrabých virtualizačných produktov|||||||||}}&lt;br /&gt;
{{Abstrakt|slovesnky|anglicky}}&lt;br /&gt;
&lt;br /&gt;
'''Úvod'''&lt;br /&gt;
...&lt;br /&gt;
&lt;br /&gt;
=Virtualiyácia a jej história a princípy=&lt;br /&gt;
==Pojem virtualizácia==&lt;br /&gt;
==História a vznik virtualizácie==&lt;br /&gt;
==Spôsoby a úrovne virtualizácie==&lt;br /&gt;
==Virtualizačné systémy a emulátory==&lt;br /&gt;
==Využitie virtualizácie==&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Nastavenie_priority_procesu_a_vplyv_na_jeho_%C4%8Dinnos%C5%A5_v_opera%C4%8Dnom_syst%C3%A9me&amp;diff=1426</id>
		<title>Nastavenie priority procesu a vplyv na jeho činnosť v operačnom systéme</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Nastavenie_priority_procesu_a_vplyv_na_jeho_%C4%8Dinnos%C5%A5_v_opera%C4%8Dnom_syst%C3%A9me&amp;diff=1426"/>
		<updated>2010-01-26T09:40:58Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Vytvorená stránka „Kategória:Študentské práce Kategória:Bakalárske práce Kategória:Informatika Kategória:operačné systémy {{Hlavička_FM|{{PAGENAME}}|Martin Cibulk…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]]&lt;br /&gt;
[[Kategória:Bakalárske práce]]&lt;br /&gt;
[[Kategória:Informatika]]&lt;br /&gt;
[[Kategória:operačné systémy]]&lt;br /&gt;
{{Hlavička_FM|{{PAGENAME}}|Martin Cibulka|Ing. Peter Kvasnica,PhD.|&lt;br /&gt;
2009/2010&lt;br /&gt;
|Semetrálna práca|Mechatronika}} &lt;br /&gt;
{{Praca_uvod|1|Nastavenie priority procesu a vplyv na jeho činnosť v operačnom systéme|Procesy|Plánovanie procesov|Plánovanie procesov v OS Windows||||||||}}&lt;br /&gt;
{{Abstrakt|slovesnky|anglicky}}&lt;br /&gt;
&lt;br /&gt;
=Nastavenie priority procesu a vplyv na jeho činnosť v operačnom systéme=&lt;br /&gt;
==Proces==&lt;br /&gt;
==Plánovanie procesov==&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Gener%C3%A1tor_n%C3%A1h%C4%BEadov_fotografi%C3%AD_umiestnen%C3%BDch_na_webe_(Zadanie)&amp;diff=1424</id>
		<title>Generátor náhľadov fotografií umiestnených na webe (Zadanie)</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Gener%C3%A1tor_n%C3%A1h%C4%BEadov_fotografi%C3%AD_umiestnen%C3%BDch_na_webe_(Zadanie)&amp;diff=1424"/>
		<updated>2010-01-26T09:28:56Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Vytvorená stránka „{{Zadanie_BP|Lukáš Ronec|Mechatronika|Generátor náhľadov fotografií umiestnených na webe |#. #.. #... |#. #.. |Katedra mechatronických systémov, Fakulta mechatroni…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Zadanie_BP|Lukáš Ronec|Mechatronika|Generátor náhľadov fotografií umiestnených na webe&lt;br /&gt;
|#.&lt;br /&gt;
#..&lt;br /&gt;
#...&lt;br /&gt;
|#.&lt;br /&gt;
#..&lt;br /&gt;
|Katedra mechatronických systémov, Fakulta mechatroniky, TnUAD&lt;br /&gt;
|Ing. Dušan Zervan&lt;br /&gt;
|Ing. Juraj Ďuďák&lt;br /&gt;
|13. 1. 2010&lt;br /&gt;
|doc. Ing. Jozef Tkáč, PhD.|KMS FM TnUAD|prof. doc. Dušan Maga, PhD.&lt;br /&gt;
}}&lt;br /&gt;
[[Kategória:Zadanie BP]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Nastavenie_priority_procesu_a_vplyv_na_jeho_%C4%8Dinnos%C5%A5_v_opera%C4%8Dnom_syst%C3%A9me_(Zadanie)&amp;diff=1423</id>
		<title>Nastavenie priority procesu a vplyv na jeho činnosť v operačnom systéme (Zadanie)</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Nastavenie_priority_procesu_a_vplyv_na_jeho_%C4%8Dinnos%C5%A5_v_opera%C4%8Dnom_syst%C3%A9me_(Zadanie)&amp;diff=1423"/>
		<updated>2010-01-26T09:26:27Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Vytvorená stránka „{{Zadanie_BP|Martin Cibulka|Mechatronika|Nastavenie priority procesu a vplyv na jeho činnosť v operačnom systéme |#. #.. #... |#. #.. |Katedra mechatronických systémo…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Zadanie_BP|Martin Cibulka|Mechatronika|Nastavenie priority procesu a vplyv na jeho činnosť v operačnom systéme&lt;br /&gt;
|#.&lt;br /&gt;
#..&lt;br /&gt;
#...&lt;br /&gt;
|#.&lt;br /&gt;
#..&lt;br /&gt;
|Katedra mechatronických systémov, Fakulta mechatroniky, TnUAD&lt;br /&gt;
|Ing. Peter Kvasnica, PhD.&lt;br /&gt;
|Ing. Peter Kvasnica, PhD.&lt;br /&gt;
|13. 1. 2010&lt;br /&gt;
|doc. Ing. Jozef Tkáč, PhD.|KMS FM TnUAD|prof. doc. Dušan Maga, PhD.&lt;br /&gt;
}}&lt;br /&gt;
[[Kategória:Zadanie BP]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Bakal%C3%A1rske_pr%C3%A1ce&amp;diff=1422</id>
		<title>Bakalárske práce</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Bakal%C3%A1rske_pr%C3%A1ce&amp;diff=1422"/>
		<updated>2010-01-26T09:24:24Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==2009/2010==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;  border=1 cellpadding=5 cellspacing=0&lt;br /&gt;
|+ Zoznam bakalárskych prác&lt;br /&gt;
|- style=&amp;quot;background-color:yellow&amp;quot;&lt;br /&gt;
!Autor&lt;br /&gt;
!Názov práce&lt;br /&gt;
!Stav práce&lt;br /&gt;
!Zadanie&lt;br /&gt;
|-&lt;br /&gt;
|Milan Porubský&lt;br /&gt;
|[[Systém tvorby rozvrhu]]&lt;br /&gt;
|rozpracovaná&lt;br /&gt;
|[[Systém tvorby rozvrhu (Zadanie)|Zadanie BP]]&lt;br /&gt;
|-&lt;br /&gt;
|Dušan Pagáč&lt;br /&gt;
|[[Off-line funkcionalita on-line web aplikácií]]&lt;br /&gt;
|rozpracovaná&lt;br /&gt;
|[[Off-line funkcionalita on-line web aplikácií (Zadanie)|Zadanie BP]]&lt;br /&gt;
|-&lt;br /&gt;
|Dávid Ďurika&lt;br /&gt;
|[[Štatistický modul v systéme rozvrhu FM]]&lt;br /&gt;
|rozpracovaná&lt;br /&gt;
|[[Štatistický modul v systéme rozvrhu FM (Zadanie)|Zadanie BP]]&lt;br /&gt;
|-&lt;br /&gt;
|Gabriel Gašpar, Bc.&lt;br /&gt;
|[[Autonómny systém pre zber teplotných dát z pôdneho profilu]]&lt;br /&gt;
|rozpracovaná&lt;br /&gt;
|[[Autonómny systém pre zber teplotných dát z pôdneho profilu (Zadanie)|Zadanie BP]]&lt;br /&gt;
|-&lt;br /&gt;
|Lukáš Krajči&lt;br /&gt;
|[[Otvorené formáty súborov kancelárskych softvérov]]&lt;br /&gt;
|rozpracovaná&lt;br /&gt;
|[[Otvorené formáty súborov kancelárskych softvérov (Zadanie)|Zadanie BP]]&lt;br /&gt;
|-&lt;br /&gt;
|Martin Pilař&lt;br /&gt;
|[[Poloautomatický parkovací systém]]&lt;br /&gt;
|rozpracovaná&lt;br /&gt;
|[[Poloautomatický parkovací systém (Zadanie)|Zadanie BP]]&lt;br /&gt;
|-&lt;br /&gt;
|Ľubomír Milko&lt;br /&gt;
|[[Aplikácie teórie grafov a teórie hier v rozhodovacích problémoch]]&lt;br /&gt;
|rozpracovaná&lt;br /&gt;
|[[Aplikácie teórie grafov a teórie hier v rozhodovacích problémoch (Zadanie)|Zadanie BP]]&lt;br /&gt;
|-&lt;br /&gt;
|Peter Magala&lt;br /&gt;
|[[Bezpečnosť webových aplikácií]]&lt;br /&gt;
|rozpracovaná&lt;br /&gt;
|[[Bezpečnosť webových aplikácií (Zadanie)|Zadanie BP]]&lt;br /&gt;
|-&lt;br /&gt;
|Ján Čižmárik&lt;br /&gt;
|[[Metódy riešenia optimalizačných problémov]]&lt;br /&gt;
|rozpracovaná&lt;br /&gt;
|[[Metódy riešenia optimalizačných problémov (Zadanie)|Zadanie BP]]&lt;br /&gt;
|-&lt;br /&gt;
|Martin Cibulka&lt;br /&gt;
|[[Nastavenie priority procesu a vplyv na jeho činnosť v operačnom systéme]]&lt;br /&gt;
|rozpracovaná&lt;br /&gt;
|[[Nastavenie priority procesu a vplyv na jeho činnosť v operačnom systéme (Zadanie)|Zadanie BP]]&lt;br /&gt;
|-&lt;br /&gt;
|Lukáš Ronec&lt;br /&gt;
|[[Generátor náhľadov fotografií umiestnených na webe]]&lt;br /&gt;
|rozpracovaná&lt;br /&gt;
|[[Generátor náhľadov fotografií umiestnených na webe (Zadanie)|Zadanie BP]]&lt;br /&gt;
|-&lt;br /&gt;
|Július Jančo&lt;br /&gt;
|[[Spektrálna nedeštruktívna diagnostika mechatronického podsystému]]&lt;br /&gt;
|rozpracovaná&lt;br /&gt;
|[[Spektrálna nedeštruktívna diagnostika mechatronického podsystému (Zadanie)|Zadanie BP]]&lt;br /&gt;
|-&lt;br /&gt;
|Juraj Prívara&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Emanuel Dubovan&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|&lt;br /&gt;
|-&lt;br /&gt;
|Dušan Vojsovič&lt;br /&gt;
|[[Porovnanie výkonnosti virtualizačných softvérových produktov]]&lt;br /&gt;
|rozpracovaná&lt;br /&gt;
||[[Porovnanie výkonnosti virtualizačných softvérových produktov (Zadanie)|Zadanie BP]]&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==2008/2009==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;  border=1 cellpadding=5 cellspacing=0&lt;br /&gt;
|+ Zoznam bakalárskych prác&lt;br /&gt;
|- style=&amp;quot;background-color:yellow&amp;quot;&lt;br /&gt;
! Autor&lt;br /&gt;
! Názov práce&lt;br /&gt;
! Stav práce&lt;br /&gt;
|- &lt;br /&gt;
|Ivana Zuzinová&lt;br /&gt;
|[[Pokročilé vlastnosti skiptovacích jazykov]]&lt;br /&gt;
|Obhájená&lt;br /&gt;
|}&lt;br /&gt;
Staršie práce budú pridané.&lt;br /&gt;
&lt;br /&gt;
[[Kategória:Študentské práce]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Kooperat%C3%ADvna_te%C3%B3ria_-_neprenosov%C3%A1_v%C3%BDhra&amp;diff=1421</id>
		<title>Kooperatívna teória - neprenosová výhra</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Kooperat%C3%ADvna_te%C3%B3ria_-_neprenosov%C3%A1_v%C3%BDhra&amp;diff=1421"/>
		<updated>2010-01-26T09:11:59Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Vytvorená stránka „Kategória:Študentské práce Kategória:Bakalárske práce Kategória:Informatika Kategória:Matematika {{Praca_uvod|4|Metódy riešenia optimalizačných…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]]&lt;br /&gt;
[[Kategória:Bakalárske práce]]&lt;br /&gt;
[[Kategória:Informatika]]&lt;br /&gt;
[[Kategória:Matematika]]&lt;br /&gt;
{{Praca_uvod|4|Metódy riešenia optimalizačných problémov|Neantagonistický konflikt dvoch hráčov|Nekooperatívna teória|Kooperatívna teória - prenosová výhra|Kooperatívna teória - neprenosová výhra|||||||}}&lt;br /&gt;
&lt;br /&gt;
= =&lt;br /&gt;
==Dosiahnuteľné rozdelenie==&lt;br /&gt;
==Paretovské rozdelenie==&lt;br /&gt;
==Optimálne rozdelenie==&lt;br /&gt;
&lt;br /&gt;
=Záver=&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Kooperat%C3%ADvna_te%C3%B3ria_-_prenosov%C3%A1_v%C3%BDhra&amp;diff=1420</id>
		<title>Kooperatívna teória - prenosová výhra</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Kooperat%C3%ADvna_te%C3%B3ria_-_prenosov%C3%A1_v%C3%BDhra&amp;diff=1420"/>
		<updated>2010-01-26T09:10:59Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Vytvorená stránka „Kategória:Študentské práce Kategória:Bakalárske práce Kategória:Informatika Kategória:Matematika {{Praca_uvod|3|Metódy riešenia optimalizačných…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]]&lt;br /&gt;
[[Kategória:Bakalárske práce]]&lt;br /&gt;
[[Kategória:Informatika]]&lt;br /&gt;
[[Kategória:Matematika]]&lt;br /&gt;
{{Praca_uvod|3|Metódy riešenia optimalizačných problémov|Neantagonistický konflikt dvoch hráčov|Nekooperatívna teória|Kooperatívna teória - prenosová výhra|Kooperatívna teória - neprenosová výhra|||||||}}&lt;br /&gt;
&lt;br /&gt;
= = &lt;br /&gt;
==Zaručené výhry==&lt;br /&gt;
==Rozdelenie hry==&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Nekooperat%C3%ADvna_te%C3%B3ria&amp;diff=1419</id>
		<title>Nekooperatívna teória</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Nekooperat%C3%ADvna_te%C3%B3ria&amp;diff=1419"/>
		<updated>2010-01-26T09:09:55Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Vytvorená stránka „Kategória:Študentské práce Kategória:Bakalárske práce Kategória:Informatika Kategória:Matematika {{Praca_uvod|2|Metódy riešenia optimalizačných…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]]&lt;br /&gt;
[[Kategória:Bakalárske práce]]&lt;br /&gt;
[[Kategória:Informatika]]&lt;br /&gt;
[[Kategória:Matematika]]&lt;br /&gt;
{{Praca_uvod|2|Metódy riešenia optimalizačných problémov|Neantagonistický konflikt dvoch hráčov|Nekooperatívna teória|Kooperatívna teória - prenosová výhra|Kooperatívna teória - neprenosová výhra|||||||}}&lt;br /&gt;
&lt;br /&gt;
= =&lt;br /&gt;
==Nashove ekvilibrum==&lt;br /&gt;
==Dominantné stratégie==&lt;br /&gt;
==Ostro dominantná stratégia==&lt;br /&gt;
==Slabo dominantná stratégia==&lt;br /&gt;
==Dominované stratégie==&lt;br /&gt;
==Ostro dominovaná stratégia==&lt;br /&gt;
==Slabo dominovaná stratégia==&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Met%C3%B3dy_rie%C5%A1enia_optimaliza%C4%8Dn%C3%BDch_probl%C3%A9mov&amp;diff=1418</id>
		<title>Metódy riešenia optimalizačných problémov</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Met%C3%B3dy_rie%C5%A1enia_optimaliza%C4%8Dn%C3%BDch_probl%C3%A9mov&amp;diff=1418"/>
		<updated>2010-01-26T09:07:31Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]]&lt;br /&gt;
[[Kategória:Bakalárske práce]]&lt;br /&gt;
[[Kategória:Informatika]]&lt;br /&gt;
[[Kategória:Matematika]]&lt;br /&gt;
{{Hlavička_FM|{{PAGENAME}}|Ján Čižmárik|Ing. Juraj Ďuďák|&lt;br /&gt;
2009/2010&lt;br /&gt;
|Semetrálna práca&lt;br /&gt;
|Mechatronika&lt;br /&gt;
}} &lt;br /&gt;
{{Praca_uvod|1|Metódy riešenia optimalizačných problémov|Neantagonistický konflikt dvoch hráčov|Nekooperatívna teória|Kooperatívna teória - prenosová výhra|Kooperatívna teória - neprenosová výhra|||||||}}&lt;br /&gt;
{{Abstrakt|Semestrálny projekt  „Metódy riešenia optimalizačných problémov“ je zameraný na oboznámenie a vysvetlenie problému bimaticových hier, ktorý patrí do optimalizačných problémov. Semestrálny projekt je rozdelený na tri časti. V prvej časti je vysvetlený matematický postup riešenia nekooperatívnej metódy na konkrétnom príklade, a riešenie v jazyku C++. V druhej a tretej časti je vysvetlený matematický postup Kooperatívnej metódy na konkrétnom príklade, a  riešenie v jazyku C++.&lt;br /&gt;
|}}&lt;br /&gt;
&lt;br /&gt;
'''Úvod'''&lt;br /&gt;
&lt;br /&gt;
Úlohou semestrálneho projektu  je nájsť optimálne riešenie  konkrétnej bimaticovej hry,  použiť optimalizačný algoritmus v určitom programovacom jazyku, a zrozumiteľne vysvetliť postup riešenia.&lt;br /&gt;
Bimaticová hra patrí do matematického oboru, nazývaného Teória hier, ktorý sa zaoberá optimálnym rozhodovaním v konfliktných situáciách. Cieľom analýzy bude zvoliť optimálne riešenie, pričom sa počíta s predpokladaným postupom protihráča. V našom prípade sa budeme zaoberať hrou dvoch hráčov, ktorý sa môžu rozhodovať v podobe jednej či viac stratégií. S takímito, či podobnými konfliktnými situáciami, kedy sa musíme rozhodnúť pre čo najlepšiu stratégiu, aby sme dosiahli čo najlepší výsledok sa stretávame v podstate každý deň, a to v rôznych oboroch, ako napr.: politike, ekonómii, biológii, sociológii, a to ako konflikty politických strán, vojenských jednotiek, biologických druhov, obchodných spoločností...&lt;br /&gt;
&lt;br /&gt;
=Neantagonistický konflikt dvoch hráčov=&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Aplik%C3%A1cia_pre_prezeranie_dokumentov_OO_XML&amp;diff=1417</id>
		<title>Aplikácia pre prezeranie dokumentov OO XML</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Aplik%C3%A1cia_pre_prezeranie_dokumentov_OO_XML&amp;diff=1417"/>
		<updated>2010-01-26T08:48:14Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]][[Kategória:Bakalárske práce]][[Kategória:Informatika]][[Kategória:web]]&lt;br /&gt;
{{Praca_uvod|2|Otvorené formáty súborov kancelárskych softvérov|XML, XPath, XSLT a XQuery|Otvorené formáty kancelárskych softvérov|Aplikácia pre prezeranie dokumentov OO XML||||||||}}&lt;br /&gt;
= =&lt;br /&gt;
==Požiadavky na výslednú aplikáciu==&lt;br /&gt;
==Návrh aplikácie Office Open Document Viewer==&lt;br /&gt;
&lt;br /&gt;
=Záver=&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Aplik%C3%A1cia_pre_prezeranie_dokumentov_OO_XML&amp;diff=1416</id>
		<title>Aplikácia pre prezeranie dokumentov OO XML</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Aplik%C3%A1cia_pre_prezeranie_dokumentov_OO_XML&amp;diff=1416"/>
		<updated>2010-01-26T08:47:47Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Vytvorená stránka „Kategória:Študentské práceKategória:Bakalárske práceKategória:InformatikaKategória:web {{Praca_uvod|2|Otvorené formáty súborov kancelárskych so…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]][[Kategória:Bakalárske práce]][[Kategória:Informatika]][[Kategória:web]]&lt;br /&gt;
{{Praca_uvod|2|Otvorené formáty súborov kancelárskych softvérov|XML, XPath, XSLT a XQuery|Otvorené formáty kancelárskych softvérov|Aplikácia pre prezeranie dokumentov OO XML||||||||}}&lt;br /&gt;
= =&lt;br /&gt;
==Požiadavkz na výslednú aplikáciu==&lt;br /&gt;
==Návrh aplikácie Office Open Document Viewer==&lt;br /&gt;
&lt;br /&gt;
=Záver=&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Otvoren%C3%A9_form%C3%A1ty_kancel%C3%A1rskych_softv%C3%A9rov&amp;diff=1415</id>
		<title>Otvorené formáty kancelárskych softvérov</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Otvoren%C3%A9_form%C3%A1ty_kancel%C3%A1rskych_softv%C3%A9rov&amp;diff=1415"/>
		<updated>2010-01-26T08:46:03Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Vytvorená stránka „Kategória:Študentské práceKategória:Bakalárske práceKategória:InformatikaKategória:web {{Praca_uvod|2|Otvorené formáty súborov kancelárskych so…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]][[Kategória:Bakalárske práce]][[Kategória:Informatika]][[Kategória:web]]&lt;br /&gt;
{{Praca_uvod|2|Otvorené formáty súborov kancelárskych softvérov|XML, XPath, XSLT a XQuery|Otvorené formáty kancelárskych softvérov|Aplikácia pre prezeranie dokumentov OO XML||||||||}}&lt;br /&gt;
= =&lt;br /&gt;
==Office Open XML==&lt;br /&gt;
==Open Document Format==&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Otvoren%C3%A9_form%C3%A1ty_s%C3%BAborov_kancel%C3%A1rskych_softv%C3%A9rov&amp;diff=1414</id>
		<title>Otvorené formáty súborov kancelárskych softvérov</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Otvoren%C3%A9_form%C3%A1ty_s%C3%BAborov_kancel%C3%A1rskych_softv%C3%A9rov&amp;diff=1414"/>
		<updated>2010-01-26T08:43:54Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]]&lt;br /&gt;
[[Kategória:Bakalárske práce]]&lt;br /&gt;
[[Kategória:Informatika]]&lt;br /&gt;
[[Kategória:web]]&lt;br /&gt;
{{Hlavička_FM|{{PAGENAME}}|Lukáš Krajči|Ing. Juraj Ďuďák|&lt;br /&gt;
2009/2010&lt;br /&gt;
|Bakalárska práca&lt;br /&gt;
|Mechatronika&lt;br /&gt;
}}&lt;br /&gt;
{{Praca_uvod|1|Otvorené formáty súborov kancelárskych softvérov|XML, XPath, XSLT a XQuery|Otvorené formáty kancelárskych softvérov|Aplikácia pre prezeranie dokumentov OO XML||||||||}}&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
{{abstrakt&lt;br /&gt;
|Práca sa zaoberá spôsobmi uchovávania dát v súboroch kancelárskych softvérov MS Office 2007 a Open Office 3.0. Rozoberá technológie použité pri ukladaní týchto dát a vnútornú štruktúru uložených dokumentov. Taktiež opisuje problematiku vytvorenia webovej aplikácie pre prezeranie súboru vybraného typu.&lt;br /&gt;
|The work deals with techniques of storying data in the files of the office software MS Office 2007 and OpenOffice.org 3.0. Analyzes the technologies used for the data storying and the internal structure of the stored documents.It also describes issues of creating a web-based application for viewing the selected file type.&lt;br /&gt;
}}&lt;br /&gt;
&lt;br /&gt;
=XML, XPath, XSLT a XQuery=&lt;br /&gt;
==Úvod==&lt;br /&gt;
==XML==&lt;br /&gt;
===Štruktúra dokumentu===&lt;br /&gt;
===Syntaktické pravidlá XML===&lt;br /&gt;
===Menné priestory===&lt;br /&gt;
==XPath==&lt;br /&gt;
==XSLT==&lt;br /&gt;
==XQuery==&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Praktick%C3%A1_aplik%C3%A1cia_vyu%C5%BE%C3%ADvaj%C3%BAca_framework_Rails&amp;diff=1304</id>
		<title>Praktická aplikácia využívajúca framework Rails</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Praktick%C3%A1_aplik%C3%A1cia_vyu%C5%BE%C3%ADvaj%C3%BAca_framework_Rails&amp;diff=1304"/>
		<updated>2010-01-20T19:54:59Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Zamyká „Praktická aplikácia využívajúca framework Rails“ ([edit=sysop] (na neurčito) [move=sysop] (na neurčito))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Bakalárske práce]]&lt;br /&gt;
[[Kategória:Informatika]]&lt;br /&gt;
[[Kategória:Skriptovacie jazyky]]&lt;br /&gt;
&amp;lt;H1_CSS chapter=&amp;quot;5&amp;quot; prefix=&amp;quot;Kapitola&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sideBox&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;&amp;quot; border=0 cellpadding=5&lt;br /&gt;
|+ Obsah práce&lt;br /&gt;
|-&lt;br /&gt;
| 1.&lt;br /&gt;
| [[Pokročilé vlastnosti skiptovacích jazykov| Úvod do Ruby on Rails]]&lt;br /&gt;
|-&lt;br /&gt;
| 2.&lt;br /&gt;
| [[Jazyk Ruby]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.&lt;br /&gt;
| [[Porovnanie Ruby a PHP]]&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| [[Framework Ruby on Rails]]&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| [[Praktická aplikácia využívajúca framework Rails]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
__TOC__&lt;br /&gt;
&lt;br /&gt;
V predošlých kapitolách sme sa zaoberali sumarizovaním teoretických informácií, od základov jazyku Ruby, až po možnosti frameworku Rails. Cielene sme sa zamerali na časti súvisiace s prácou s databázami, aby sme mohli tieto informácie použiť pri nasledujúcej praktickej úlohe.&lt;br /&gt;
==Rozvrh on Rails==&lt;br /&gt;
Základnou úlohou bolo vytvoriť databázu školského rozvrhu v jazyku Ruby on Rails s prihliadaním na využitie zabudovaných modulov Rails (generátory, modely, kontroléry...).  Aplikáciu sme nazvali „Rozvrh on Rails“. Databáza má vychádzať zo vzoru rozvrhnutia tabuliek a asociácií medzi nimi, ktoré sa momentálne používajú na Fakulte Mechatroniky TNUAD v jazyku PHP. Do výslednej databázy má byť možnosť pridávania záznamov a relácie databázových tabuliek majú umožniť vyhľadávanie záznamov rozvrhu obdobne, ako je to v jazyku PHP na stránke http://fm.tnuni.sk/rozvrh. &lt;br /&gt;
Záverečnou časťou úlohy je vytvorenie benchmarku, ktorý bude sledovať dĺžku času vykonania určeneho množstva požiadaviek v Rails a PHP. Výsledky testovania budú následne zaznamenané a graficky spracované.&lt;br /&gt;
&lt;br /&gt;
==Návrh schémy==&lt;br /&gt;
Východzím bodom práce bola predloha rozloženia databázových tabuliek a ich relácií, ktorá bola narhnutá pre naprogramovanie v jazyku PHP. Táto výsledná schéma sa nachádza v prílohe A – Obrázok 1.&lt;br /&gt;
V nasledujúcej tabuľke sú vypísané všetky tabuľky schémy vrátane ich atribútov. Pri atribútoch, ktoré sú primárnym alebo cudzím kľúčom, sa nachádza aj príslušné značenie:&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+Tabuľka 5.1.: Tabuľky východzej schémy a jej atribúty&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|'''Tabuľka'''&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|'''Atribúty'''&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|'''Poznámka'''&lt;br /&gt;
|-&lt;br /&gt;
|'''rozvrh_zamerania'''&lt;br /&gt;
|id (int)&amp;lt;br&amp;gt;zameranie (varchar)&lt;br /&gt;
|PK&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;*&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|'''rozvrh_studijne_kombinacie'''&lt;br /&gt;
|id (int)&amp;lt;br&amp;gt;rocnik (int)&amp;lt;br&amp;gt;stupen (int)&amp;lt;br&amp;gt;id_zameranie (int)&lt;br /&gt;
|PK&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;FK&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;** &amp;lt;/font&amp;gt;(rozvrh_zamerania)&lt;br /&gt;
|-&lt;br /&gt;
|'''rozvrh_typ_predmetu'''&lt;br /&gt;
|id (int)&amp;lt;br&amp;gt;typ (varchar)&amp;lt;br&amp;gt;farba (varchar)&lt;br /&gt;
|PK&lt;br /&gt;
|-&lt;br /&gt;
|'''rozvrh_kruzky'''&lt;br /&gt;
|id (int)&amp;lt;br&amp;gt;kruzok (varchar)&amp;lt;br&amp;gt;id_sudijne_kombinacie (int)&lt;br /&gt;
|PK&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;FK (rozvrh_studijne_kombinacie)&lt;br /&gt;
|-&lt;br /&gt;
|'''rozvrh_predmety'''&lt;br /&gt;
|id (int)&amp;lt;br&amp;gt;predmet (varchar)&amp;lt;br&amp;gt;semester (enum(&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;Z&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;,&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;L&amp;lt;nowiki&amp;gt;’&amp;lt;/nowiki&amp;gt;))&amp;lt;br&amp;gt;id_studijna_kombinacia&amp;lt;br&amp;gt;(int)&amp;lt;br&amp;gt;pocet_hodin (int)&lt;br /&gt;
|PK&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;FK&amp;lt;br&amp;gt;(rozvrh_studijne_kombinacie)&lt;br /&gt;
|-&lt;br /&gt;
|'''rozvrh_predmet_typ'''&lt;br /&gt;
|id (int)&amp;lt;br&amp;gt;id_predmet (int)&amp;lt;br&amp;gt;id_predmet_typ (int)&amp;lt;br&amp;gt;id_kruzok (int)&lt;br /&gt;
|PK&amp;lt;br&amp;gt;FK (rozvrh_predmety)&amp;lt;br&amp;gt;FK (rozvrh_typ_predmetu)&amp;lt;br&amp;gt;FK (rozvrh_kruzky)&lt;br /&gt;
|-&lt;br /&gt;
|'''rozvrh_ucebne'''&lt;br /&gt;
|id (int)&amp;lt;br&amp;gt;ucebna (varchar)&amp;lt;br&amp;gt;kapacita (integer)&amp;lt;br&amp;gt;poznamka (varchar)&lt;br /&gt;
|PK&lt;br /&gt;
|-&lt;br /&gt;
|'''eval_users'''&lt;br /&gt;
|id_user (int)&amp;lt;br&amp;gt;login (varchar)&amp;lt;br&amp;gt;meno (varchar)&amp;lt;br&amp;gt;priezvisko (varchar)&amp;lt;br&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;**&amp;lt;/font&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
|PK&lt;br /&gt;
|-&lt;br /&gt;
|'''rozvrh_ucitel_predmet'''&lt;br /&gt;
|id (int)&amp;lt;br&amp;gt;id_ucitel (int)&amp;lt;br&amp;gt;id_predmet (int)&lt;br /&gt;
|PK&amp;lt;br&amp;gt;FK (eval_users)&amp;lt;br&amp;gt;FK (rozvrh_predmety)&lt;br /&gt;
|-&lt;br /&gt;
|'''rozvrh_rozvrh'''&lt;br /&gt;
|id (int)&amp;lt;br&amp;gt;id_vyucujuci (int)&amp;lt;br&amp;gt;id_ucebna (int)&amp;lt;br&amp;gt;id_predmet (int)&amp;lt;br&amp;gt;&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;***&amp;lt;/font&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
|PK&amp;lt;br&amp;gt;FK (eval_users)&amp;lt;br&amp;gt;FK (rozvrh_ucebne)&amp;lt;br&amp;gt;FK (rozvrh_predmety)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Vysvetlivky:&lt;br /&gt;
* - PK – primary key – primárny kľúč&lt;br /&gt;
&lt;br /&gt;
** - FK – foreign key – cudzí kľúč&lt;br /&gt;
&lt;br /&gt;
*** - ostatné atribúty tabuľky eval_users a to: heslo, tituly, fakulta, katedra, funkcia, prava, email. Atribúty sme v tabuľke vynechali v dôsledku zanedbateľnosti ich relačnej funkcie.&lt;br /&gt;
&lt;br /&gt;
**** - ostatné atribúty tabuľky rozvrh_rozvrh a to: zabezpecuje, den, typ_studia, poradie_tyzdna, poznamka, cas. Atribúty sme v tabuľke vynechali v dôsledku zanedbateľnosti ich relačnej funkcie&lt;br /&gt;
&lt;br /&gt;
Z uvedenej schémy sme následne vytvorili novú, pričom sme pri jej tvorbe prihliadali na špecifiká frameworku Rails. Výsledkom je schéma nachádzajúca sa v prílohe A – Obrázok 2. Z obrázku je viditeľné, že v databáze sme vykonali niekoľko podstatnejších zmien, konkétne:&lt;br /&gt;
*Pomenovanie názvov tabuliek: Zmenili sme názvy tabuliek aby boli čo najjednoduchšie, písané v anglickom jazyku množného čísla – v súlade s konvenciami Rails.&lt;br /&gt;
*Názvy cudzích kľúčov: Názvy cudzích kľúčov sme premenovali rovnako podľa konvencií Rails - charakteristickú predponu id_ sme nahradili príponou _id, ktorú sme pripojili za singulárny názov cieľovej tabuľky.&lt;br /&gt;
*Zmeny v tabuľke rozvrh_ucitel_predmet: Tabuľka bola premenovaná na subjects_users a charakterizovaná ako prepojovacia tabuľka. Z tohto dôvodu nová tabuľka neobsahuje primárny kľúč id, ktorý nemá v tomto prípade uplatnenie.&lt;br /&gt;
*Vymazanie tabuľky rozvrh_predmet_typ: Pri skúmaní všetkých relácií sme dospeli k rozhodnutiu odstrániť tabuľku rozvrh_predmet_typ, ktorej atribúty sa dajú nahradiť inými, pravdepodobne vhodnejšími úpravami v iných tabuľkách. Týmto sa súčasne skrátilo prepojenie medzi tabuľkami subjects a rozvrh_events.&lt;br /&gt;
*Zmeny v tabuľke rozvrh_predmety:  V tabuľke premenovanej na subjects sme pridali nový atribút type_id, ktorý nahrádza pôvodný atribút id_predmet_typ odstránenej tabuľky rozvrh_predmet_typ. Relácia medzi týmto kľúčom a tabuľkou types ostáva zachovaná. Atribút length bol presunutý do tabuľky types.&lt;br /&gt;
*Vytvorenie prepojenia rozvrh_events – subclasses. Do tabuľky rozvrh_events bol pridaný nový cudzí kľúč subclass_id.&lt;br /&gt;
*Vymazenie tabuľky rozvrh_zamerania: Keďže táto tabuľka v praxi osahuje iba 2-3 záznamy s jediným atribútom, zlúčili sme ju s tabuľkou study_combinations&lt;br /&gt;
V nasledujúcej tabuľke sú uvedené všetky kľúče tabuliek a Rails asociácií, ktoré sa na ne viažu:&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; width=&amp;quot;94%&amp;quot;&lt;br /&gt;
|+Tabuľka 5.2.: Tabuľky schémy pre Rails - jej kľúče a asociácie&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|'''Tabuľka'''&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|'''Kľúč'''&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|'''Asociácia'''&lt;br /&gt;
|-&lt;br /&gt;
|'''types'''&lt;br /&gt;
|id&lt;br /&gt;
|has_many :subjects&lt;br /&gt;
|-&lt;br /&gt;
|'''study_combinations'''&lt;br /&gt;
|id&lt;br /&gt;
|has_many :subjects&amp;lt;br&amp;gt;has_many :subclasses&lt;br /&gt;
|-&lt;br /&gt;
|'''subclasses'''&lt;br /&gt;
|id&amp;lt;br&amp;gt;study_combination_id&lt;br /&gt;
|has_many :rozvrh_events&amp;lt;br&amp;gt;belongs_to :study_combination&lt;br /&gt;
|-&lt;br /&gt;
|'''subjects'''&lt;br /&gt;
|id&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;study_combination_id&amp;lt;br&amp;gt;type_id&lt;br /&gt;
|has_and_belongs_to_many :users&amp;lt;br&amp;gt;has_many :rozvrh_events&amp;lt;br&amp;gt;belongs_to :study_combination&amp;lt;br&amp;gt;belongs_to :type&lt;br /&gt;
|-&lt;br /&gt;
|'''subjects_users'''&lt;br /&gt;
|user_id&amp;lt;br&amp;gt;subject_id&lt;br /&gt;
|belongs_to :user&amp;lt;br&amp;gt;belongs_to :subject&lt;br /&gt;
|-&lt;br /&gt;
|'''classrooms'''&lt;br /&gt;
|id&lt;br /&gt;
|has_many :rozvrh_events&lt;br /&gt;
|-&lt;br /&gt;
|'''users'''&lt;br /&gt;
|id&lt;br /&gt;
|has_and_belongs_to_many :subjects&amp;lt;br&amp;gt;has_many :events&lt;br /&gt;
|-&lt;br /&gt;
|'''rozvrh_events'''&lt;br /&gt;
|id&amp;lt;br&amp;gt;user_id&amp;lt;br&amp;gt;classroom_id&amp;lt;br&amp;gt;subject_id&amp;lt;br&amp;gt;subclasses_id&lt;br /&gt;
|&amp;lt;br&amp;gt;belongs_to :user&amp;lt;br&amp;gt;belongs_to :classroom&amp;lt;br&amp;gt;belongs_to :subject&amp;lt;br&amp;gt;belongs_to :subclass&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Vytvorenie databázy Rozvrh on Rails==&lt;br /&gt;
Po tom, čo sme presne definovali tabuľky a vzťahy medzi nimi sme mohli vytvoriť samotnú aplikáciu. V našom prípade sme sa rozhodli programovať na platforme Windows Vista Home Premium a ako vývojové prostredie sme zvolili open source projekt NetBeans (domovská stránka: http://www.netbeans.org). Všetky nasledujúce príkazy a obrázky budú z tohto vývojového prostredia.&lt;br /&gt;
V prostredí NetBeans sme najprv vytvorili nový Rails projekt s názvom rozvrh_on_rails pomocou sprievodcu, kde sme okrem iného definovali názov databázy a prístupové práva k nej. Tieto potom ActiveRecord použije pri prístupe do databázy. V prípade potreby zmeny týchto údajov ich nájdeme v súbore configuration/database.yml.&lt;br /&gt;
V ďalšom kroku sme postupne vytvorili jednotlivé tabuľky. Na ich vytvorenie sme použili už spomínanú funkciu scaffold, ktorá uľahčí vytváranie pohľadov a akcií, ktoré potrebujeme pre správu dát v tabuľkách. Táto funkcia teda zabezpečí vytvorenie všetkých akcií CRUD.&lt;br /&gt;
Ako príklad uvedieme vytvorenie tabuľky subjects. Na vytvorenie scaffoldu je potrebné sputiť generátor, ako vidno na obrázku 5.1.:&lt;br /&gt;
&lt;br /&gt;
[[Súbor:pvsj5.1.png|frame|none|Obrázok 5.1.: Spustenie generátora v NetBeans]]&lt;br /&gt;
&lt;br /&gt;
Z voľby generátora vyberieme scaffold a zadáme potrebné údaje v tvare NazovModelu atribut1:typ1 atribut2:typ2 .... – kde atribúty sú stĺpce novovytvorenej tabuľky so zadaním ich typu (oddelené len medzerou). Názov modelu zadávame v jednotnom čísle, Rails automaticky vytvorí migráciu tabuľky aj kontrolér v množnom čísle. V prípade tabuľky subjects je meno modelu subject a atribúty name:string semester:string study_combination_id:integer length:integer type_id:integer. Po spustení generátora nám tento poskytne nasledovný výstup:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
exists  app/models/&lt;br /&gt;
exists  app/controllers/ &lt;br /&gt;
exists  app/helpers/ &lt;br /&gt;
create  app/views/objects &lt;br /&gt;
exists  app/views/layouts/ &lt;br /&gt;
exists  test/functional/ &lt;br /&gt;
exists  test/unit/ &lt;br /&gt;
exists  test/unit/helpers/ &lt;br /&gt;
exists  public/stylesheets/ &lt;br /&gt;
create  app/views/subjects/index.html.erb &lt;br /&gt;
create  app/views/subjects/show.html.erb &lt;br /&gt;
create  app/views/subjects/new.html.erb &lt;br /&gt;
create  app/views/subjects/edit.html.erb &lt;br /&gt;
create  app/views/layouts/subjects.html.erb &lt;br /&gt;
identical  public/stylesheets/scaffold.css &lt;br /&gt;
create  app/controllers/subjects_controller.rb &lt;br /&gt;
create  test/functional/subjects_controller_test.rb &lt;br /&gt;
create  app/helpers/subjects_helper.rb create  &lt;br /&gt;
test/unit/helpers/subjects_helper_test.rb &lt;br /&gt;
route  map.resources :subjects &lt;br /&gt;
dependency  model &lt;br /&gt;
exists    app/models/ &lt;br /&gt;
exists    test/unit/ &lt;br /&gt;
exists    test/fixtures/ &lt;br /&gt;
create    app/models/subject.rb &lt;br /&gt;
create    test/unit/subject_test.rb &lt;br /&gt;
create    test/fixtures/subjects.yml &lt;br /&gt;
exists    db/migrate &lt;br /&gt;
create    db/migrate/20090605132005_create_subjects.rb &lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Generátor vytvoril množstvo súborov, vrátane pohľadov (views) zobrazujúcich CRUD (sem patrí index, show, new, edit a základná šablóna layout/subjects.html.erb), kontroléra s akciami CRUD subject_controller.rb a modelu subject.rb. Tiež vytvoril migráciu 20090605132005_create_subjects.rb, ktorá vyzerá nasledovne:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
class CreateSubjects &amp;lt; ActiveRecord::Migration&lt;br /&gt;
  def self.up&lt;br /&gt;
    create_table :subjects do |t|&lt;br /&gt;
      t.string :name&lt;br /&gt;
      t.string :semester&lt;br /&gt;
      t.integer :study_combination_id&lt;br /&gt;
      t.integer :length&lt;br /&gt;
      t.integer :type_id&lt;br /&gt;
&lt;br /&gt;
      t.timestamps&lt;br /&gt;
    end&lt;br /&gt;
  end&lt;br /&gt;
 &lt;br /&gt;
  def self.down&lt;br /&gt;
    drop_table :subjects&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Keby sme teraz vykonali migráciu, vytvorí sa nám tabuľka subjects so zvolenými parametrami. Migráciu ale môžeme aj ľubovoľne meniť, treba si ale uvedomiť, že vytvorený model a kontrolér sú už prednastavené na určité parametre, ktoré potom nemusia korelovať. My sme do metódy up tejto migrácie pridali aj vytvorenie prepojovacej tabuľky subjects_users. Vložený kód:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
create_table :subjects_users, :id =&amp;gt; false do |t|&lt;br /&gt;
      t.column :subject_id, :integer&lt;br /&gt;
      t.column :user_id, :integer&lt;br /&gt;
    end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Pri tvorbe tabuliek Rails vždy automaticky vytvorí atribút id, preto sme tomu v tomto prípade zabránili príkazom :id =&amp;gt; false. Následne spustíme migráciu:&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:pvsj5.2.png|frame|none|Obrázok 5.2.: Spustenie migrácie v NetBeans]]&lt;br /&gt;
&lt;br /&gt;
Úspešnú migráciu nám následne ohlási výpis. Týmto sme vytvorili základnú štruktúru tabuľky subjects, ktorú si môžeme pozrieť v prehliadači na adrese &amp;lt;nowiki&amp;gt;http://localhost:3000/subjects.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Obdobne postupujeme aj pri tvorbe ďalších tabuliek. Tabuľky nemusíme tvoriť len migráciami, môžeme ich vytvoriť akýmkoľvek iným spôsobom nezávisle od modelu a kontroléru. Keď sme vytvorili všetky tabuľky, začali sme vytvárať asociácie. Asociácie sa vždy nachádzajú v modeloch, ktoré sú po vztvorení prázdne:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
class Subject &amp;lt; ActiveRecord::Base&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Pri tvorení asociácií sme sa riadili schémou, ktorú sme vopred vytvorili. Výsledný model Subject potom vyzerá nasledovne:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
class Subject &amp;lt; ActiveRecord::Base&lt;br /&gt;
  has_and_belongs_to_many :users&lt;br /&gt;
  has_and_belongs_to_many :subclasses&lt;br /&gt;
  has_many :rozvrh_events&lt;br /&gt;
  belongs_to :type        &lt;br /&gt;
  belongs_to :study_combination&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Až po vytvorení všetkých asociácií pristupujeme k napĺňaniu tabuliek skúšobnými dátami. Pri tom sme sledovali prípadné chyby, ktoré sme priebežne dolaďovali. V procese testovania môžeme vidieť napríklad pohľad, zobrazený na obrázku 5.3.:&lt;br /&gt;
&lt;br /&gt;
[[Súbor:pvsj5.3.png|frame|none|Obrázok 5.3.: Pohľad zobrazujúci tabuľku users]]&lt;br /&gt;
&lt;br /&gt;
V prehliadači na adrese &amp;lt;nowiki&amp;gt;http://localhost:3000/users&amp;lt;/nowiki&amp;gt; sa nám zobrazí aktuálny obsah tabuľky users, ktorý bol vygenerovaný ako views/users/index.html.erb. Z obrázku môžeme vidieť, že Rails vytvoril iba základnú funkčnú konštrukciu, ktorú následne môžeme nakonfigurovať podľa individuálnych požiadaviek (pohľad v obrázku už prešiel pár úpravami). Zdrojový kód všetkých vytvorených modelov a migrácií sa nachádza v prílohe B a celá Rails aplikácia je v prílohe na CD. Po tom, čo sme vytvorili funkčnú databázu, vypracovali sme aplikáciu na zobrazenie rozvrhu.&lt;br /&gt;
&lt;br /&gt;
==Zobrazenie rozvrhu==&lt;br /&gt;
Rails poskytuje značnú flexiblitu v štýle písania kódu. Aj preto existuje veľké množstvov ariácií, ako napísať aplikáciu zobrazenia rozvrhu, čo závisí aj od znalostí príkazov ktoré Rails ponúka. Pri tvorbe zobrazenia rozvrhu sme začali vytvorením kontroléru, ktorý ju určený na základný skript a pohľadu, ktorý nasledne vygeneruje potrebné údaje. Model sme v tomto prípade netvorili, pretože kontrolér bude pracovať s už vytvorenými modelmi tabuliek. &lt;br /&gt;
Kontrolér sme pomenovali RozvrhFiltersController a nachádza sa v priečinku controllers/rozvrh_filter_controller.rb, pohľad  má základný názov index a je v priečinku views/rozvrh_filters/index.html.erb.&lt;br /&gt;
Phľad sme vytvorili tak, aby obsahoval základný formulár, ktorý odoslaním zašle zvolené podmienky. Tieto sú v Rails zasielané v podobe hash-u s názvom params. Napríklad k premennej subject potom v kontroléri pristupujeme ako params[:subjects]. Výsledný základný pohľad sa nachádza v prílohe B – index.html.erb.&lt;br /&gt;
Pokúšali sme sa vytvoriť zobrazenie rozvrhu viacerými spôsobmi, ale nie všetky vyhovovali podmienkam. Jedným z prvotných riešení bolo použiť na vyhľadávanie dynamické vyhľadávače, spomínané v predchádzajúcej kapitole. Kód kontroléru vyzeral nasledovne:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
class RozvrhFiltersController &amp;lt; ApplicationController&lt;br /&gt;
  def index&lt;br /&gt;
    if request.get?&lt;br /&gt;
&lt;br /&gt;
params[:subject]=='-' ? @subjects=“%“: @subjects=params[:subject]&lt;br /&gt;
params[:user]=='-' ? @users=“%“ @users=params[:user]&lt;br /&gt;
params[:subclass]=='-' ? @subclass=“%“ : @subclass=params[:subclass]&lt;br /&gt;
params[:branch]=='-' ? @branch=“%“ : @branch=params[:branch]&lt;br /&gt;
params[:year]=='-' ? @year=“%“ : @year=params[:year]&lt;br /&gt;
&lt;br /&gt;
@study_combinations = StudyCombination.find_all_by_year_and_branch(@year,@branch)&lt;br /&gt;
@subjects = Subject.find_all_by_name_and_study_combination_id(@subject, @study_combinations)&lt;br /&gt;
@rozvrh_events = RozvrhEvent.find_all_by_subject_id(@subjects)&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
   end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
V tomto prípade sme pracovali len s 5 údajmi (subject,user,subclass,branch,year) a už bola aplikćia relatívne komplikovaná. Najprv sme zisťovali, či bola zadaná určitá hodnota, ktorá sa potom pridala do samostatnej premennej a následne sa v tabuľkách vyhľadávali vyhovujúce záznamy. Aj keď aplikácia prejavovala známky funkčnosti, bola veľmi neefektívna.&lt;br /&gt;
Poslednou funkčnou a vhodnejšou verziou je vyhľadávanie cez jednu tabuľku pomocou :conditions , kde môžeme použiť syntax SQL alebo Rails. Vyhľadávanie v ostatných tabuľkách je zabezpečené pomocou prepojení, ktoré určíme pred podmienkami. Výsledný kontrolér vyzerá nasledovne:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;rails&amp;quot;&amp;gt;&lt;br /&gt;
class RozvrhFiltersController &amp;lt; ApplicationController&lt;br /&gt;
  def index&lt;br /&gt;
    if request.get?&lt;br /&gt;
     @rozvrh_events = RozvrhEvent.find(:all, &lt;br /&gt;
    :joins =&amp;gt;[{:subject =&amp;gt;[:type,:study_combination]},:user,:classroom],   &lt;br /&gt;
    :conditions =&amp;gt; ['subjects.name like ?&lt;br /&gt;
    	and users.priezvisko like ?&lt;br /&gt;
    	and study_combinations.year like ?&lt;br /&gt;
    	and study_combinations.branch like ?&lt;br /&gt;
    	and study_combinations.degree like ?&lt;br /&gt;
    	and subclass_id like ?&lt;br /&gt;
   	and classrooms.meno like ?&lt;br /&gt;
    	and day like ?', 	&lt;br /&gt;
        params[:subject], params[:user], params[:year],&lt;br /&gt;
        params[:branch], params[:degree], params[:subclass_id],&lt;br /&gt;
    	params[:classroom], params[:day] ] )&lt;br /&gt;
&lt;br /&gt;
      end&lt;br /&gt;
    end&lt;br /&gt;
   end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
V príklade sme k vzdialeným tabuľkám mohli pristupovať jednoduchšie vďaka prepojeniu :joins. Celá aplikácia vyzerá po spracovaní v ActiveRecord preložená do SQL nasledovne (v prípade, že odošleme formulár bez parametrov):&lt;br /&gt;
&amp;lt;source lang=&amp;quot;SQL&amp;quot;&amp;gt;&lt;br /&gt;
SELECT `rozvrh_events`.* FROM `rozvrh_events` INNER JOIN `subjects` ON `subjects`.id = `rozvrh_events`.subject_id &lt;br /&gt;
INNER JOIN `types`  ON `types`.id = `subjects`.type_id INNER JOIN `study_combinations` ON `study_combinations`.id = `subjects`.study_combination_id &lt;br /&gt;
INNER JOIN `users` ON `users`.id = `rozvrh_events`.user_id &lt;br /&gt;
INNER JOIN `classrooms` ON `classrooms`.id = `rozvrh_events`.classroom_id &lt;br /&gt;
WHERE (subjects.name like '%'&lt;br /&gt;
 and users.priezvisko like '%'&lt;br /&gt;
 and study_combinations.year like '%'&lt;br /&gt;
 and study_combinations.branch like '%'&lt;br /&gt;
 and study_combinations.degree like '%'&lt;br /&gt;
 and subclass_id like '%'&lt;br /&gt;
 and classrooms.meno like '%'&lt;br /&gt;
 and day like '%')&lt;br /&gt;
&amp;lt;/source&amp;gt;  &lt;br /&gt;
Vytvorené aplikácia je funkčná, ale má ešte oblasti, na ktoré by sa bolo treba ešte bližšie zamerať pri dolaďovaní, ako je následná grafická úprava a pod. Takisto by bolo treba opäť prehodnotiť schému databázových tabuliek a ich relácií, či nenájdeme vhodnejšiu alternatívu. V tabuľkách sme z dôvodu názornej ukážky použili atribúty v slovenskom aj anglickom jazyku, anglické názvy sú vhodné hlavne pri pomenovávaní kľúčov. Pri tvorbe tabuliek tiež treba skontrolovať, či náš názov atribútu už Rails nepoužíva ako zabudovanú metódu. Inak by mohlo dôjsť ku kolízii.&lt;br /&gt;
&lt;br /&gt;
==Benchmark==&lt;br /&gt;
Posledným bodom práce bolo vytvoriť porovnávací benchmark, ktorý skúma spôsob spracovania požiadavky v Rails a v PHP. V našom prípade sme zasielali určitú požiadavku v Rails a PHP, ktorej výstup je v oboch prípadoch totožný, pričom benchmark má za úlohu porovnať časy vykonania tejto požiadavky. Výsledky sa graficky spracujú.&lt;br /&gt;
Zvolili sme požiadavku, ktorá má za úlohu vybrať všetky predmety určeného prednášajúceho cez pepojovaciu tabuľku rozvrh_ucitel_predmet/subjects_users. &lt;br /&gt;
Kód v PHP vyzerá nasledovne:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;?php&lt;br /&gt;
function microtime_float()&lt;br /&gt;
{    list($usec, $sec) = explode(&amp;quot; &amp;quot;, microtime());&lt;br /&gt;
    return ((float)$usec + (float)$sec); }&lt;br /&gt;
$db=mysql_connect(&amp;quot;localhost&amp;quot;,&amp;quot;user&amp;quot;,&amp;quot;password&amp;quot;) or die(&amp;quot;e1&amp;quot;);&lt;br /&gt;
mysql_select_db(&amp;quot;rozvrh&amp;quot;) or die(&amp;quot;e2&amp;quot;);&lt;br /&gt;
&lt;br /&gt;
  $t1=microtime_float();&lt;br /&gt;
for($i=0;$i&amp;lt;$hodnota;$i++)&lt;br /&gt;
{	$sql=&amp;quot;select * from eval_users,rozvrh_ucitel_predmet, rozvrh_predmety where id_user=id_ucitel and id_predmet=rozvrh_predmety.id and id_user=1&amp;quot;;&lt;br /&gt;
	$r=mysql_query($sql); }&lt;br /&gt;
  $t2=microtime_float();&lt;br /&gt;
 echo $t2-$t1;&lt;br /&gt;
 mysql_close();&lt;br /&gt;
?&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Za premennú $hodnota sme postupne dosádzali hodnoty počtu cyklov. Výpisom je dĺžka času potrebná na vykonanie požiadavky.  V Rails sme vytvorili kontrolér benchmark_controller.rb a pohľad akcie index index.html.erb. Ich kód vyzerá nasledovne:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;rails&amp;quot;&amp;gt;&lt;br /&gt;
controllers/benchmark_controller.rb&lt;br /&gt;
&lt;br /&gt;
class BenchmarkController &amp;lt; ApplicationController&lt;br /&gt;
  def index&lt;br /&gt;
    t1=Time.now&lt;br /&gt;
        hodnota.times do&lt;br /&gt;
      @user = User.find(1).subjects&lt;br /&gt;
    end&lt;br /&gt;
    t2=Time.now&lt;br /&gt;
    @t=t2-t1&lt;br /&gt;
  end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
views/benchmark/index.html.erb&lt;br /&gt;
&lt;br /&gt;
&amp;lt;h1&amp;gt;Benchmark&amp;lt;/h1&amp;gt;&lt;br /&gt;
&amp;lt;%= @t %&amp;gt; &amp;lt;br&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Predpokladom bolo, že čas na spracovanie požiadavky bude v Rails podstatne dlhší ako v jazyku PHP. Naše testovanie síce nemôže byť úplne presné, pretože sme zanedbali vplyv vonkajších faktorov a testovanie jazykov prebehlo za podobných, avšak nie identických podmienok, ale potrvdili sme počiatočnú domnienku. Z výslednej tabuľky 5.3 a grafického zobrazenia (obrázok 5.4),  je viditeľné, že jazyk PHP vykonáva požiadavku asi 10-násobne kratšie, ako Rails. Toto zistenie nie je prekvapujúce, príčinou je, že sme porovnávali PHP,  teda čistý jazyk a Ruby on Rails -framework, ktorého úlohou je skrátiť čas písania kódu na úkor času samotného spracovania požiadavky. V tomto prípade by bolo preto vhodné porovnávať Ruby a PHP alebo Rails a niektorý z PHP frameworkov, pretože kódy frameworkov sú pomalšie ako kódy čistých jazykov. &lt;br /&gt;
&lt;br /&gt;
===Benchmark===&lt;br /&gt;
{|border=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; width=&amp;quot;93%&amp;quot;&lt;br /&gt;
|+Tabuľka 5.3: Výsledky porovnavacieho testu &lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|počet cyklov&lt;br /&gt;
|align = &amp;quot;center&amp;quot; bgcolor = &amp;quot;#B6DDE8&amp;quot; colspan = &amp;quot;10&amp;quot;|Rails – čas&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;s&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|priemer&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;s&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|1000&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,597&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,463&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,442&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,522&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,466&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,508&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,469&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,459&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,438&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,526&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,489&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|2000&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,932&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,960&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,975&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,910&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,957&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,917&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,957&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,965&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,978&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,899&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,945&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|5000&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|2,390&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|2,383&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|2,322&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|2,382&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|2,383&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|2,373&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|2,405&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|2,389&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|2,322&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|2,379&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|2,373&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|10000&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|4,777&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|4,707&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|4,755&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|4,794&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|4,708&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|4,759&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|4,722&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|4,712&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|4,758&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|4,769&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|4,746&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|15000&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|7,085&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|7,164&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|7,092&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|7,101&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|7,161&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|7,069&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|7,160&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|7,099&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|7,102&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|7,069&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|7,110&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|20000&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|9,501&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|9,461&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|9,465&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|9,492&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|9,479&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|9,458&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|9,495&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|9,537&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|9,479&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|9,468&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|9,484&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|počet cyklov&lt;br /&gt;
|align = &amp;quot;center&amp;quot; bgcolor = &amp;quot;#B6DDE8&amp;quot; colspan = &amp;quot;10&amp;quot;|PHP – čas&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;s&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|priemer&amp;lt;nowiki&amp;gt;[&amp;lt;/nowiki&amp;gt;s&amp;lt;nowiki&amp;gt;]&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|1000&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,053&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,056&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,060&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,060&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,062&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,053&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,060&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,054&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,053&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,065&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,058&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|2000&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,110&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,109&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,115&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,120&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,120&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,122&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,106&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,108&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,108&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,106&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,112&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|5000&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,265&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,270&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,287&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,304&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,298&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,286&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,279&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,280&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,285&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,271&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,283&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|10000&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,593&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,547&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,602&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,602&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,604&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,576&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,578&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,550&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,614&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,531&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,580&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|15000&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,894&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,855&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,827&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,929&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,898&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,876&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,903&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,807&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,870&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,846&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|0,870&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|20000&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|1,195&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|1,154&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|1,143&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|1,205&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|1,205&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|1,157&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|1,162&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|1,129&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|1,216&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|1,188&lt;br /&gt;
|align = &amp;quot;right&amp;quot;|1,175&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
[[Súbor:pvsj5.4.png|frame|none|Obrázok 5.4 Čas vykonania požiadavky v Rails a PHP]]&lt;br /&gt;
&lt;br /&gt;
===Parametre===&lt;br /&gt;
Na testovanie Rails sme použili server free.railshosting.cz , na ktorom je možnosť free Rails hostingu, ktorý obsahuje: &lt;br /&gt;
*virtuálny server s podporou mod_rails (Phusion Passenger – modul do Apache)&lt;br /&gt;
*databázu MySQL&lt;br /&gt;
*SSH účet, SSH kľúč&lt;br /&gt;
Aplikácia používala adresu http://kszv.free.railshosting.cz/benchmark.&lt;br /&gt;
Aplikácia PHP bola testovaná na adrese http://www.kszv.sk/ruby.php.&lt;br /&gt;
&lt;br /&gt;
Z doposiaľ vykonaných testovaní, ktoré porovnávajú Ruby a PHP vyplýva, že Ruby pracuje rýchlejšie ako PHP. Konkrétnym príkladom je testovanie uverejnené na internetovej stránke &lt;br /&gt;
&amp;lt;nowiki&amp;gt;http://npzrk8rz.wordpress.com/2008/01/17/ruby-vs-php-performance.&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
Toto testovanie bolo zamerané výlučne na rýchlosť samotného kódu, preto sa na testovanie použil triediaci algoritmus v Ruby a PHP. Triediaci algoritmus v oboch jazykoch je k nahliadnutiu v prílohe na CD. Tento mal za úlohu utrediť pole 100 náhodne vygenerovaných čísiel v cykle tritisíckrát za sebou. Výsledný graf sa nachádza na obrázku 5.6. &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[Súbor:pvsj5.5.png|frame|none|Obrázok 5.5 Čas vykonania triediaceho algoritmu v Ruby, PHP a iných jazykoch]]&lt;br /&gt;
&lt;br /&gt;
Z testovania vyplynulo, že Ruby 1.8.6 je pri triedení len o málo rýchlejší ako PHP, ale Ruby 1.9.1 je schopný vykonať utriedenia už za menej ako polovicu času, ktorý potrebuje PHP. V grafe sú na porovnanie zobrazené aj časy zotriedenia, ktoré potrebovali iné populárne jazyky. Toto testovanie vyvracia mylné domnienky veľkej časti programátorov o tom, že jazyk Ruby je pomalý. Ruby pracuje rýchlo, takže príčinou spomalenia vykonania požiadavky je samotný framework. To ale neznamená že by bol Rails prĺiš pomalý. &lt;br /&gt;
Dokazuje to aj testovanie viacerých PHP frameworkov a Rails uverejnené na stránke &lt;br /&gt;
http://www.root.cz/clanky/velky-test-php-frameworku-zend-nette-php-a-ror.&lt;br /&gt;
Testovanie bolo zamerané hlavne na frameworky PHP, bol ale testovaný aj framework Rails. Pracovalo sa s tabuľkou členov a užívateľov, pričom členovi môže byť priradených viac užívateľov. Predmetom testovania boli 4 požiadavky: zobrazenie členov, zobrazenie užívateľov, editácia užívateľa a úprava dát. Vo výslednom grafe – obrázok 5.6 sú porovnané výsledky všetkých frameworkov, ktoré boli testované. Z výsledkov môžeme povedať, že Rails patrí v rýchlosti medzi priemerné. Naproti tomu Zend, ktorý je jedným z populárnych frameworkov pre PHP, patrí medzi najpomalšie z testovaných, pokiaľ nie je použitý cAccelerator. Aj z tohoto grafu je vidieť, že čistý jazyk PHP pracuje najrýchlejšie.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:pvsj5.6.png|frame|none|Obrázok 5.6: Porovnanie rýchlostí PHP frameworkov a Rails]]&lt;br /&gt;
&lt;br /&gt;
Výsledky jasne ukazujú, že aplikácia napísaná v určitom jazyku pracuje rýchlejšie, ako aplikácia frameworku. Napriek tomu si treba uvedomiť, že rýchlosť aplikácie je podstatná, avšak nie jediná podmienka dobrého kódu, ktorý má byť stručný, prehľadný a efektívny, aby samotné programovanie zabralo najkratší čas.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
=Záver=&lt;br /&gt;
Práca úvodom popisuje základné teoretické informácie o  jazyku Ruby ako o objektovo orientovanom jazyku. Následne sme sa snažili poukázať na konkrétne rozdiely medzi syntaxou jazyka Ruby a jazyka PHP, ktoré je potrebné brať do úvahy, pokiaľ tvoríme aplikácie v oboch týchto jazykoch.&lt;br /&gt;
Ďalšia časť je zameraná na popis frameworku Ruby on Rails, rozoberá podrobnejšie funkcie modelov, pohľadov a kontrolérov. Hlavným modulom, ktorý sme popisovali, bol najmä na modul Action View, ktorý zabezpečuje komunikáciu s databázou. Tiež sme bližšie popísali funkcie CRUD. Opísali sme relácie medzi tabuľkami, nazývané v Rails asociácie, a uvedli postupy pri ich tvorbe. Teoretická časť bola pomerne rozsiahla z toho dôvodu, že o jazyku Ruby a framworku Ruby on Rails  je v Slovenskom jazyku vydané minimálne množstvo publikácií, ktoré by poskytli ucelené základné informácie.&lt;br /&gt;
V praktickej časti sme najprv vytvorili základnú schému databázových tabuliek, podľa ktorej sme potom vytvorili konkrétnu aplikáciu Rozvrh on Rails. Táto aplikácia má za úlohu zobraziť výpisy z databázy podľa zvolených podmienok. Výsledná aplikácia sa ukázala byť plne funkčná, aj keď sa v nej nachádzajú niektoré reálne nedostatky, ako napríklad validácia vstupných údajov či admnistrátorské rozhranie, avšak tým by sa značne prekročil rozsah práce.&lt;br /&gt;
Záverom sme vytvorili porovnavací test – benchmark, na určenie rýchlosti vykonania požiadavky v PHP a Rails. Výsledkom testu bolo, že PHP vie spracovať požiadavku omnoho rýchlejšie ako Rails, príčinou ale bolo, že sme porovnávali jazyk a framework. Preto sme na záver uviedli aj iné porovnávacie testy, z ktorých vyplynulo, že jazyk Ruby je minimálne rovnako rýchly ako jazyk PHP, a framework Rails patrí medzi priemerne rýchle frameworky v porovnaní s frameworkami PHP. Preto by programátor pri výbere jazyka alebo frameworku na tvorbu programov mal prihliadať skôr na to, ako efektívne dokáže vytvoriť aplikáciu, ktorú potrebuje.&lt;br /&gt;
&lt;br /&gt;
=Použitá literatúra=&lt;br /&gt;
#Holzner, S.: Začínáme programovat v Ruby on Rails, Brno, Computer Press, a.s., 2007, ISBN 978-80-251-1630-2&lt;br /&gt;
#Ruby, S., Thomas, D., Heinemeier Hansson, D.,: Agile Web Development with Rails – Third edition, Raleigh, North Carolina, Dallas, Texas, The Pragmatic Bookshelf, 2008, ISBN-13: 978-1-9343561-6-6&lt;br /&gt;
#Lenz, P.,: Build Your Own Ruby On Rails Web Applications, United States of America, SitePoint Pty. Ltd., 2007, ISBN 978-0-9758419-5-2&lt;br /&gt;
#Naberezny, M., DeVries, D.,: Rails for PHP Developers, Raleigh, North Carolina, Dallas, Texas, The Pragmatic Bookshelf, 2008, ISBN-13: 978-1-9343560-4-3&lt;br /&gt;
#Rajshekhar, A.P.,: Building Dynamic Web 2.0 Websites with Ruby on Rails, Birmingham, Packt Publishing Ltd., 2008, ISBN 978-1-847193-41-4&lt;br /&gt;
#Fernandez, O.,: The Rails way, Boston, Pearson Education, Inc., 2008, ISBN 978-1-847193-41-4&lt;br /&gt;
#Lenz, P.,: Simply Rails 2, Collingwood, SitePoint Pty. Ltd., 2008, ISBN 978-0-9804552-0-5&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Framework_Ruby_on_Rails&amp;diff=1303</id>
		<title>Framework Ruby on Rails</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Framework_Ruby_on_Rails&amp;diff=1303"/>
		<updated>2010-01-20T19:54:28Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Zamyká „Framework Ruby on Rails“ ([edit=sysop] (na neurčito) [move=sysop] (na neurčito))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Bakalárske práce]]&lt;br /&gt;
[[Kategória:Informatika]]&lt;br /&gt;
[[Kategória:Skriptovacie jazyky]]&lt;br /&gt;
&amp;lt;H1_CSS chapter=&amp;quot;4&amp;quot; prefix=&amp;quot;Kapitola&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sideBox&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;&amp;quot; border=0 cellpadding=5&lt;br /&gt;
|+ Obsah práce&lt;br /&gt;
|-&lt;br /&gt;
| 1.&lt;br /&gt;
| [[Pokročilé vlastnosti skiptovacích jazykov| Úvod do Ruby on Rails]]&lt;br /&gt;
|-&lt;br /&gt;
| 2.&lt;br /&gt;
| [[Jazyk Ruby]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.&lt;br /&gt;
| [[Porovnanie Ruby a PHP]]&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| [[Framework Ruby on Rails]]&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| [[Praktická aplikácia využívajúca framework Rails]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
V predchádzajúcej kapitole boli zhrnuté základné informácie o písaní kódu v jazyku Ruby, ktorý je základom MVC frameworku Ruby on Rails. V nasledujúcej časti popíšeme architekrúru Rails, pričom sa bližšie zameriame na schopnosť Rails efektívne pracovať s databázami.&lt;br /&gt;
&lt;br /&gt;
==MVC architektúra==&lt;br /&gt;
MVC architektúra (model-view-controller), ako už bolo spomínané v úvode, nie je používaná a jedinečná iba pre Rails, dokonca existovala ešte pred Ruby a Rails. Napriek tomu, Rails plne prevzal myšlienku oddelenia aplikačných dát, užívateľského rozhrania a riadiacej logiky a dal jej nový rozmer.&lt;br /&gt;
MVC je predlohou pre architektúru softwarových aplikácií – rozdeľuje aplikáciu na nasledovné tri komponenty:&lt;br /&gt;
*'''Models''' – modely – určené na spracovávanie dát a prístup k databázam&lt;br /&gt;
*'''Views''' – pohľady – spracovávajú objekty grafického užívateľského rozhrania a vykonávajú prezentačnú logiku&lt;br /&gt;
*'''Controllers''' – kontroléry – riadia užívateľské rozhranie a vykonávajú aplikačnú logiku&lt;br /&gt;
Výsledný priebeh spracovania užívateľskej požiadavky je znázornený na obrázku 4.1:&lt;br /&gt;
&lt;br /&gt;
[[Súbor:pvsj4.1.png|Obrázok 4.1.: Spracovanie požadavky v architektúre MVC]]&lt;br /&gt;
&lt;br /&gt;
#Prehliadač na strane klienta zasiela požiadavku kontroléru prostredníctvom stránky na servri.&lt;br /&gt;
#Kontrolér obnovuje potrebné dáta od modelu za účelom vykonať požiadavku.&lt;br /&gt;
#Model komunikuje s databázou a získava alebo ukladá potrbné dáta.&lt;br /&gt;
#Kontrolér posúva získané a spracované dáta pohľadu.&lt;br /&gt;
#Vygeneruje sa pohľad a zasiela sa späť prehliadaču na zobrazenie.&lt;br /&gt;
&lt;br /&gt;
Rozčlenenie softwarových aplikácií na tieto 3 rôzne komponenty je vhodným riešením z mnohých dôvodov, vrátane nasledujúcich:&lt;br /&gt;
*zlepšuje sa rozšíriteľnosť – schopnosť aplikácie rozrastať sa&lt;br /&gt;
*zjednodušuje sa údržba – zmeny jedného komponentu neovplyvnia ostatné&lt;br /&gt;
*podporuje sa opätovné použitie – jeden model môže byť použitý v mnohých pohľadoch a naopak&lt;br /&gt;
&lt;br /&gt;
==MVC v Rails==&lt;br /&gt;
===Ištalácia Rails===&lt;br /&gt;
Rails v prostredí Windows nainštalujeme zadaním príkazov do príkazového riadku:&lt;br /&gt;
&lt;br /&gt;
 gem install rails –include-dependencies  &lt;br /&gt;
 gem update rails&lt;br /&gt;
&lt;br /&gt;
K fungovaniu Rails potrebujeme ešte databázu (my sme použili MySQL) a web server. Rails obsahuje jednoduchý web server WEBRick, ktorý môžeme spustiť príkazom&lt;br /&gt;
&lt;br /&gt;
 ruby script/server &lt;br /&gt;
&lt;br /&gt;
Uprednostňovaňejším serverom je Mongrel, Rails ale môže bežať aj na serveroch Apache (so zabudovanými modulmi pre Rails) alebo Lighttpd.&lt;br /&gt;
&lt;br /&gt;
[[Súbor:pvsj4.2.png|Obrázok 4.2.: Podadresár app]]&lt;br /&gt;
&lt;br /&gt;
Rails podporuje koncept modelov, pohľadov a kontrolérov, ktoré sú vzájomne oddelené a kód každého z týchto elementov je uložený ako samostatný súbor v oddelenom adresári. Pokiaľ by sme sa pozreli do novovytvoreného Rails projektu, tak v priečinku app môžeme nájsť spomínané adresáre:&lt;br /&gt;
&lt;br /&gt;
Ako vidno, každý komponent MVC architektúry má svoje miesto vnútri podpriečinku app – podpriečinok modelov, pohľadov, kontrolérov. &lt;br /&gt;
Rails implementuje MVC zavedením troch vrstiev (komponentov) medzi časti frameworku. Sú to:&lt;br /&gt;
*Active Record – modul zabezpečujúci funkcie modelu – každý model dedí vlastnosti tejto triedy.&lt;br /&gt;
*Action View – komponent, ktorý ma na starosti  prezentáciu stránok navracajúcich sa klientovi. Pohľady dedia vlastnosti tejto triedy.&lt;br /&gt;
*Action Controller – modul spracovávajúci požiadavky klienta, zabezpečujúci komunikáciu medzi modelom a pohľadmi. Kontroléry dedia vlastnosti triedy Action Controller.&lt;br /&gt;
Action Controller a Action View sa spoločne nazývajú aj Action Pack. &lt;br /&gt;
&lt;br /&gt;
===Active Record (Model)===&lt;br /&gt;
Active Record je navrhnutý pre správu všetkých aplikačných požiadaviek súvisiacich s databázou, zahŕňajúc:&lt;br /&gt;
*zabezpečenie spojenia s databázou – Active Record je schopný prostrednictvom špeciálneho adaptéru vytvoriť prepojenie s databázami MySQL, SQLite, PostgreSQL alebo Oracle, DB2, Microsoft SQL Server a i.. Vďaka tomu sú dve odlišné prostredia ako objektovo orietované programovanie v Ruby a neobjektový jazyk SQL schopné prepojenia.&lt;br /&gt;
*vyberanie potrebných dát z tabuliek&lt;br /&gt;
*ukladanie nových dát do databázy&lt;br /&gt;
Okrem toho je Active Record ORM framework – Object Relational Mapping framework. To znamená, že každá tabuľka je zaradená do určitej triedy, riadky tabuliek sú zaradené medzi objekty a stĺpce tabuľky sú atribúty objektov. Tabuľke je možné priradiť triedu nasledovne:&lt;br /&gt;
&lt;br /&gt;
 class User &amp;lt; ActiveRecord::Base&lt;br /&gt;
 end&lt;br /&gt;
&lt;br /&gt;
Týmto sa vytvorí trieda User. Časť &amp;lt; ActiveRecord::Base zabezpečuje, že trieda User je podtriedou Active Record a dedí jej funkcie. Názov triedy má byť totožný s názvom tabuľky, pričom názov triedy (model) je v jednotnom čísle a názov tabuľky v množnom čísle. Tento spôsob pomenovávania patrí medzi konvencie Rails a stará sa o to, aby Active Record vedel automaticky priradiť správnu tabuľku k vytvorenej triede. Modely sú ukladané do priečinku app/models. Príklad pomenovania tabuliek a tried je v tabuľke 4.1.:&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; width=&amp;quot;92%&amp;quot;&lt;br /&gt;
|+Tabuľka 4.1.: Konvencie pomenovania tabuliek a tried v Rails&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|'''Tabuľka'''&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|'''Trieda'''&lt;br /&gt;
|-&lt;br /&gt;
|users&amp;lt;br&amp;gt;events&amp;lt;br&amp;gt;people&amp;lt;br&amp;gt;user_event&lt;br /&gt;
|User&amp;lt;br&amp;gt;Event&amp;lt;br&amp;gt;Person&amp;lt;br&amp;gt;UserEvents&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
Druhou významnou konvenciou je, že tabuľky obsahujú identifikačný stĺpec id. Každá tabuľka má tento unikátny stĺpec pomenovaný id, ktorý sa vytvorí automaticky pri generovaní tabuľky. Tento stĺpec môže byť primárnym kľúčom tabuľky (hodnota použitá na unikátnu identifikáciu riadku tabuľky). Ďalšie funkcie modelu budú rozobraté komplexnejšie v nasledujúcej časti.&lt;br /&gt;
&lt;br /&gt;
===Action Controller (Controller)===&lt;br /&gt;
Kontrolér funguje ako prvok MVC architektúry, ktorý je prepojovacím článkom medzi dátami aplikácie, prezentačnou vrstvou a prehliadačom. Dohliada na množstvo funkcií:&lt;br /&gt;
*rozhodovanie akým spôsobom vybaviť požiadavku prehliadača (napríklad či načíta celý nový obsah pohľadu alebo len jeho časť)&lt;br /&gt;
*obnovovanie požadovaných dát z modelu a ich následné odoslanie pohľadu&lt;br /&gt;
*zhromažďovanie informácií z požiadavky prehliadača a ich následné použitie na vytvorenie alebo obnovenie dát v modeli&lt;br /&gt;
Každý kontrolér je podtriedou, ktorá dedí vlastnosti od triedy Action Controller, ale vlastní aj samostatné špecifické funkcie. Tieto sa môžu definovať sami ako metódy triedy, vpísaním do súboru kontroléru. Príklad:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
class UsersController &amp;lt; ActionController::Base&lt;br /&gt;
	def index&lt;br /&gt;
	end&lt;br /&gt;
	def show&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Vytvorili sme jednoduchú definíciu kontroléru UsersController s dvomi prázdnymi metódami index a show. Každý kontrolér je uložený v samostatnom Ruby súbore s príponou .rb v adresári app/controllers. UsersController bude teda uložený ako app/controllers/users_controller.rb. Ako vidno, v Rails existujú aj konvencie pri pomenovávaní tried a súborov kontrolérov:&lt;br /&gt;
*mená tried sú písané vo forme MyAllUsersController – každé slovo začína veľkým písmenom, bez medzier medzi nimi&lt;br /&gt;
*mená súborov sú písané malými písmenami, oddelené podčiarkovníkom – my_all_users_controller.rb&lt;br /&gt;
Tieto konvencie nie sú nevyhnutné, v prípade ich nedodržania však Rails zaberie množstvo času lokalizovať potrebný súbor a zvolený názov je nutné nakonfigurovať do aplikáce ručne. Našťastie, väčšinou nie je potrebné pomenovávať súbory a triedy manuálne, Rails ich automaticky pomenuje podľa zadaných konvencií a uloží ich do adresára app/controllers.&lt;br /&gt;
&lt;br /&gt;
===Action View (View)===&lt;br /&gt;
Ako bolo spomenuté, pohľady by mali obsahovať iba prezentačnú logiku, zabezpečovať grafické užívateľské rozhranie. Sem spadajú úlohy spojené so zobrazovaním stránok v aplikáciách – kód v pohľadoch by nemal obsahovať žiadne zložité operačné úkony, ukladanie alebo získavanie dát z databázy. Všetky pohľady sú uložené v adresári app/views našej alikácie.&lt;br /&gt;
V pohľadoch sa nachádza takisto akýkoľvek použitý kód HTML. Pohľad nemusí obsahovať principiálne žiadny kód Ruby – môže sa stať, že niektoré pohľady budú obsahovať iba čistý HTML kód. Ruby kód vložený do HTML využíva embedded Ruby syntax – v skratke ERb.&lt;br /&gt;
ERb je podobný azyku PHP alebo JSP v tom, že využíva možnosť rozloženia kódu medzi kód HTML, oddelením funkčného kódu pomocou značiek – tagov. V PHP to vyzerá nasledovne:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;strong&amp;gt;&amp;lt;? echo `PHP Hello world!` ?&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
ekvivalent v ERb je:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;strong&amp;gt;&amp;lt;%= `Ruby Hello world!` ?&amp;gt;&amp;lt;/strong&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Poznáme dva rôzne typy párových tagov ERb: jeden obsahujúci znamienko rovnosti =, a druhý, ktorý ho neobsahuje:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;%= ... %&amp;gt;&amp;lt;/nowiki&amp;gt; - tieto párové značky sa používajú pre regulárny výstup, ktorý bude automaticky zobrazený v prehliadači&lt;br /&gt;
&amp;lt;nowiki&amp;gt;&amp;lt;% ... %&amp;gt;&amp;lt;/nowiki&amp;gt; - značky označujúce kód, ktorý nie je určený na výstup na obrazovku, sem patria rôzne jednoduchšie výpočty, slučky, priradenie premenných - kód nie je zobrazený v pohľade&lt;br /&gt;
Vytvorenie výstupu na obrazovku prostredníctvom pohľadov je o niečo zložitejšie ako v prípade modelu a kontroléru. Konkretizácia každého pohľadu je zabezpečovaná pomocou modulu Action View, jediný súbor ktorý je potrebné modifikovať je šablóna stránky (template), ktorá obsahuje prezentačný kód pre zobrazenie pohľadu. Tieto súbory sú uložené v priečinku app/views. Takisto tu sa uplatňujú konvencie:&lt;br /&gt;
*počet šablón zodpovedá počtu akcií – metód kontroléru, pričom názov šablóny je totožný s menom akcie kontroléru &lt;br /&gt;
*priečinok v ktorom sú šablóny uložené má názov kontroléru na ktorý sa viažu&lt;br /&gt;
*súbor šablóny obsahuje príponu zloženú z dvoch častí – pozastáva z typu šablóny a jazyka, v ktorom je šablóna písaná. Prípony pohľadov v Rails:&lt;br /&gt;
'''html.erb''' – štandardná šablóna HTML obsahujúca kód ERb&lt;br /&gt;
'''xml.builder''' – šablóna XML&lt;br /&gt;
'''rs.rjs''' – šablóna, ktorá vracia inštrukcie JavaScript. Tento typ šablóny môže byť použitý napríklad pri modifikácii existujúcej stránky (prostredníctvom Ajax)&lt;br /&gt;
&lt;br /&gt;
Konvencie môžu znieť zložito, avšak v skutočnosti sú pomerne intutívne. Ako príklad uvádzame triedu UsersController, ktorú sme definovali v predošlej časti. Volaním metódy show sa v prípade tohto kontroléru zobrazí šablóna ActionView, ktorá sa nachádza v priečinku app/views/users. Názov šablóny bude edit.html.erb.&lt;br /&gt;
Rails obsahuje špeciálne šablóny, ako základné schémy (layouts) a čiastkové schémy (partials). Základné schémy sú typy šablón, ktoré obsahujú globálnu vrstvu aplikácie pre daný kontrolér, základnú štruktúru zobrazenia, ktorá je na stránkach nemenná (napríklad hlavné navigačné menu). Čiastkové schémy sú špeciálne podšablóny, ktoré môžu byť použité v aplikácii aj viackrát a sú priradené konkrétnym akciám (metódam) kontrolérov. Komunikácia medzi kontrolérmi a pohľadmi nastáva prostredníctvom premenných inštancií. Upravenie predošlého príkladu nachádzajúceho sa v  app/controllers/users_controller.rb:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
class UsersController &amp;lt; ActionController::Base&lt;br /&gt;
	def index&lt;br /&gt;
	    @premenna = `Výpis do pohľadu`&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
V metóde index triedy Users sme definovali premennú inštancií hodnoty string, ktorú je možné vďaka zabudovaným funkciám v ActionView použiť v pohľade app/views/users/index.html.erb nasledovne:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;p&amp;gt;Hodnota @premenna obsahuje text: &amp;lt;%= @premenna %&amp;gt;&amp;lt;/p&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==Práca s databázami v Rails – CRUD==&lt;br /&gt;
Active Record obsahuje aj funkcie v skratke nazývané ako CRUD – Create, Read, Update, Delete. Rails pojal CRUD ako smer k zjednoušeniu procesu tvorby databazových aplikácií, okrem toho väčšina úkonov spojených s databázami úzko súvisí s CRUD, preto ich spomenieme podrobnejšie. &lt;br /&gt;
&lt;br /&gt;
===Create (vytvorenie nového záznamu)===&lt;br /&gt;
Rails používa na pridanie záznamu do tabuľky nasledovné konštruktory:&lt;br /&gt;
new – konštruktor, ktorý vytvorí nový objekt triedy a uloží ho do lokálnej premennej. tento objekt je zložený z 2 premenných inštancií: &lt;br /&gt;
*@new_record – typu boolean, dáva informáciu či bol už záznam uložený do tabuľky, pokiaľ áno nastaví sa na 0, v opačnom prípade je 1&lt;br /&gt;
*@attributes – obsahuje hash pozostávajúci z atribútov zvolenej tabuľky, ktoré vytvoril Active Record.&lt;br /&gt;
&lt;br /&gt;
Nový záznam je potrebné následne uložiť metódou save. Príklad:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
user = User.new ( :meno 	=&amp;gt; “Ján“,&lt;br /&gt;
	  	      :priezvisko =&amp;gt; `Kováč`,&lt;br /&gt;
		      :email 	=&amp;gt; ”kovac@rails.com”)&lt;br /&gt;
user.save&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
'''create''' – tento konštruktor súčasne vytvorí nový objekt a uloží ho do danej triedy:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
User.create ( :meno 		=&amp;gt; “Ján“,&lt;br /&gt;
	     :priezvisko 		=&amp;gt; `Kováč`,&lt;br /&gt;
	     :email 		=&amp;gt; ”kovac@rails.com”)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Read (vyhľadávanie záznamov)===&lt;br /&gt;
Na vyhľadávanie jedného alebo viacerých záznamov v Rails je určená metóda triedy find. Rozoznávame 3 základné spôsoby volania metódy:&lt;br /&gt;
&lt;br /&gt;
*'''find(:id)''' – vyhľadá jeden konkrétny záznam podľa unikátneho čísla id&lt;br /&gt;
*'''find(:first)''' – vyhľadá prvý vyhovujúci záznam&lt;br /&gt;
*'''find(:all)''' – vyhľadá všetky vyhovujúce záznamy v tabuľke&lt;br /&gt;
&lt;br /&gt;
Za každú metódu je možné ďalej pridať ďalšie voľby, ako napr :order (spôsob zoradenia výstupov) alebo :conditions (podmienky vyhľadávania). Argument :order je synonymom výrazu ORDER v jazyku SQL a argument :conditions má rovnakú funkciu ako SQL výraz WHERE. Príklad použitia vyhľadávania:&lt;br /&gt;
&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
&amp;gt;&amp;gt; users = User.find(:all, :conditions =&amp;gt; {:meno =&amp;gt; `Ján`})&lt;br /&gt;
&amp;gt;&amp;gt; users.each {|user| puts user.meno }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Výsledným výpisom bude pole mien užívateľov z tabuľky users, ktorí majú meno Ján.&lt;br /&gt;
Nasledujúca tabuľka zobrazuje ďalšiu možnosť – dynamické vyhľadávače:&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+Tabuľka 4.2. : Dynamické vyhľadávače&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|'''Vyhľadávač'''&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|'''Príklad'''&lt;br /&gt;
|-&lt;br /&gt;
|find_by_*(cond)&amp;lt;br&amp;gt;find_all_by_*(cond)&amp;lt;br&amp;gt;find_by_*_and_*(cond1,cond2)&amp;lt;br&amp;gt;find_all_by_*_and_*(cond1,cond2)&lt;br /&gt;
|find_by_meno(`Ján`)&amp;lt;br&amp;gt;find_all_by_prezvisko(`Kováč`)&amp;lt;br&amp;gt;find_by_meno_and_priezvisko(`Ján`, `Kováč`)&amp;lt;br&amp;gt;find_all_by_meno_and_email(`Ján`,`k@rails.com`)&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Update (aktualizácia záznamov)===&lt;br /&gt;
Prepísanie atribútov záznamu najčastejšie vykonávame pomocou metódy update_attributes:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
user=User.find(2)&lt;br /&gt;
user.update_attributes(:meno =&amp;gt; ”Jozef”, :priezvisko =&amp;gt; ”Novák”)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===Delete (vymazávanie záznamov)===&lt;br /&gt;
Vymazávanie riadkov tabuľky môže byť vykonané dvoma metódami: destroy a delete. Najčastejšie používaným spôsobom je metóda destroy, ktorá pracuje na úrovni inštancií – teda najprv je definovaný konkrétny záznam na vymazanie, ktorý je potom odstránený. Následné príklady sú ekvivalentné:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
user = User.find(1)				&lt;br /&gt;
user.destroy&lt;br /&gt;
&lt;br /&gt;
User.find(1).destroy&lt;br /&gt;
&lt;br /&gt;
User.destroy(1)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Výrazy zodpovedajú prekladu do jazyka SQL:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;sql&amp;quot;&amp;gt;&lt;br /&gt;
DELETE FROM users WHERE id = 1;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Metódy delete a delete_all patria medzi základné metódy triedy Action Record. Metódy sa voljú priamo v triede, bez vytvorenia objektu, tento je vymazaný okamžite. Metóda delete_all sa najčastejšie používa spolu s podmienkami uvedenými za metódou:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
Event.delete([0,1,2,3])&lt;br /&gt;
Event.delete_all(“id &amp;lt; `4` “)&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Vzorová aplikácia v Rails==&lt;br /&gt;
Na základe informácií z predchádzajúcich kapitol vytvoríme ukážku jednoduchej aplikácie Hello world v Rails. Vychádzať pri tom budeme z architektúry MVC, podľa ktorej potrebuje aplikácia model, pohľad a kontrolér. Postup sa skladá z úkonov:&lt;br /&gt;
'''1'''&lt;br /&gt;
&lt;br /&gt;
'''Vytvorenie nového projektu''' – otvoríme si príkazový riadok a presunieme sa na miesto, kde si želáme vytvoriť nový projekt. Následne použijeme príkaz rails a za ním názov projektu:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
ruby&amp;gt; cd projekty&lt;br /&gt;
projekty&amp;gt; rails test&lt;br /&gt;
create&lt;br /&gt;
create app/controllers&lt;br /&gt;
create app/helpers&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Rails automaticky vytvorí základnú kostru celej aplikácie s mnohými podpriečinkami – my teraz využijeme hlavne priečinok app a script, ktorý obsahuje mnoho užitočných pomocných skriptov, ako napríklad generátor modelov, kontrolérov a scaffoldov (tvorí model a kontrolér súčasne).&lt;br /&gt;
&lt;br /&gt;
'''2'''&lt;br /&gt;
&lt;br /&gt;
'''Vytvorenie kontroléru''' – voláme generátor, umiestnený v časti script:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
test&amp;gt; ruby script/generate controller Say&lt;br /&gt;
...&lt;br /&gt;
create app/views/say&lt;br /&gt;
create app/controllers/say_controller.rb&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Rails vygeneruje potrebné súbory, medzi inými kontrolér say_controller.rb a priečinok pohľadov app/views/say&lt;br /&gt;
&lt;br /&gt;
'''3'''&lt;br /&gt;
&lt;br /&gt;
'''Pridanie akcie kontroléru''' – súbor say_controller.rb vyzerá teraz nasledovne:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
class SayController &amp;lt; AplicationController&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Aby kontrolér vykonával akciu pozdravu, musíme ju zadefinovať ako metódu triedy:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
class SayController &amp;lt; AplicationController&lt;br /&gt;
	def hello&lt;br /&gt;
	end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''4'''&lt;br /&gt;
'''&lt;br /&gt;
Vytvorenie pohľadu''' – na dokončenie aplikácie je potrebný pohľad akcie hello. Rails automaticky priraďuje akciám tie pohľady, ktoré sa nachádzajú v priečinku s rovnakým názvom ako je názov kontroléru. Preto je potrebné vytvoriť súbor hello.html.erb v priečinku app/views/say. Doňho vložíme základný HTML kód:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;html4strict&amp;quot;&amp;gt;&lt;br /&gt;
&amp;lt;html&amp;gt; &lt;br /&gt;
    &amp;lt;head&amp;gt;&amp;lt;title&amp;gt; Hello, Rails! &amp;lt;/title&amp;gt;&amp;lt;/head&amp;gt;&lt;br /&gt;
&amp;lt;body&amp;gt;&lt;br /&gt;
    &amp;lt;h1&amp;gt; Hello world! &amp;lt;h1&amp;gt;&lt;br /&gt;
&amp;lt;/body&amp;gt;&lt;br /&gt;
&amp;lt;/html&amp;gt;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''5'''&lt;br /&gt;
&lt;br /&gt;
'''Spustenie aplikácie''' – pomocou príkazu script/server v príkazovom riadku spustíme aplikačný server WEBrick:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
test&amp;gt; ruby script/server&lt;br /&gt;
=&amp;gt; Booting WEBrick...&lt;br /&gt;
...&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Aplikáciu spustíme v akomkoľvek prehliadači zadaním url &amp;lt;pre&amp;gt;http://localhost:3000/say/hello&amp;lt;/pre&amp;gt; .&lt;br /&gt;
V aplikácii sme vytvorili kontrolér, ktorému sme priradili metódu a pohľad. V tomto prípade sme výnimočne nevytvárali žiadny model, pretože aplikácia nevyužíva prepojenie s databázou. V bežných aplikáciách je model z hľadiska práce s dátami nevyhnutný.&lt;br /&gt;
&lt;br /&gt;
==Asociácie==&lt;br /&gt;
Väčšina novodobých aplikácií obsahuje veľké množstvo tabuliek, medzi ktorými je potrebné vytvoriť čo najefektívnejšie prepojenia. K tomuto účelu slúžia bežné rozšírenia modelov, asociácie. Asociácie sú odvodené od prirodzených vzťahov medzi objektami v reálnom živote: užívateľ píše viacero článkov, články majú viacero komentárov od viacerých užívateľov a pod. V relačných databázových systémoch, ako MySQL, sú tabuľky prepojené odvolaním sa na cudzí kľúč v jednej tabuľke a primárnym kľúčom v druhej. Príkladom je prepojenie tabuliek rozvrhu - predmetov (subjects) a študijných kombinácií (study_combinations), obrázok 4.3.:&lt;br /&gt;
&lt;br /&gt;
[[Súbor:pvsj4.3.png|frame|none|Obrázok 4.3.: Vzťah medzi tabuľkami subjects a study combinations]]&lt;br /&gt;
&lt;br /&gt;
V tomto prípade je stĺpec pomenovaný study_combination_id v tabuľke subjects použitý na identifikáciu priradenej študijnej kombinácie. V konvenciách Rails je cudzí kľúč uvedený v singulárnej forme, malými písmenami a pomenovaný po danej tabuľke s príponou _id na konci.&lt;br /&gt;
&lt;br /&gt;
''Pozn.:'' Pri konvenciách pomenovávania treba brať do úvahy, že Rails pracuje so slovníkom anglického jazyka, vrátane skloňovania podstatných mien. Pre slovenského programátora je preto z hľadiska efektivity vhodné riadiť sa týmito konvenciami a používať pri pomenovávaní tabuliek, modelov, kontrolérov a pohľadov anglické výrazy. Konfigurácia vlastných názvov v slovenčine je možná a pomerne jednoduchá, napriek tomu je pri takomto postupe zvýšené riziko výskytu chýb v kóde a značne sa tým predlžuje čas programovania a ladenia.&lt;br /&gt;
&lt;br /&gt;
===Deklarácia asociácií===&lt;br /&gt;
Správu asociácií má v Rails na starosti Active Record. Použiť je možné 4 rôzne typy asociácií:&lt;br /&gt;
*has_one&lt;br /&gt;
*has_many&lt;br /&gt;
*belongs_to&lt;br /&gt;
*has_and_belongs_to_many&lt;br /&gt;
Názvy inštrukcií sú volené tak, aby bolo intuitívne pochopiteľné ich využitie. Teda je prirodzené vysloviť tvrdenie, že jedna študijná kombinácia má viacero predmetov (has_many) a jeden predmet patrí do určitej študijnej kombinácie (belongs_to).&lt;br /&gt;
&lt;br /&gt;
===Asociácie one-to-one = has_one + belongs_to===&lt;br /&gt;
Tento typ asociácie sa používa v prípade, keď riadok v jednej tabuľke je prepojený presne s jedným riadkom inej. Príkladom je prepojenie tabuliek zamestnancov (emloyees) a adries (adresses). Každý zamestnanec má jednu konkrétnu adresu a každá adresa patrí niektorému zo zamestnancov (pozri Obrázok 4.4.). V tomto prípade je potrebné v tabuľke adries vytvoriť atribút employee_id a modely doplniť o príslušné asociácie:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
class Emloyee &amp;lt; ActiveRecord::Base&lt;br /&gt;
	has_one :address&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
class Adress &amp;lt; ActiveRecord::Base&lt;br /&gt;
	belongs_to :employee&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Súbor:pvsj4.4.png|frame|none|Obrázok 4.4.: Vzťah has_one - belongs_to]]&lt;br /&gt;
&lt;br /&gt;
Základné metódy, ktoré sa najčastejšie používajú v súvislosti s has_one asociáciou sú zobrazené v tabuľke 4.3.:&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+Tabuľka 4.3.: Metódy asociácie has_one v príklade Employee/Adress&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#DAEEF3&amp;quot;|'''Metóda'''&lt;br /&gt;
|bgcolor = &amp;quot;#DAEEF3&amp;quot;|'''Popis'''&lt;br /&gt;
|-&lt;br /&gt;
|'''@employee.adress'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;'''@employee.address=(address)'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;'''@employee.address.nil?'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;'''@employee.build_adress(attributes=&amp;lt;nowiki&amp;gt;{}&amp;lt;/nowiki&amp;gt;)'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;'''@employee.create_address(attributes=&amp;lt;nowiki&amp;gt;{}&amp;lt;/nowiki&amp;gt;)'''&lt;br /&gt;
|vracia priradený objekt tabuľky adresses: vracia nil pokiaľ objekt neexistuje&amp;lt;br&amp;gt;priradí asociovaný (Adress) objekt, jeho primárny kľúč definuje ako cudzí kľúč (bez uloženia do tabuľky)&amp;lt;br&amp;gt;vracia hodnotu true pokiaľ neexistuje asociovaný Address objekt&amp;lt;br&amp;gt;vracia nový Adress objekt inicializovaný aj s&amp;amp;nbsp;atribútmi,&amp;amp;nbsp;prepojený s @employee pomocou cudzieho kľúča (bez uloženia do tabuľky)&amp;lt;br&amp;gt;vraca nový Adress objekt inicializovaný aj s&amp;amp;nbsp;atribútmi,&amp;amp;nbsp;prepojený s @employee pomocou cudzieho kľúča a&amp;amp;nbsp;ukladá záznam do tabuľky&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Asociácie one-to-many = has_many + belongs_to===&lt;br /&gt;
Asociácia one-to-many definuje situáciu keď riadok v jednej tabuľke je vzťahovo prepojený s jendným alebo viacerými riadkami v inej tabuľke. Autor môže napísať viacero článkov a každý článok patrí určitému autorovi. V tabuľke článkov (articles) je potrebný atribút definujúci autora author_id (obrázok 4.5.). Modely sú doplnené o asociácie:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
class Author &amp;lt; ActiveRecord::Base&lt;br /&gt;
   has_many :articles&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
class Article &amp;lt; ActiveRecord::Base&lt;br /&gt;
   belongs_to :author&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[Súbor:pvsj4.5.png|frame|none|Obrázok 4.5.: Vzťah has_many - belongs_to]]&lt;br /&gt;
&lt;br /&gt;
Najčastejšie využívané metódy sú v tabuľke  4.4:&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; width=&amp;quot;100%&amp;quot;&lt;br /&gt;
|+Tabuľka 4.4: Metódy asociácie has_many v použití modelov Author a Article&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#DAEEF3&amp;quot;|'''Metóda'''&lt;br /&gt;
|bgcolor = &amp;quot;#DAEEF3&amp;quot;|'''Popis'''&lt;br /&gt;
|-&lt;br /&gt;
|'''@author.articles'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;'''@author.articles=(articles)'''&amp;lt;br&amp;gt;'''@author.articles &amp;lt;nowiki&amp;gt;&amp;lt;&amp;lt;&amp;lt;/nowiki&amp;gt; article'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;'''@author.articles.delete(articles)'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;'''@author.articles.clear'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;'''@author.articles.size'''&amp;lt;br&amp;gt;&amp;lt;br&amp;gt;'''@author.articles.find'''&lt;br /&gt;
|vracia pole priradených článkov; prázdne pole vracia v&amp;amp;nbsp;prípade, že sa nenašiel žiadny záznam&amp;lt;br&amp;gt;zamení pôvodnú kolekciu článkov za zvolenú&amp;lt;br&amp;gt;pridáva jeden alebo viac záznamov do kolekcie a&amp;amp;nbsp;ukladá ich cudzie kľúče&amp;lt;br&amp;gt;odstráni požadované množstvo článkov z&amp;amp;nbsp;kolekcie nastavením ich cudzích kľúčov na hodnotu NULL&amp;lt;br&amp;gt;odstráni všetky Article objekty z&amp;amp;nbsp;kolekcie bez toho, aby ich odstránil z databázy&amp;lt;br&amp;gt;vraca počet objektov triedy Article asociovaných s&amp;amp;nbsp;premennou @author&amp;lt;br&amp;gt;vyhľadá všetky Article objekty priradené premennej @author podľa zvolených atribútov&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
===Asociácie many-to-many = has_and_belongs_to_many  (habtm)===&lt;br /&gt;
Vzťah many-to-many sa vyskytuje v prípade keď sú dve tabuľky prepojené viacerými záznamami na obidvoch stranách. Pri tomto type prepojenia je potrebná tzv. prepojivacia tabuľka – join table, ktorá sa nachádza medzi tabuľkami a prepája ich pomocou cudzích kľúčov. Názov prepojovacej tabuľky je vytvorený  z názvov oboch tabuliek – v prípade tabuliek teacher - subject (učitelia a predmety) je názov subjects_teachers. V tomto prípade je potrebné uplatniť konvenciu, že prvá sa uvádza tá tabuľka, ktorej začiatočné písmeno sa nachádza skôr v abecede. Názvy sú oddelené podčiarkovníkom. Prepojovacia tabuľka je okrem toho výminočná tým, že neobsahuje primárny kľúč id, ktorý je v tomto prípade nepotrebný. Vzťah prepojovacej tabuľky ilustruje obrázok 4.6.:&lt;br /&gt;
&lt;br /&gt;
[[Súbor:pvsj4.6.png|frame|none|Obrázok 4.6.: Vzťah has_and_belongs_to_many s použitím prepojovacej tabuľky]]&lt;br /&gt;
&lt;br /&gt;
Modely doplníme o asociácie:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
class Teacher &amp;lt; ActiveRecord::Base&lt;br /&gt;
	has_and_belongs_to_many :subjects&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
class Subject &amp;lt; ActiveRecord::Base&lt;br /&gt;
	has_and_belongs_to_many :events&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Pri asociácií typu habtm používame rovnaké metódy, ako v prípade prepojenia has_many, tentokrát v prípade obidvoch tabuliek. Na vytvorenie asociácie sa opäť používa operátor &amp;lt;&amp;lt;:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
subject = Subject.find(1,2)	# do premennej uloží predmety s id 1,2&lt;br /&gt;
teacher.subjects &amp;lt;&amp;lt; subject	# záznamy v premennej priradí do kolekcie&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Asociácia many-to-many = has_many :trough===&lt;br /&gt;
Použitie asociácie habtm je mnohokrát užitočné, súčasne ale aj veľmi obmedzujúce, pretože prepojovacia tabuľka nemôže uchovávať žiadne ďalšie údaje, a preto sa stáva nedostačujúcou pri práci s rozsiahlymi databázami. Robustnejšou alternatívou je vytvorenie asociácie has_many :trough. V tomto prípade sa z tabuľky, ktorá slúži ako prepojovacia, stáva plnohodnotný model, ktorý obsahuje aj ďalšie atribúty. Do týchto je možné ukladať ostatné potrebné dáta. V prípade prepojenia tabuliek dní (days) a mesiacov (months) môžeme vytvoriť prepojovaciu tabuľku dátumov (dates), pričom ku každému dňu v kalendári môžeme uložiť dolnkové dáta, ako napríklad meno, ktoré sa v danom dni nachádzav kalendári:&lt;br /&gt;
&lt;br /&gt;
[[Súbor:pvsj4.7.png|frame|none|Obrázok 4.7.: Asociácia many-to-many medzi days a months, cez tabuľku dates]]&lt;br /&gt;
&lt;br /&gt;
Vloženie asociácií do modelov je pri tejto rozšírenej tabuľke o niečo zložitejšie:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
class Date &amp;lt; ActiveRecord::Base&lt;br /&gt;
	belongs_to :day&lt;br /&gt;
	belongs_to :month&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
class Day &amp;lt; ActiveRecord::Base&lt;br /&gt;
	has_many :dates&lt;br /&gt;
	has_many :positions, through =&amp;gt; :dates, source =&amp;gt; :month&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
class Month &amp;lt; AcitveRecord::Base&lt;br /&gt;
	has_many :dates&lt;br /&gt;
	has_many :parts, through =&amp;gt; :dates, source =&amp;gt; :day&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Z príkladu vidíme, že je zmené pomenovanie asociácií, čo vyplýva z filozofie Rails, aby boli vzťahy pomenované čo naprirodzenejšie – deň má viacero pozícií v rôznych mesiacoch určených tabuľkou dátumov, pričom zdrojovou tabuľkou je tabuľka mesiacov. Rovnako každý mesiac sa skladá z mnohýh častí – dní, ktoré sú definované v tabuľke dátumov. Počet dní v decembri môžeme zistiť nasledovne:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
Month.find(12).parts.size		# =&amp;gt; 31&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
V jednom riadku môže byť zapísaných viacero metód oddelených bodkou, tak ako v príklade. Najprv metóda find vyhľadá príslušný mesiac podľa primárneho kľúča, následne sa vymedzí pole častí parts tohto mesiaca, ktorého prvky sčíta a výslednú hodnotu navráti metóda size.&lt;br /&gt;
&lt;br /&gt;
==Migrácie==&lt;br /&gt;
V predošlej časti venovanej asociám sme pracovali s tabuľkami a tvorili sme vzťahy medzi nimi. Predpokladom bolo, že tabuľky sú už vytvorené a obsahujú údaje, ktoré sme používali v príkladoch. Rails obsahuje viacero užitočných funkcií nielen pre správu tabuliek, ale aj pre ich tvorbu a úpravu. Tieto sa nazývajú migrácie a patria medzi charakteristické funkcie Rails. Ich využitie je natoľko rôznorodé, že presahuje možnosti tejto práce, a preto spomenieme aspoň najpodstatnejšie rysy migrácií.&lt;br /&gt;
Migrácie sú súbory popisujúce zmenu v databázovom systéme (vrátane vytvorenia novej tabuľky). Z technického hľadiska sú migrácie triedy nachádzajúce sa v adresári db/migrate aplikácie Rails, Všetky migrácie sú potomkami triedy ActiveRecord::Migration, ktorej metódy používajú. Každá migrácia musí obsahovať metódy tredy up a down. Metóda up sa volá v prípade migrácie z nižšej verzie (popr. žiadnej) na vyššiu. Metóda down sa používa pri návrate k predošlej (staršej) verzii. Migrácie sa obvykle spúšťajú pomocou príkazu rake db:migrate. Trieda zabezpečujúca migrácie funguje tak, že porovná verziu databázy uloženú v tabuľke schema_info a číslo poslednej migrácie v adresári db/migrate a pokiaľ nájde migrácie s číslom väčším ako je číslo databázy, tak tieto migrácie postupne spúšťa. Príkladom môžu byť migrácie z praktickej úlohy, ktorú budeme riešiť v nasledujúcej kapitole – pozri obrázok:&lt;br /&gt;
&lt;br /&gt;
[[Súbor:pvsj4.8.png|frame|none|Obrázok 4.8.: Zobrazenie migrácií projektu rozvrh v prostredí NetBeans]]&lt;br /&gt;
&lt;br /&gt;
Pre správnu funkčnosť migrácií je potrebné splniť dve podmienky:&lt;br /&gt;
*v databázi musí existovať tabuľka schema_info s jedným int stĺpcom version&lt;br /&gt;
*triedy migrácií musia byť v súboroch pomenovaných xxx_nazov_migracie.rb, kde xxx je číslo migrácie&lt;br /&gt;
Všetky tieto úkony nemusíme mať na pamäti, pretože Rails obsahuje k tomuto účelu vytvorené  generátory a rake tasky, ktoré všetky tieto konvencie vytvoria za nás.&lt;br /&gt;
V praxi sa migrácie používajú obvykle na vytvorenie novej tabuľky a následne na všetky jej úpravy. Novú migráciu môžeme vygenerovať viacerými spôsobmi, najčastejšie je to pri vytváraní nového modelu, alebo scaffoldu.&lt;br /&gt;
Model vytvoríme pomocou generátoru skriptom:&lt;br /&gt;
&lt;br /&gt;
 script/generate model NazovModelu&lt;br /&gt;
&lt;br /&gt;
Tento príkaz automaticky vygeneruje triedu modelu, unit test a migráciu s už uvedeným konvenčným názvom xxx_nazov_migracie.rb&lt;br /&gt;
 Scaffold (doslovne lešenie) je akási základná konštrukcia modelu, kontroléru a pohľadov na správu tabuľky (ktorej migrácia sa vytvorí tiež). Scaffold tvoríme podobne príkazom:&lt;br /&gt;
&lt;br /&gt;
 script/generate scaffold NazovModelu atr1:typ1 ... atrx:typx &lt;br /&gt;
&lt;br /&gt;
Ako vidno, v príkaze zadávame iba názov modelu a atribúty tabuľky s definovaním ich typu. Rails generátor priradí meno kontroléru, pohľadom a migrácii automaticky podľa predošlých konvencií.&lt;br /&gt;
Vytvorenie tabuľky z migrácie docielime jednoduchým príkazom:&lt;br /&gt;
&lt;br /&gt;
 rake db:migate&lt;br /&gt;
&lt;br /&gt;
Týmto je automaticky vytvorená nová tabuľka v databázi. Pokiaľ sme ju tvorili spoločne s konštrukciou scaffold, máme vytvorené už aj pohľady a akcie na pridávanie záznamov do tabuľky, editáciu, odstránenie a výpis záznamov tabuľky. Migrácie sú veľmi užitočné aj pri vývoji aplikácií, kedy je každá zmena v tabuľkách uložená v migráciách a pomocou nich reverzibilná do ktoréhokoľvek bodu vývoja.&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Porovnanie_Ruby_a_PHP&amp;diff=1302</id>
		<title>Porovnanie Ruby a PHP</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Porovnanie_Ruby_a_PHP&amp;diff=1302"/>
		<updated>2010-01-20T19:53:39Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Zamyká „Porovnanie Ruby a PHP“ ([edit=sysop] (na neurčito) [move=sysop] (na neurčito))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Bakalárske práce]]&lt;br /&gt;
[[Kategória:Informatika]]&lt;br /&gt;
[[Kategória:Skriptovacie jazyky]]&lt;br /&gt;
&amp;lt;H1_CSS chapter=&amp;quot;3&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;H1_CSS chapter=&amp;quot;3&amp;quot; prefix=&amp;quot;Kapitola&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sideBox&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;&amp;quot; border=0 cellpadding=5&lt;br /&gt;
|+ Obsah práce&lt;br /&gt;
|-&lt;br /&gt;
| 1.&lt;br /&gt;
| [[Pokročilé vlastnosti skiptovacích jazykov| Úvod do Ruby on Rails]]&lt;br /&gt;
|-&lt;br /&gt;
| 2.&lt;br /&gt;
| [[Jazyk Ruby]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.&lt;br /&gt;
| [[Porovnanie Ruby a PHP]]&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| [[Framework Ruby on Rails]]&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| [[Praktická aplikácia využívajúca framework Rails]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
__TOC__&lt;br /&gt;
V tejto kapitole uvedieme základné rozdiely, ako aj zhody medzi jazykom Ruby a PHP. Hlavnou odlišnosťou Ruby od PHP je, že Ruby je čisto objektovo orientovaný, takže všetko je objektom, zatiaľ čo PHP používa primitívne dátové typy. Ruby je taktiež na rozdiel od PHP dynamickým jazykom, čo je podľa mnohých výhodou a pre iných nevýhodou (častokrát pre programátorov PHP). Pri statických jazykoch, ako PHP, nie je možné zmeniť už nadefinovanú triedu zásahom „zvonku“. V Ruby je naopak možné triedy a metódy za behu meniť, pridávať, upravovať. &lt;br /&gt;
==Syntax==&lt;br /&gt;
Syntax Ruby má tiež určité odlišnosti, vychádzajúce z jeho filozofie. Patrí sem napríklad spôsob oddelenia inštrukcií – kým PHP sa príkazy oddeľujú vždy bodkočiarkou, v Ruby používame bodkočiarku iba v prípade, že chceme napísať viac príkazov v jednom riadku, inak sa nepoužívajú. Príklad:&lt;br /&gt;
&lt;br /&gt;
PHP:  &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
print &amp;quot;Instrukcia&amp;quot;;&lt;br /&gt;
print &amp;quot;Nasledujuca instrukcia&amp;quot;; print &amp;quot;Dalsia instrukcia&amp;quot;;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Ruby:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
print &amp;quot;Instrukcia&amp;quot;&lt;br /&gt;
puts &amp;quot;Nasledujuca instrukcia&amp;quot; ; puts &amp;quot;Dalsia instrukcia&amp;quot;&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ďalšie porovnanie základnej syntaxe je zhrnuté v nasledujúcej tabuľke:&lt;br /&gt;
{|border=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; width=&amp;quot;95%&amp;quot; class=&amp;quot;datatable&amp;quot;&lt;br /&gt;
|+Tabuľka 3.1.: Základná syntax jazyka PHP a Ruby&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|&amp;amp;nbsp;&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|PHP&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|Ruby&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|zalomenie riadku&lt;br /&gt;
|print 1 &amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; 2&amp;lt;br&amp;gt;&amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; 3;&lt;br /&gt;
|print 1 &amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; 2 \&amp;lt;br&amp;gt;        &amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt; 3&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|komentáre&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; komentár1&amp;lt;br&amp;gt;// komentár2&amp;lt;br&amp;gt;/* komentár na viac riadkov */&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;#&amp;lt;/nowiki&amp;gt; komentár1&amp;lt;br&amp;gt;=begin&amp;lt;br&amp;gt;komentár na viac riadkov&amp;lt;br&amp;gt;=end&lt;br /&gt;
&lt;br /&gt;
|-&lt;br /&gt;
|čísla s&amp;amp;nbsp;desatinnou&amp;lt;br&amp;gt;čiarkou&lt;br /&gt;
|$a = 2.3;&amp;lt;br&amp;gt;$b = .5;&amp;lt;br&amp;gt;$c = 2e-5;&lt;br /&gt;
|a = 2.3&amp;lt;br&amp;gt;b = 0.5&amp;lt;br&amp;gt;c = 2e-5&lt;br /&gt;
&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==Znaky==&lt;br /&gt;
Ruby aj PHP používajú sadu 256 znakov a z hľadika substitúcie znakov v jednoduchých i dvojitých úvodzovkách sú si veľmi podobné, čo ukazuje aj tabuľka 3.2:&lt;br /&gt;
{|border=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; width=&amp;quot;94%&amp;quot; class=&amp;quot;datatable&amp;quot;&lt;br /&gt;
|+Tabuľka 3.2.: Substitúcia znakov pri dvojitých úvodzovkách&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|&amp;amp;nbsp;&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|PHP&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|Ruby&lt;br /&gt;
|-&lt;br /&gt;
|zalomenie riadku&lt;br /&gt;
|\n&lt;br /&gt;
|\n&lt;br /&gt;
|-&lt;br /&gt;
|spätné lomítko&lt;br /&gt;
|\\&lt;br /&gt;
|\\&lt;br /&gt;
|-&lt;br /&gt;
|znak dolára&lt;br /&gt;
|\$&lt;br /&gt;
|$&lt;br /&gt;
|-&lt;br /&gt;
|dvojitá úvodzovka&lt;br /&gt;
|\&amp;quot;&lt;br /&gt;
|\&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
|interpolácia premennej&lt;br /&gt;
|$premenna&lt;br /&gt;
|&amp;lt;nowiki&amp;gt;#{&amp;lt;/nowiki&amp;gt;premenna&amp;lt;nowiki&amp;gt;}&amp;lt;/nowiki&amp;gt;&amp;lt;br&amp;gt;&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
==NULL (Nil)==&lt;br /&gt;
Konštanta NULL v PHP je veľmi podobná konštante Nil v Ruby, pretože obe reprezentujú chýbanie hodnoty vnútri premennej. Nil v Ruby je mierne odlišný v tom, že aj on je objektom, tak ako čokoľvek iné v Ruby. Je to objekt, ktorý reprezentuje „nevýskyt“ hodnoty. Príklad:&lt;br /&gt;
&lt;br /&gt;
PHP: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
$car = 'red' ;&lt;br /&gt;
var_export(is_null($car));&lt;br /&gt;
// =&amp;gt; false&lt;br /&gt;
unset($car);&lt;br /&gt;
var_export(is_null($car));&lt;br /&gt;
// =&amp;gt; true&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ruby :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
car = 'red'&lt;br /&gt;
p car.nil?&lt;br /&gt;
# =&amp;gt; false&lt;br /&gt;
car = nil&lt;br /&gt;
p car.nil?&lt;br /&gt;
# =&amp;gt; true&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Zmena typu==&lt;br /&gt;
Ruby automaticky nekonvertuje dátové typy tak ako PHP. Preto ak chceme intrepretovať znak ako číslo alebo naopak, musíme predtým vykonať jeho konverziu:&lt;br /&gt;
&lt;br /&gt;
PHP:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
print 1.4 + 4;&lt;br /&gt;
// =&amp;gt; 5.4&lt;br /&gt;
print 1.1 + &amp;quot;2&amp;quot;;&lt;br /&gt;
// =&amp;gt; 3.1&lt;br /&gt;
print &amp;quot;3&amp;quot; + 5;&lt;br /&gt;
// =&amp;gt; 8&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Ruby :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
puts 1.4 + 4&lt;br /&gt;
# =&amp;gt; 5.4&lt;br /&gt;
 puts 1.1 + &amp;quot;2&amp;quot;&lt;br /&gt;
# =&amp;gt; String can't be coerced into Float (TypeError)&lt;br /&gt;
 puts 1.1 + &amp;quot;2&amp;quot;.to_f&lt;br /&gt;
# =&amp;gt; 3.1&lt;br /&gt;
 puts &amp;quot;3&amp;quot; + 5&lt;br /&gt;
# =&amp;gt; can't convert Fixnum into String (TypeError)&lt;br /&gt;
 puts &amp;quot;3&amp;quot;.to_i + 5&lt;br /&gt;
# =&amp;gt; 8&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Premenné==&lt;br /&gt;
Ruby ponúka viacero typov premenných, tak ako v PHP môžeme použiť lokálne, globálne, statické premenné alebo premenné inštancií. Tieto sme podrobnejšie definovali v predchádzajúcej kapitole, treba ale opäť zmieniť základný rozdiel v zápise lokálnych premenných. V PHP ich píšeme so znakom $ na začiatku, ale v Ruby je premenná začínajúca týmto znakom definovaná ako globálna premenná a lokálna premenná začína podčiarkovníkom alebo malým písmenom.&lt;br /&gt;
PHP obsahuje okrem toho aj super globálne premenné, ako $_GET, $_POST, $_COOKIE, a $_SESSION. Ruby takéto preddefinované premenné neobsahuje, pretože nebol určený primárne na tvorbu web aplikácií. Preto sú ekvivalenty super globálnych premenných v PHP súčasťou Rails.&lt;br /&gt;
&lt;br /&gt;
==isset/empty==&lt;br /&gt;
V jazyku PHP používame častokrát funkciu isset, aby sme zistili, či bola priradená hodnota premennej. Ruby sa pri vyhodnocovaní, či je premenná správna chová odlišne ako PHP, základné rozdiely sú zhrnuté v tabuľke 3.3.&lt;br /&gt;
&lt;br /&gt;
{|border=&amp;quot;2&amp;quot; cellspacing=&amp;quot;0&amp;quot; cellpadding=&amp;quot;4&amp;quot; width=&amp;quot;95%&amp;quot;&lt;br /&gt;
|+Tabuľka 3.3.:Funkcie s prázdnymi premennými&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|'''PHP'''&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|'''empty($x)'''&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|'''is_null($x)'''&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|'''if($x)'''&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|'''isset($x)'''&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|'''$x = &amp;quot;&amp;quot;;'''&lt;br /&gt;
|bgcolor = &amp;quot;#EAF1DD&amp;quot;|TRUE&lt;br /&gt;
|bgcolor = &amp;quot;#F2DBDB&amp;quot;|FALSE&lt;br /&gt;
|bgcolor = &amp;quot;#F2DBDB&amp;quot;|FALSE&lt;br /&gt;
|bgcolor = &amp;quot;#EAF1DD&amp;quot;|TRUE&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|'''$x = null;'''&lt;br /&gt;
|bgcolor = &amp;quot;#EAF1DD&amp;quot;|TRUE&lt;br /&gt;
|bgcolor = &amp;quot;#EAF1DD&amp;quot;|TRUE&lt;br /&gt;
|bgcolor = &amp;quot;#F2DBDB&amp;quot;|FALSE&lt;br /&gt;
|bgcolor = &amp;quot;#F2DBDB&amp;quot;|FALSE&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|'''$x = array()'''&lt;br /&gt;
|bgcolor = &amp;quot;#EAF1DD&amp;quot;|TRUE&lt;br /&gt;
|bgcolor = &amp;quot;#F2DBDB&amp;quot;|FALSE&lt;br /&gt;
|bgcolor = &amp;quot;#F2DBDB&amp;quot;|FALSE&lt;br /&gt;
|bgcolor = &amp;quot;#EAF1DD&amp;quot;|TRUE&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|'''$x = false;'''&lt;br /&gt;
|bgcolor = &amp;quot;#EAF1DD&amp;quot;|TRUE&lt;br /&gt;
|bgcolor = &amp;quot;#F2DBDB&amp;quot;|FALSE&lt;br /&gt;
|bgcolor = &amp;quot;#F2DBDB&amp;quot;|FALSE&lt;br /&gt;
|bgcolor = &amp;quot;#EAF1DD&amp;quot;|TRUE&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|'''$x = 0;'''&lt;br /&gt;
|bgcolor = &amp;quot;#EAF1DD&amp;quot;|TRUE&lt;br /&gt;
|bgcolor = &amp;quot;#F2DBDB&amp;quot;|FALSE&lt;br /&gt;
|bgcolor = &amp;quot;#F2DBDB&amp;quot;|FALSE&lt;br /&gt;
|bgcolor = &amp;quot;#EAF1DD&amp;quot;|TRUE&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|'''$x = &amp;quot;0&amp;quot;'''&lt;br /&gt;
|bgcolor = &amp;quot;#EAF1DD&amp;quot;|TRUE&lt;br /&gt;
|bgcolor = &amp;quot;#F2DBDB&amp;quot;|FALSE&lt;br /&gt;
|bgcolor = &amp;quot;#F2DBDB&amp;quot;|FALSE&lt;br /&gt;
|bgcolor = &amp;quot;#EAF1DD&amp;quot;|TRUE&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|'''Ruby'''&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|'''x.empty?'''&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|'''x.nil?'''&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|'''if(x)'''&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|&amp;amp;nbsp;&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|'''x.zero?'''&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|'''x = &amp;quot;&amp;quot;'''&lt;br /&gt;
|bgcolor = &amp;quot;#EAF1DD&amp;quot;|TRUE&lt;br /&gt;
|bgcolor = &amp;quot;#F2DBDB&amp;quot;|FALSE&lt;br /&gt;
|bgcolor = &amp;quot;#EAF1DD&amp;quot;|TRUE&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|bgcolor = &amp;quot;#F2F2F2&amp;quot;|u/m&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;*&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|'''x = nil'''&lt;br /&gt;
|bgcolor = &amp;quot;#F2F2F2&amp;quot;|u/m&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;*&amp;lt;/font&amp;gt;&lt;br /&gt;
|bgcolor = &amp;quot;#EAF1DD&amp;quot;|TRUE&lt;br /&gt;
|bgcolor = &amp;quot;#F2DBDB&amp;quot;|FALSE&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|bgcolor = &amp;quot;#F2F2F2&amp;quot;|u/m&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;*&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|'''x = &amp;lt;nowiki&amp;gt;[]&amp;lt;/nowiki&amp;gt;'''&lt;br /&gt;
|bgcolor = &amp;quot;#EAF1DD&amp;quot;|TRUE&lt;br /&gt;
|bgcolor = &amp;quot;#F2DBDB&amp;quot;|FALSE&lt;br /&gt;
|bgcolor = &amp;quot;#EAF1DD&amp;quot;|TRUE&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|bgcolor = &amp;quot;#F2F2F2&amp;quot;|u/m&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;*&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|'''x = &amp;lt;nowiki&amp;gt;{}&amp;lt;/nowiki&amp;gt;'''&lt;br /&gt;
|bgcolor = &amp;quot;#EAF1DD&amp;quot;|TRUE&lt;br /&gt;
|bgcolor = &amp;quot;#F2DBDB&amp;quot;|FALSE&lt;br /&gt;
|bgcolor = &amp;quot;#EAF1DD&amp;quot;|TRUE&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|bgcolor = &amp;quot;#F2F2F2&amp;quot;|u/m&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;*&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|'''x = false'''&lt;br /&gt;
|bgcolor = &amp;quot;#F2F2F2&amp;quot;|u/m&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;*&amp;lt;/font&amp;gt;&lt;br /&gt;
|bgcolor = &amp;quot;#F2DBDB&amp;quot;|FALSE&lt;br /&gt;
|bgcolor = &amp;quot;#F2DBDB&amp;quot;|FALSE&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|bgcolor = &amp;quot;#F2F2F2&amp;quot;|u/m&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;*&amp;lt;/font&amp;gt;&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|'''x = 0'''&lt;br /&gt;
|bgcolor = &amp;quot;#F2F2F2&amp;quot;|u/m&amp;lt;font color=&amp;quot;#FF0000&amp;quot;&amp;gt;*&amp;lt;/font&amp;gt;&lt;br /&gt;
|bgcolor = &amp;quot;#F2DBDB&amp;quot;|FALSE&lt;br /&gt;
|bgcolor = &amp;quot;#EAF1DD&amp;quot;|TRUE&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|bgcolor = &amp;quot;#EAF1DD&amp;quot;|TRUE&lt;br /&gt;
|-&lt;br /&gt;
|bgcolor = &amp;quot;#B6DDE8&amp;quot;|'''x = &amp;quot;0&amp;quot;'''&lt;br /&gt;
|bgcolor = &amp;quot;#F2DBDB&amp;quot;|FALSE&lt;br /&gt;
|bgcolor = &amp;quot;#F2DBDB&amp;quot;|FALSE&lt;br /&gt;
|bgcolor = &amp;quot;#EAF1DD&amp;quot;|TRUE&lt;br /&gt;
|&amp;amp;nbsp;&lt;br /&gt;
|bgcolor = &amp;quot;#F2DBDB&amp;quot;|FALSE&lt;br /&gt;
|}&lt;br /&gt;
Vysvetlivky:&lt;br /&gt;
&amp;lt;nowiki&amp;gt;*&amp;lt;/nowiki&amp;gt;n/m - NoMethodError: undefined method&lt;br /&gt;
&lt;br /&gt;
==Operátory==&lt;br /&gt;
Operátory v Ruby sú špecifické tým, že každý z nich je metódou volanou k určitému objektu. V tomto prípade nemusíme pred metódu písať bodku, Ruby k týmto metódam vytvoril vhodnú syntax ktorá je bežne používaná aj u iných jazykov:&lt;br /&gt;
&lt;br /&gt;
Ruby:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
puts 1.+(2)&lt;br /&gt;
# =&amp;gt; 3&lt;br /&gt;
puts 1+2&lt;br /&gt;
# =&amp;gt; 3&lt;br /&gt;
puts 'Hello, '.+('World!' )&lt;br /&gt;
# =&amp;gt; Hello, World!&lt;br /&gt;
puts 'Hello, '+'World!'&lt;br /&gt;
# =&amp;gt; Hello, World!&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
V Ruby a PHP sú operátory priradenia, aritmetické operátory a bitové operátory používané takmer identicky. V Ruby je možné použiť aj paralelné priradenie viacerých premenných v jednom riadku. Toto je podobné funkcii list s kombináciou funkcie array v PHP. Príklad:&lt;br /&gt;
PHP: &lt;br /&gt;
&amp;lt;source lang=&amp;quot;php&amp;quot;&amp;gt;&lt;br /&gt;
list($a, $b, $c) = array(1, 2, 3);&lt;br /&gt;
print $a; # =&amp;gt; 1&lt;br /&gt;
print $b; # =&amp;gt; 2&lt;br /&gt;
print $c; # =&amp;gt; 3&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Ruby:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
a, b, c = 1, 2, 3&lt;br /&gt;
puts a # =&amp;gt; 1&lt;br /&gt;
puts b # =&amp;gt; 2&lt;br /&gt;
puts c # =&amp;gt; 3&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
V tejto kapitole sme sa pokúsili stručne zhrnúť aspoň základné rozdiely medzi jazykmi Ruby a PHP. Snažili sme sa poukázať na tie odlišnosti, ktoré by mohol prehliadnuť programátor dlhodobo programujúci v jazyku PHP a ktoré by si mal zapamätať. Inak by sa mohol aj na prvý pohľad funkčný kód správať inak, ako by očakával.&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Jazyk_Ruby&amp;diff=1301</id>
		<title>Jazyk Ruby</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Jazyk_Ruby&amp;diff=1301"/>
		<updated>2010-01-20T19:53:16Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Zamyká „Jazyk Ruby“ ([edit=sysop] (na neurčito) [move=sysop] (na neurčito))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Bakalárske práce]]&lt;br /&gt;
[[Kategória:Informatika]]&lt;br /&gt;
[[Kategória:Skriptovacie jazyky]]&lt;br /&gt;
&amp;lt;H1_CSS chapter=&amp;quot;2&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;H1_CSS chapter=&amp;quot;2&amp;quot; prefix=&amp;quot;Kapitola&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;div class=&amp;quot;sideBox&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;&amp;quot; border=0 cellpadding=5&lt;br /&gt;
|+ Obsah práce&lt;br /&gt;
|-&lt;br /&gt;
| 1.&lt;br /&gt;
| [[Pokročilé vlastnosti skiptovacích jazykov| Úvod do Ruby on Rails]]&lt;br /&gt;
|-&lt;br /&gt;
| 2.&lt;br /&gt;
| [[Jazyk Ruby]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.&lt;br /&gt;
| [[Porovnanie Ruby a PHP]]&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| [[Framework Ruby on Rails]]&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| [[Praktická aplikácia využívajúca framework Rails]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
=Ruby=&lt;br /&gt;
==Ruby ako interpretovaný objektovo orientovaný jazyk==&lt;br /&gt;
Ruby je programovací jazyk, ktorý vytvoril Yukihiro Matsumoto, s cieľom poskytnúť tvorivý spôsob programovania. Matsumuto chcel vytvoriť jazyk, s ktorým bude radosť pracovať a ktorý bude čo najprirodzenejší. Typickým príkladom je výpis pozdravu hello world:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
puts ”Hello world!”&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Príkaz znamená vypíš reťazec Hello world – v angličtine put string Hello world...&lt;br /&gt;
Prvou a základnou vecou, ktorú treba pri jazyku Ruby pochopiť, aby sme s ním mohli plnohodnotne pracovať je to, že ide o interpretovaný a  absolútne objektvo orientovaný jazyk.&lt;br /&gt;
Interpretované (skriptovacie) jazyky sú jazyky, ktoré su prekladané pomocu interpreteru až počas behu programu. Sú pomalšie ako kompilované jazyky, ale nemajú tak veľké formálne požiadavky (nie je potreba inicializovať premennú, jej dátový typ sa môže počas behu meniť, ukazovatele sú zbytočné). &lt;br /&gt;
Mnoho iných interpretovaných jazykov, ako napríklad PHP alebo Java podporujú objektovo-orientované programovanie, avšak nie sú absolútne objektovo orientované. Je to preto, že tieto jazyky obsahujú tzv. primitívne typy, napríklad integer, float, string, boolean, ktoré slúžia na ukladanie dát, ale nie sú objektami.&lt;br /&gt;
&lt;br /&gt;
Ruby je od týchto jazykov radikálne odlišné, pretože neobsahuje žiadne z týchto primitívnych typov. Ide o čisto objektovo orientovaný jazyk, takže všetko je objekt v absolútnom slova zmysle.&lt;br /&gt;
Základnou myšlienkou objektovo orientovaného programovania (OOP) je, že program by mal byť zložený zo samostatných entít, objektov, pričom každý z nich je schopný komunikovať s ostatnými objektami. Každý objekt je teda zložený z metód (volateľného kódu, ktorý vykonáva určitú činnosť) a interne uložených dát. Táto metóda „zabalenia“ užitočných vecí do objektu sa nazýva zapuzdrefinie.&lt;br /&gt;
Objekty v aplikácii OOP sú často prirovnateľné k objektom reálneho sveta, čo umožňuje ľašie pochopenie funkcie a postavenia objektov v programe. A rovnako ako v reálnom svete, objekty môžu byť začlenené podľa rôznych kritérií do tried. To znamená, že triedy sú typom objektu. Tak napríklad, číslo 1 je objektom triedy ''Fixnum'' a medzi jej metódy patrí napríklad metóda + , teda súčet. Tak isto nami vytvorený objekt ''Trabant'' môže patriť do triedy ''auto'' a obsahovať metódu ''zapni_motor''.&lt;br /&gt;
&lt;br /&gt;
Pochopenie vzťahov medzi triedami, objektami a metódami umožňuje zistiť, ako OOP funguje. Objekt z jednej triedy môže napríklad vyvolať akciu iného objektu inej triedy, bez ovplyvnenia stavu ďalších objektov v tej istej triede. Tiež môžeme zmeniť určitú vlastnosť objektu bez toho, aby to malo vplyv na iné objekty tej istej triedy – keďže objekt sa správa ako samostatná entita. Každý nový objekt je vytváraný z určitej triedy, z ktorej vychádza – tento proces je nazývaný aj konktretizácia. Vytvorené objekty medzi sebou môžu komunikovať a vyvolávať metódy, spôsobom otázok a odpovedí. V prípade OOP sú otázkami inštrukcie a odpoveďami návratová hodnota, resp. stavová správa indikujúca, či bola požadovaná inštrukcia úspešne vykonaná. Tak v našom príklade môže objekt ''šofér'' požadovať inštrukciu ''zapni_motor'' od objektu ''Trabant'', pričom návratovou hodnotou môže byť informácia o úspešnom alebo neúspešnom naštartovaní motora. &lt;br /&gt;
&lt;br /&gt;
Keďže Ruby je absolútne objektovo orientovaný, čokoľvek v ňom je buď objektom, triedou alebo metódou určitého objektu a tak budeme aj pristupovať k informáciám v nasledujúcich podkapitolách, či pôjde o čísla, textové reťace alebo polia. Spomenuté výrazy si postupne rozoberieme v nasledujúcom texte.&lt;br /&gt;
&lt;br /&gt;
==Inštalácia a vývojové prostredie Ruby==&lt;br /&gt;
Ruby na OS Windows nainštalujeme stiahnutím kompletného inštalátora Ruby z adresy http://rubyinstaller.rubyforge.org a jeho následným nainštalovaním. Na všetkých novších verziách Mac OS X a Linux je Ruby nainštalovaný automaticky.&lt;br /&gt;
Pre prácu s Ruby je dostačujúci akýkoľvek textový editor, napríklad WordPad alebo Poznámkový blok, pričom výsledný Ruby program je potrebné uložiť s príponou .rb . Tento je potom spustiteľný z príkazového riadku.&lt;br /&gt;
&lt;br /&gt;
Ďalšou možnosťou práce s Ruby je rozhranie IRB (Interactive Ruby Shell), pre ktorého spustenie stačí napísať irb do príkazového riadku. IRB rozhranie umožňuje interaktívne poskytnúť výsledok nášho príkazu, takže je ideálny pre testovanie jednoduchých jednoriadkových príkazov – preto ho budeme občas používať aj v nasledujúcich príkladoch.&lt;br /&gt;
&lt;br /&gt;
==Čísla, reťazce, premenné a konštanty==&lt;br /&gt;
Ruby podporuje ako celé čísla (integer), tak i čísla s desatinnou čiarkou(float), pričom veľkosť celých čísel v ňom nie je nijako obmedzená – jediným obmedzením je teda voľná pamäť počítača. Čísla v rozmedzí od -2&amp;lt;sup&amp;gt;30&amp;lt;/sup&amp;gt; do 2&amp;lt;sup&amp;gt;30&amp;lt;/sup&amp;gt;-1 alebo -2&amp;lt;sup&amp;gt;62&amp;lt;/sup&amp;gt; do 2&amp;lt;sup&amp;gt;62&amp;lt;/sup&amp;gt;-1 sú zaradené do triedy ''Fixnum'', ostatné presahujúce daný rozsah sú triedy ''Bignum''. Presvedčiť sa o tom môžeme jednoduchým príkazom:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
irb&amp;gt; 1&lt;br /&gt;
=&amp;gt; 1&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
V tomto príklade sa môže zdať, že sme dostali identický výstup od vstupu. A predsa tomu nie je tak. Výstupom je novovytvorený plnohodnotný Ruby objekt. Volaním metódy class môžeme ľahko zistiť, do ktorej triedy patrí naše číslo 1:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
irb&amp;gt; 1.class&lt;br /&gt;
=&amp;gt; Fixnum&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Výsledok je jasný, každý objekt je priradený do svojej triedy.&lt;br /&gt;
Ruby sa o to najnutnejšie postará sám, okrem toho umožňuje veľké čísla zapísať oddelené podtržítkami pre sprehľadnenie, napríklad:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
irb&amp;gt;100_111_222_333_444&lt;br /&gt;
=&amp;gt;100111222333444&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Desatinné čísla sa dajú písať s vložením desatinnej čiarky, napríklad 3,1415, alebo s exponentom 31415.0e-4. Môžeme písať aj čísla binárne, zapísaním 0b na začiatok, osmičkové s 0 na začiatku a hexadecimálne s pomocou predpony 0x. Zadané vstupy teda odpovedajú nasledovným výstupom:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
irb&amp;gt;0b10101&lt;br /&gt;
=&amp;gt;21&lt;br /&gt;
irb&amp;gt;0134&lt;br /&gt;
=&amp;gt;668&lt;br /&gt;
irb&amp;gt;0xa321c&lt;br /&gt;
=&amp;gt;668188&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===Reťazce===&lt;br /&gt;
Reťazce sa  môžu uzavrieť do apostrofov (``) alebo úvodzoviek (””),takže  výrazy ”Ahoj” a `Ahoj` sú identické. Ak chceme použiť apostrofy alebo úvodzovky v texte, môžeme ich kombinovať, alebo môžeme v texte miesto nich vložiť %q (apostrofy) alebo %Q (úvodzovky) spolu s jediným znakom a na mieste ukončenia daný znak. Rovnaký efekt bude mať použitie dvojice znakov { a }, popr. &amp;lt; a &amp;gt;, dokonca môžeme vypustiť znak Q. Takže nasledujúce výrazy sú ekvivalentné:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
irb&amp;gt;”Povedal: `Ahoj!`”&lt;br /&gt;
irb&amp;gt;”Povedal: %q/Ahoj!/”&lt;br /&gt;
irb&amp;gt;”Povedal: %q{Ahoj!}”&lt;br /&gt;
irb&amp;gt;”Povedal: %q&amp;lt;Ahoj!&amp;gt;”    # výpis bude vždy: Povedal: `Ahoj!`&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Reťazce sa spájajú znakom +, napríklad:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
irb&amp;gt;“jedna, “ + “dva, ” + “tri”&lt;br /&gt;
=&amp;gt;”jedna, dva, tri”&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Volaním metódy length zistíme dĺžku daného reťazca – objektu:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
irb&amp;gt;“jedna, dva, tri”.length&lt;br /&gt;
=&amp;gt;15&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Výsledok určitého matematického výpočtu v reťazci zobrazíme jeho ohraničením do znakov #{ a }, napríklad:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
 irb&amp;gt;“5+7 je po scitani #{5+7}”&lt;br /&gt;
=&amp;gt;”5+7 je po scitani 12”&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Premenné===&lt;br /&gt;
&lt;br /&gt;
Ruby dokáže ukladať dáta v premenných, čo sú pomenovaní zástupcovia predstavujúci nejaké čísla, reťazce a ďalšie údaje. Na tieto dáta uložené v premennej na odkazuje použitím názvu danej premennej. Premenné začínajú malým znakom a-z alebo podčiarkovníkom _ , potom nasleduje ľubovoľný počet znakov názvu – môže to byť malé i veľké písmeno, číslo, podčiarkovník. Jedinou podmienkou je nepoužívať slová, ktoré pre seba rezervuje jazyk Ruby, napríklad výrazy vyjadrujúce podmienky (''if, then, when, else, elseif..''), pravdivostnú hodnotu (''true, false'') alebo ohraničenie skupiny príkazov (''begin, end'').&lt;br /&gt;
 &lt;br /&gt;
Krátky príklad definovania a práce s premennou teplota:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
irb&amp;gt;teplota=20&lt;br /&gt;
=&amp;gt;20&lt;br /&gt;
irb&amp;gt;”Teplota je ”+String(teplota)&lt;br /&gt;
=&amp;gt;”Teplota je 20”&lt;br /&gt;
irb&amp;gt;teplota=teplota+5&lt;br /&gt;
=&amp;gt;25&lt;br /&gt;
irb&amp;gt;”Aktualna teplota je #{teplota}”&lt;br /&gt;
=&amp;gt;”Aktualna teplota je 25”&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Z príkladu vidno, že ak chceme k reťazcu priradiť číslo, je potrebné použiť metódu String, alebo ohraničiť prennú znakmi #{ a }. Ekvivalentom metódy String je metóda to_s:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
irb&amp;gt;”Teplota je ”+teplota.to_s&lt;br /&gt;
=&amp;gt;”Teplota je 25”&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
====Globálne premenné====&lt;br /&gt;
Globálne premenné sú premenné platné v celom programe a začínajú znakom $:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
$x, $datum, $abc_DEF&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
====Premenné inštancií====&lt;br /&gt;
Premenné začínajúce znakom @ sú premenné inštancií (inštancie) :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
@x, @datum, @abc_DEF&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Premenné inštancií na rozdiel od lokálnych premenných zachovávajú hodnoty do nich uložené, pokiaľ existuje ich príslušný objekt.&lt;br /&gt;
&lt;br /&gt;
====Konštanty====&lt;br /&gt;
V Ruby je tiež možné vytvárať konštanty. Konštanta obsahuje určitú hodnotu, ktorá ostáva časovo nemenná. Každá konštanta začína veľkým písmenom, ktorým Ruby rozpozná, že sa jedná o konštantu. Konštanty umožňuje Ruby zmeniť, v takom prípade sa zobrazí upozornenie o tom, že daná konštanta bola už inicializovaná.&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
irb&amp;gt;TRPASLIKOV= 7&lt;br /&gt;
=&amp;gt;7&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Symboly, polia a hash==&lt;br /&gt;
===Symboly===&lt;br /&gt;
(v iných jazykoch nazývané atómy) sú podobné reťazcom. Môžu obsahovať znaky, čísla, podčiarkovník, ale začínajú dvojbodkou:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
:a, :b2, :agent_007&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Symboly sa používajú na ukladanie raťazcov, keď nie je požadovaný výstup na obrazovku; v kóde nedochádza k ich náhrade.&lt;br /&gt;
===Polia===&lt;br /&gt;
Polia predstavujú skupiny premenných rôznych typov ku ktorým je možné pristupovať prostredníctvom indexu:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
pole=[“a”,“b”,14,“zelena”]&lt;br /&gt;
puts pole[2]                 # vypíše 14&lt;br /&gt;
pole[3,1]=”modra”            #nahradí 1 element od pozície 3 reťazcom modrá&lt;br /&gt;
puts pole                    #výpis bude: [”a”, ”b”, 14, ”modra”]&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===Hash (asociačné polia)===&lt;br /&gt;
Hash je pole, ku ktorého premenným možno pristupovať namiesto indexov prostredníctvom textových reťacov. K jeho vytvoreniu sa používajú zložené zátvorky:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
kolko_dni_ma_mesiac = { ”januar” =&amp;gt; 31, ”februar” =&amp;gt; 28, ”marec” =&amp;gt;31}&lt;br /&gt;
kolko_dni_ma_mesiac[”februar”]        # vypíše 28&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
==Podmienené výrazy, cykly, metódy a bloky==&lt;br /&gt;
V nasledujúcich príkladoch je zobrazený obecný syntax príkazov vrátane voliteľných klauzulí (tieto nepovinné klauzule sú ohraničené hranatými zátvorkami):&lt;br /&gt;
'''if :'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
if  logický_výraz  [then | :]&lt;br /&gt;
      kód1&lt;br /&gt;
[elseif&lt;br /&gt;
     kód2]&lt;br /&gt;
[else&lt;br /&gt;
    kód3]&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
''' unless:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
unless logický_výraz [then | :]&lt;br /&gt;
     kód1&lt;br /&gt;
[else&lt;br /&gt;
    kód2 ]&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''case:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
case hodnota&lt;br /&gt;
   when výraz [, porovnanie]… [then | :]&lt;br /&gt;
       kód1&lt;br /&gt;
when výraz [, porovnanie]… [then | :]&lt;br /&gt;
       kód2&lt;br /&gt;
...&lt;br /&gt;
[else&lt;br /&gt;
     kód]&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''Ternárny operátor:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
výsledok = podmienka ? pravdivá_hodnota : nepravdivá_hodnota&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''while:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
while podmienka [do | :]&lt;br /&gt;
     kód&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''until:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
until podmienka [do | :]&lt;br /&gt;
    kód&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
'''for:'''&lt;br /&gt;
&amp;lt;source lang=&amp;quot;text&amp;quot;&amp;gt;&lt;br /&gt;
for premenná [, premenná...] in kolekcia [do | :]&lt;br /&gt;
    kód&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Iterátory jazyka Ruby===&lt;br /&gt;
Okrem definovaných cyklov podporuje Ruby iterátory, metódy vstavané do položiek, s ktorými sa pracuje. Umožňujú vytvárať cykly a nahrádzať častokrát cykly komplikovanejšie.&lt;br /&gt;
Metóda ''upto/downto'' (hore/dole po) vytvára cyklus pokračujúci až do zadanej hodnoty (vrátane):&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hodnota1.upto/downto(hodnota2) do |index_cyklu|&lt;br /&gt;
    kód&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Iterátor step zvyšuje index cyklu o zadanú hodnotu:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
hodnota1.step(hodnota2, hodnota_kroku) do |aktualna_hodnota|&lt;br /&gt;
    kód&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Presný počet cyklov vykonáva iterátor times:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
 hodnota.times do&lt;br /&gt;
   kód&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
===Break, redo a next v cykloch===&lt;br /&gt;
Existujú 3 kľúčové slová využiteľné v súvislosti s cyklami a iterátormi: ''break, redo'' a ''next''.&lt;br /&gt;
''Break'' okamžite ukončuje daný cyklus (ten, v ktorom sa nachádza).&lt;br /&gt;
''Redo'' opakuje iteráciu aktuálneho cyklu (bez toho aby došlo k novému vyhodnoteniu podmienky cyklu alebo prevzatiu nasledujúcej položky z nejakého iterátora)&lt;br /&gt;
''Next'' preskakuje na koniec aktuálnej iterácie (tkaže cyklus alebo iterátor preskočí na ďalšiu iteráciu alebo položku).&lt;br /&gt;
===Metódy===&lt;br /&gt;
Metódy slúžia na vykonávanie požadovaných inštrukcií a obvykle sa pripájajú na koniec premenných a konštánt bodkou (.). Napríklad:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svetlo.zapni&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Použili sme metódu zapni. Metód môže byť viac za sebou:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svetlo.zapni.vypni.je_vypnute?&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
V tomto príklade sa najprv svetlo zapne, následne vypne a posledná metóda výstupom potvrdí, či je svetlo vypnuté.&lt;br /&gt;
Niektoré metódy požadujú ďalšie informácie, vstupné hodnoty, pre vykonanie inštrukcií. Tieto sa nazývajú argumenty. Argumenty sa pripájajú za metódu ohraničené do zátvoriek a oddelené čiarkou:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
svetlo.zapni(2, :minuta)&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Metóda zapne 2. svetlo v poradí na 1 minútu. &lt;br /&gt;
Niektoré metódy sú tzv. ''kernel'' metódy, metódy bežne používané Ruby, preto pred ne netreba pridávať bodku:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
print “Nepotrebujem bodku pred metódu print.“&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
 &lt;br /&gt;
Okrem preddefinovaných metód si môžeme vytvoriť aj vlastné, napríklad:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
def pozdrav&lt;br /&gt;
      puts ”Hello world!”&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Metódu následne zavoláme zadaním jej názvu.&lt;br /&gt;
&lt;br /&gt;
===Bloky===&lt;br /&gt;
Blok je časť kódu vymedzená znakmi {} alebo slovami do a end. Možno ho poskytnúť metóde podobne ako argument. Pre tento účel slúži príkaz yield:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
def pozdrav&lt;br /&gt;
    yield&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
pozdrav { puts “Hello world!“ }&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Výsledkom daného kódu je:&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
Hello world!&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;br /&gt;
Príkaz yield je možné vykonať aj viackrát. Dáta možno blokom poskytovať  pomocou príkazu yield, ktoré sa v bloku načítajú podobne ako agrumenty poskytnuté metóde:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
def pozdrav&lt;br /&gt;
    yield “Hello“ “world!“&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
pozdrav {slovo_jedna, slovo_dva | puts slovo_jedna + “ “ + slovo_dva}&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Triedy a jej premenné, objekty, moduly==&lt;br /&gt;
&lt;br /&gt;
===Prístup k objektom jazyka Ruby===&lt;br /&gt;
Jazyk Ruby ponúka 3 úrovne prístupu k metódam:&lt;br /&gt;
Verejné metódy je možné volať z každého miesta kódu, nemajú žiadne obmedzenia.&lt;br /&gt;
Chránené metódy možno volať iba vnútri objeku tej triedy, ktorá dané metódy definuje alebo objektov tried odvodených z danej triedy.&lt;br /&gt;
Súktormné metódy je možné voleť len vnútri aktuálneho objektu.&lt;br /&gt;
Ruby definuje kľúčové slová (public, protected, private), označované ako modifikátory prístupu.&lt;br /&gt;
&lt;br /&gt;
===Vytváranie premenných triedy===&lt;br /&gt;
Premenné inštancií sa vytvárajú pridaním predpony @ pred ich názov. Premenné triedy sa dajú vytvoriť pripojením @@ pred názov. Takúto premennú triedy zdieľajú všetky jej inštancie, takže zmena tejto hodnoty v jednom objekte spôsobí zmenu vo všetkých objektoch danej triedy (naproti tomu premenné inštancií sú v objektoch interné).&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
class Ovocie&lt;br /&gt;
   @@pocet_ovocia = 0&lt;br /&gt;
   attr_accessor:farba&lt;br /&gt;
   def initialize(farba)&lt;br /&gt;
        @farba=farba&lt;br /&gt;
        @@pocet_ovocia += 1        &lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
 &amp;lt;/source&amp;gt; &lt;br /&gt;
Definovaná premenná triedy @@pocet_ovocia pri každom vytvorení nového objektu triedy Ovocie zvýši hodnotu o 1.&lt;br /&gt;
&lt;br /&gt;
===Vytváranie metód triedy===&lt;br /&gt;
===Triedy===&lt;br /&gt;
Pre vytvorenie triedy slúži príkaz class:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
class Ovocie	# vytvorenie novej triedy&lt;br /&gt;
   def initialize               # definovanie metódy initialize&lt;br /&gt;
        @farba=”zlta”&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    def vypis_farbu             # definovanie metódy výpis_farbu&lt;br /&gt;
         return @farba&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
V uvedenom príklade sme vytvorili novú triedu Ovocie, v ktorej sme definovali dve metódy: initialize a vypis_farbu. Metóda vypis_farbu slúži na výpis farby ovocia – @farba je už spomínaná premenná inštancií, objekt charakterizujúci danú triedu. Metóda initialize sa automaticky volá, keď sa daná trieda použije na vytvorenie nového objektu. Initialize je špecifická metóda Ruby, nazývaná tiež konštruktor triedy -  používa sa na konštrukciu nových objektov. Príklad:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
class Ovocie&lt;br /&gt;
   def initialize(farba)&lt;br /&gt;
        @farba=farba&lt;br /&gt;
    end&lt;br /&gt;
&lt;br /&gt;
    def vypis_farbu&lt;br /&gt;
         return @farba&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
jablko = Ovocie.new(“cervena“)&lt;br /&gt;
puts “Farba noveho ovocia je “ + jablko.vypis_farbu&lt;br /&gt;
&lt;br /&gt;
# výpisom bude:  Farba noveho ovocia je cervena.&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Ako vidno z príkladu, vytvorili sme nový objekt jablko triedy Ovocie pomocou metódy new. Za metódu new sme pripojili vstupný argument farba, s ktorým následne pracuje metóda initialize pri vytváraní nového objektu.&lt;br /&gt;
Metóda vypis_farba  je nazývaná tiež prístupová metóda, pretože sa používa pre prístup k vnútorným hodnotám určitého objektu. V tomto prípade sa vypis_farba (v spojení jablko.vypis_farba) označuje za atribút. Atribút vypis_farba je čitateľný atribút objektu Ovocie, pretože prostredníctvom neho je možné čítať hodnotu premennej inštancií @farba. Vytvorenie čitateľného atribútu je možné zjednodušiť nasledovne:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
class Ovocie&lt;br /&gt;
   attr_reader:farba&lt;br /&gt;
   def initialize(farba)&lt;br /&gt;
        @farba=farba&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
jablko = Ovocie.new(“cervena“)&lt;br /&gt;
puts “Farba noveho ovocia je “ + jablko.farba&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
V príklade sme metódu vypis_farbu nahradili príkazom attr_reader, ktorý vytvorí inštanciu s názvom @farba a tiež metódu s rovnomenným názvom. Výsledok príkladu je totožný s predošlým dlhším kódom. &lt;br /&gt;
Atribúty, ktoré nám umožňujú pristupovať a zapisovať hodnoty do vnútorných inštancií objektov, sa nazývajú zapisovateľné atribúty. Zapisovateľné atribúty sa dajú tiež vytvoriť dvoma spôsobmi: použitím prístupovej metódy nasledovanej znakom = :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
def farba=(farba)&lt;br /&gt;
      @farba=farba&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
alebo kratšie pomocou príkazu attr_writer:&lt;br /&gt;
&lt;br /&gt;
attr_writer:farba&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
Vytvorenie atribútu, ktorý bude čitateľný a zapisovateľný súčasne, nám umožní príkaz attr_accessor:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
class Ovocie&lt;br /&gt;
   attr_accessor:farba&lt;br /&gt;
   def initialize(farba)&lt;br /&gt;
        @farba=farba&lt;br /&gt;
    end&lt;br /&gt;
end&lt;br /&gt;
jablko = Ovocie.new(“cervena“)&lt;br /&gt;
puts “Farba ovocia je “ + jablko.farba  #vypíše “Farba ovocia je cervena“&lt;br /&gt;
jablko.farba=”zelena”&lt;br /&gt;
puts ”Teraz je farba ” + jablko.farba   #vypíše “Teraz je farba zelena“&lt;br /&gt;
&amp;lt;/source&amp;gt;&lt;br /&gt;
===Dedičnosť===&lt;br /&gt;
V Ruby môžeme vytvoriť mnoho tried, pričom niektoré môžu byť základom pre tvorbu ďlaších. V takom prípade hovoríme o dedičnosti, kedy trieda vychádzajúca z inej triedy od tejto dedí všetky členy – dáta aj metódy. Pri definícii triedy Jablko, ktorá má dediť vlatnosti triedy Ovocie, ju definujeme nasledovne:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
class Jablko &amp;lt; Ovocie&lt;br /&gt;
attr_accessor : druh&lt;br /&gt;
   def initialize (farba, druh)&lt;br /&gt;
    super(farba)&lt;br /&gt;
    @druh=druh&lt;br /&gt;
   end&lt;br /&gt;
end&lt;br /&gt;
 &amp;lt;/source&amp;gt;  &lt;br /&gt;
V príklade je použitá špeciálna metóda super vstavaná do jazyka Ruby. Túto používame vtedy, keď chceme poskytnúť farbu konštruktoru základnej triedy.&lt;br /&gt;
&lt;br /&gt;
Metódy triedy sa volajú pomocou mena danej triedy, pred jej použitím nie je potrebné vytvárať žiadny objekt. Toto je výhodné a užitočné najmä v prípadoch, keď nepotrebujeme ukladať dáta, s ktorými pracujeme, keďže v metóde triedy nemožno používať dáta inštancií .&lt;br /&gt;
&lt;br /&gt;
===Vytváranie modulov===&lt;br /&gt;
Pri väčšom počte tried je užitočné zoskupovať ich do modulov. Modul sa vytvára kľúčovým slovom module. Modul s kódom možno vložiť do jedného súboru:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
module Matematika&lt;br /&gt;
   def Matematika.sucet(cislo_jedna, cislo_dva)&lt;br /&gt;
       return cislo_jedna + cislo_dva&lt;br /&gt;
   end&lt;br /&gt;
end&lt;br /&gt;
 &amp;lt;/source&amp;gt; &lt;br /&gt;
Takýto modul uložený napríklad do súboru matematika.rb je možné použiť v iných súboroch príkazom include alebo skráteným príkazom (bez potreby zápisu prípony .rb) require:&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
include `matematika.rb` / require `matematika`&lt;br /&gt;
puts ”2 + 3 = ” + Matematika.sucet(2,3).to_s	      #výstup: “2 + 3 = 5“&lt;br /&gt;
 &amp;lt;/source&amp;gt; &lt;br /&gt;
Do modulov je možné ukladať aj triedy, ktoré môžu obsahovať vlastné metódy. K takýmto metódam vnútri tried modulov sa pristupuje pomocou operátora rozlíšenia oboru názvov jazyka Ruby (::) :&lt;br /&gt;
&amp;lt;source lang=&amp;quot;ruby&amp;quot;&amp;gt;&lt;br /&gt;
module Matematika&lt;br /&gt;
 class Scitac&lt;br /&gt;
   def Scitac.sucet(cislo_jedna, cislo_dva)&lt;br /&gt;
       return cislo_jedna + cislo_dva&lt;br /&gt;
   end&lt;br /&gt;
 end&lt;br /&gt;
end&lt;br /&gt;
&lt;br /&gt;
require `matematika`&lt;br /&gt;
puts ”2 + 3 = ”+ Matematika::Scitac.sucet(2,3).to_s&lt;br /&gt;
 &amp;lt;/source&amp;gt; &lt;br /&gt;
Výsledok bude totožný ako v predošlom príklade.&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Pokro%C4%8Dil%C3%A9_vlastnosti_skiptovac%C3%ADch_jazykov&amp;diff=1300</id>
		<title>Pokročilé vlastnosti skiptovacích jazykov</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Pokro%C4%8Dil%C3%A9_vlastnosti_skiptovac%C3%ADch_jazykov&amp;diff=1300"/>
		<updated>2010-01-20T19:52:41Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Zamyká „Pokročilé vlastnosti skiptovacích jazykov“ ([edit=sysop] (na neurčito) [move=sysop] (na neurčito))&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Bakalárske práce]]&lt;br /&gt;
[[Kategória:Informatika]]&lt;br /&gt;
[[Kategória:Skriptovacie jazyky]]&lt;br /&gt;
&amp;lt;H1_CSS chapter=&amp;quot;1&amp;quot; /&amp;gt;&lt;br /&gt;
&amp;lt;H1_CSS chapter=&amp;quot;1&amp;quot; prefix=&amp;quot;Kapitola&amp;quot; /&amp;gt;&lt;br /&gt;
{{Hlavička_FM|{{PAGENAME}}|Ivana Zuzinová|Ing. Juraj Ďuďák|&lt;br /&gt;
2008/2009&lt;br /&gt;
|Bakalárska práca&lt;br /&gt;
|Mechatronika&lt;br /&gt;
}} &lt;br /&gt;
&amp;lt;div class=&amp;quot;sideBox&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;&amp;quot; border=0 cellpadding=5&lt;br /&gt;
|+ Obsah práce&lt;br /&gt;
|-&lt;br /&gt;
| 1.&lt;br /&gt;
| [[Pokročilé vlastnosti skiptovacích jazykov| Úvod do Ruby on Rails]]&lt;br /&gt;
|-&lt;br /&gt;
| 2.&lt;br /&gt;
| [[Jazyk Ruby]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.&lt;br /&gt;
| [[Porovnanie Ruby a PHP]]&lt;br /&gt;
|-&lt;br /&gt;
| 4&lt;br /&gt;
| [[Framework Ruby on Rails]]&lt;br /&gt;
|-&lt;br /&gt;
| 5&lt;br /&gt;
| [[Praktická aplikácia využívajúca framework Rails]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
{{abstrakt&lt;br /&gt;
|Popis  jazyka Ruby a porovnanie syntaxe Ruby s jazykom PHP. Charakterizácia frameworku Ruby on Rails a jeho základné moduly pre prácu s databázami.  Teoretický popis vytvárania relácií v Rails. Praktická ukážka pomocou zobrazenia rozvrhu podľa zvolených požiadaviek a ukážkový benchmark porovnávajúci  Rails a PHP. Informácie o iných porovnávacích benchmarkoch.&lt;br /&gt;
|Description of  Ruby language and comparision Ruby syntax with syntax of PHP language. Characterization of Ruby on Rails framework and it’s embedded modules working with databases. Theory of creating relations in Rails. Practical use in application showing timetable in dependence on taken conditions. Benchmark Rails vs. PHP and informations about other benchmarks.&lt;br /&gt;
}}&lt;br /&gt;
'''Úvod'''&lt;br /&gt;
&lt;br /&gt;
Informačné technológie zaznamenávajú už od svojho vzniku rýchlo sa meniaci, dynamický rozvoj vo všetkých smeroch, vrátane algoritmizácie a programovacích jazykov, ktorých neustály vývoj súvisí aj s rozmachom internetu, jeho rozširujúcej sa dostupnosti a stále sa zvyšujúcimi požiadavkami na webdeveloperov. &lt;br /&gt;
Aj z týchto príčin hľadajú programátori nové možnosti, ako čo najefektívnejšie programovať aplikácie, č sa dostávajú do pozornosti aj menej známe programovacie jazyky. Určitú pozornosť si získavajú aj frameworky, ktoré sa snažia poskytnúť prehľadnejší kód, skracujúci proces tvorby aplikácií. Populárnejším sa stáva aj framework Ruby on Rails, o ktorom je ale v slovenskom jazyku veľmi málo publikácií. Preto je teoretická časť zameraná na popis jazyka Ruby a frameworku Ruby on Rails, kde podrobnejšie opisujeme prácu Rails s databázami pomocou jeho modulov. V práci sú zahrnuté tiež teoretické informácie o tvorbe relácií medzi tabuľkami, ktoré sa následne využili v praktickej časti.&lt;br /&gt;
Praktická časť má za úlohu prezentovať nadobudnuté informácie o jazyku Ruby a frameworku Rails. Úlohou bolo vytvoriť schému databázových tabuliek školského rozvrhu, ktorá má byť predlohou pre aplikáciu s názvom Rozvrh on Rails. Táto aplikácia má generovať výpis záznamov rozvrhu, zodpovedajúcich zadaným podmienkam vyhľadávania. Poslednou časťou je vytvorenie porovnávacieho testu, kde sa má skúmať rýchlosť vykonania požiadavky aplikáciou &lt;br /&gt;
vytvorenou v jazyku PHP a vo frameworku Rails.&lt;br /&gt;
=Úvod do Ruby on Rails=&lt;br /&gt;
==Pojem Ruby on Rails==&lt;br /&gt;
Ruby on Rails je open-source framework na vytváranie webových aplikácií v jazyku Ruby. Napriek tomu, že Ruby on Rails bol oficiálne spustený len pred nedávnom v roku 2004, odvtedy zaznamenal tento framework obrovský ohlas.  Ruby on Rails, Rails alebo v skratke RoR sa stal z neznámej „hračky“ svetovým fenoménom rekordnou rýchlosťou. Získal mnohé ocenenia,a čo je ešte dôležitejšie, stal sa vhodnou voľbou pre implementáciu širokého okruhu takzvaných Web 2.0 aplikácií. &lt;br /&gt;
&lt;br /&gt;
Dôvodov, prečo je tomu tak, je viacero. V prvom rade tu bolo mnoho vývojárov, ktorí už boli unavení a znechutení z technológií a postupov, ktoré používali pri tvorbe webových aplikácií. Nezáleží na tom, či išlo o Javu, PHP alebo .NET – častokrát mali pocit, že veľká množina ich práce je jednoducho strata času. A zrazu prišiel Rails a ponúkol jednoduchosť a efektivitu. &lt;br /&gt;
&lt;br /&gt;
Rails aplikácie sú písané v Ruby – modernom objektovo-orientovanom skriptovacom jazyku. Ruby je stručný, ale nie nečitateľne strohý, myšlienky sa v ňom dajú vyjadriť prirodzene a jasne. Toto je hlavným dôvodom jednoduchosti písania programov v Ruby, a (čo je nemenej dôležité) programy sú jednoducho čitateľné aj mnoho mesiacov neskôr.&lt;br /&gt;
&lt;br /&gt;
==Čo je framework==&lt;br /&gt;
&lt;br /&gt;
Framework vo všeobecnosti je prostredie, v ktorom je organizovaná určitá ďalšia aplikácia.  Je to súbor knižníc a kódu usporiadaných tak, aby pokrývali čo najviac funkčných požiadaviek spoločných pre rôzne aplikácie. Pri webových aplikáciách to môžu byť napríklad validácia vstupov, prístup k databázi, cachovanie údajov, správa užívateľských práv. Framework má za úlohu ušetriť programátorovi čas tak, aby sa pri vývoji venoval len špecifickým požiadavkám pre aplikáciu, ktorú práve vyvíja, a ktorú nejde zovšeobecniť.&lt;br /&gt;
V súčasnosti sa často využívajú MVC Frameworky. MVC architektúra oddeľuje dáta aplikácie (model), spôsob zobrazenia (view) a spôsob nakladania s modelom (controller). Tieto tri dôležité časti každej aplikácie sú oddelené do samostatných knižníc tak, aby zmena v jednej neovplyvnila ostatné.&lt;br /&gt;
&lt;br /&gt;
Existuje množstvo frameworkov pre rôzne jazyky, pričom medzi najznámejšie patria:&lt;br /&gt;
&amp;lt;properties&amp;gt;&lt;br /&gt;
Ruby = Ruby on Rails, Merb, Nitro, Himle...&lt;br /&gt;
PHP = vyše 40 frameworkov: CakePHP, Zend Framework, ThinkPHP, Symfony...&lt;br /&gt;
Java =   Apache Cocoon, Ext GWT, Flexive, Hamlets, ItsNat, JavaServer Faces...&lt;br /&gt;
Perl = Catalyst, Interchange, Maypole, Mason, Squatting, WebGUI&lt;br /&gt;
Python = CherryPy, DjangoNevow, Pylons, Spyce, TurboGears, Web2py, Zope&lt;br /&gt;
&amp;lt;/properties&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Filozofia Ruby on Rails==&lt;br /&gt;
&lt;br /&gt;
Otázkou ostáva, prečo je Ruby on Rails tak píťažlivé pre programátorov, keď podobný spôsob tvorby webových aplikácií je prezentovaný aj inými frameworkami postavenými na iných jazykoch. Dôvodom je základná filozofia Ruby on Rails, ktorá je alfou a omegou tohto frameworku a spája všetko do harmonického celku. Táto filozofia je zhrnutá do hlavných myšlienok a to:&lt;br /&gt;
&lt;br /&gt;
''DRY (Don’t Repeat Yourself)'' – Neopakuj sa&lt;br /&gt;
&lt;br /&gt;
''Convetion over configuration'' – Konvencia nad konfiguráciou&lt;br /&gt;
&lt;br /&gt;
'''DRY (Don’t Repeat Yourself)''' – Neopakuj sa – Každá duplikácia kódu v programe predlžuje čas strávený programovaním a okrem toho spôsobuje mnoho komplikácií – pri následných úpravách vzniká neprehľadnosť a zvyšuje sa riziko výskytu chýb v kóde. Preto by mal byť každý kód na jedinom mieste. Rails využíva Ruby aby túto myšlienku aplikoval v praxi, preto je duplikácia kódu minimálna.&lt;br /&gt;
&lt;br /&gt;
'''Convention over Configuration''' – Konvencia nad konfiguráciou – Ide o jednu z rozhodujúcich čŕt Ruby on Rails. Hlavným zámerom je, aby programátor nemusel zakaždým písať pre novú aplikáciu ten istý kód, ktorý je konvenčne rovnaký pre drvivú väčšinu aplikácií.  Nasledovaním konvencií tak môže pomocou pár príkazov  jednoducho vytvoriť základnú kostru aplikácie, ktorú potom nakonfiguruje podľa svojich potrieb.&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Kateg%C3%B3ria:Zadanie_DP&amp;diff=1281</id>
		<title>Kategória:Zadanie DP</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Kateg%C3%B3ria:Zadanie_DP&amp;diff=1281"/>
		<updated>2010-01-20T17:38:00Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Vytvorená stránka „Témy zadaných diplomových prác (Fakulta mechatroniky TnUAD Trenčín).“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Témy zadaných diplomových prác (Fakulta mechatroniky TnUAD Trenčín).&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Diplomov%C3%A9_pr%C3%A1ce&amp;diff=1280</id>
		<title>Diplomové práce</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Diplomov%C3%A9_pr%C3%A1ce&amp;diff=1280"/>
		<updated>2010-01-20T17:37:28Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==2009/2010==&lt;br /&gt;
{| class=&amp;quot;wikitable collapsible sortable&amp;quot;  border=1 cellpadding=5 cellspacing=0&lt;br /&gt;
|+ Zoznam diplomových prác&lt;br /&gt;
|- style=&amp;quot;background-color:yellow&amp;quot;&lt;br /&gt;
! Autor&lt;br /&gt;
! Názov práce&lt;br /&gt;
! Stav práce&lt;br /&gt;
! Zadanie&lt;br /&gt;
|-&lt;br /&gt;
|Michal Janíček, Bc.&lt;br /&gt;
|[[Interaktívny simulátor DynaSim]]&lt;br /&gt;
|rozpracovaná&lt;br /&gt;
|[[Interaktívny simulátor DynaSim (Zadanie)|Zadanie DP]]&lt;br /&gt;
|-&lt;br /&gt;
|Peter Loskot, Bc.&lt;br /&gt;
|[[Open source náhrada MS Small Business server 2003 so sharepoint services]]&lt;br /&gt;
|rozpracovaná&lt;br /&gt;
|[[Open source náhrada MS Small Business server 2003 so sharepoint services (Zadanie)|Zadanie DP]]&lt;br /&gt;
|}&lt;br /&gt;
==2008/2009==&lt;br /&gt;
Staršie práce budú pridané.&lt;br /&gt;
&lt;br /&gt;
[[Kategória:Študentské práce]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Open_source_n%C3%A1hrada_MS_Small_Business_server_2003_so_sharepoint_services_(Zadanie)&amp;diff=1278</id>
		<title>Open source náhrada MS Small Business server 2003 so sharepoint services (Zadanie)</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Open_source_n%C3%A1hrada_MS_Small_Business_server_2003_so_sharepoint_services_(Zadanie)&amp;diff=1278"/>
		<updated>2010-01-20T17:37:20Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Zadanie:Open source náhrada MS Small Business server 2003 so sharepoint services premiestnená na Open source náhrada MS Small Business server 2003 so sharepoint services (Zadanie)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Zadanie_DP|Bc. Peter Loskot|Mechatronika|Open source náhrada riešenia MS Small Business server 2003 so sharepoint services&lt;br /&gt;
|#Podrobne analyzujte možnosti MS Small Business Servera 2003 (MS SB server) z pohľadu poskytovaných služieb, ceny, výkonnosti a kompatibility medzi operačnými systémami.&lt;br /&gt;
#Analyzujte možnosti náhrady MS SB servera za open – source riešenia. &lt;br /&gt;
#Zhodnoťte možnosti MS Sharepoint services a navrhnite open source riešenie týchto služieb.&lt;br /&gt;
Implementujte navrhované riešenia pre praktické použitie.&lt;br /&gt;
|#MS Technet, Windows SharePoint Services 3.0, url: http://technet.microsoft.com/sk-sk/library/cc288070%28en-us%29.aspx&lt;br /&gt;
#Kirch, O., Dawson, T., Linux network adminisstrator’s Guide, O’Reilly and Associates 2000.&lt;br /&gt;
|Katedra informatiky, Fakulta mechatroniky, TnUAD&lt;br /&gt;
|Ing. Juraj Ďuďák&lt;br /&gt;
|Ing. Juraj Ďuďák&lt;br /&gt;
|7.10.2009&lt;br /&gt;
|Ing. Ján Žabka, CSc|KI FM TnUAD|prof. doc. Dušan Maga, PhD.&lt;br /&gt;
}}&lt;br /&gt;
[[Kategória:Zadanie DP]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Zadanie:Open_source_n%C3%A1hrada_MS_Small_Business_server_2003_so_sharepoint_services&amp;diff=1279</id>
		<title>Zadanie:Open source náhrada MS Small Business server 2003 so sharepoint services</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Zadanie:Open_source_n%C3%A1hrada_MS_Small_Business_server_2003_so_sharepoint_services&amp;diff=1279"/>
		<updated>2010-01-20T17:37:20Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Zadanie:Open source náhrada MS Small Business server 2003 so sharepoint services premiestnená na Open source náhrada MS Small Business server 2003 so sharepoint services (Zadanie)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#presmeruj [[Open source náhrada MS Small Business server 2003 so sharepoint services (Zadanie)]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Interakt%C3%ADvny_simul%C3%A1tor_DynaSim_(Zadanie)&amp;diff=1276</id>
		<title>Interaktívny simulátor DynaSim (Zadanie)</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Interakt%C3%ADvny_simul%C3%A1tor_DynaSim_(Zadanie)&amp;diff=1276"/>
		<updated>2010-01-20T17:37:14Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Zadanie:Interaktívny simulátor DynaSim premiestnená na Interaktívny simulátor DynaSim (Zadanie)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Zadanie_DP|Bc. Michal Janíček|Mechatronika|Interaktívny simulátor DynaSim&lt;br /&gt;
|#Vytvorte pracovné prostredie (framework) interaktívneho simulátora v jazyku Java založené na popise komponentov vo formáte XML a SVG.&lt;br /&gt;
#Framework bude umožňovať tvorbu simulačných schém, ich uloženie a nahratie, náhľad schémy a základnú konfiguráciu vzhľadu rozhrania.&lt;br /&gt;
#Vytvorte špecifikáciu rozhrania pre implementáciu:&lt;br /&gt;
##základných komponentov simulátora (komponent bez GUI a s GUI)&lt;br /&gt;
##simulačných algoritmov&lt;br /&gt;
#Na základe vytvorenej špecifikácie implementujte základnú množinu simulačných komponentov a jednoduchý simulačný algoritmus simulácie v diskrétnom čase.&lt;br /&gt;
|#Bruce Eckel, Thinking in Java, Prentice HALL PTR, ISBN 0-13-659723-8, 1998&lt;br /&gt;
#Netbeans.org, NetBeans platform, url: http://platform.netbeans.org/&lt;br /&gt;
|Katedra informatiky, Fakulta mechatroniky, TnUAD&lt;br /&gt;
|Ing. Juraj Ďuďák&lt;br /&gt;
|RNDr. Peter Fabo, PhD.&lt;br /&gt;
|7.10.2009&lt;br /&gt;
|Ing. Ján Žabka, CSc|KI FM TnUAD|prof. doc. Dušan Maga, PhD.&lt;br /&gt;
}}&lt;br /&gt;
[[Kategória:Zadanie DP]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Zadanie:Interakt%C3%ADvny_simul%C3%A1tor_DynaSim&amp;diff=1277</id>
		<title>Zadanie:Interaktívny simulátor DynaSim</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Zadanie:Interakt%C3%ADvny_simul%C3%A1tor_DynaSim&amp;diff=1277"/>
		<updated>2010-01-20T17:37:14Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Zadanie:Interaktívny simulátor DynaSim premiestnená na Interaktívny simulátor DynaSim (Zadanie)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#presmeruj [[Interaktívny simulátor DynaSim (Zadanie)]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Open_source_n%C3%A1hrada_MS_Small_Business_server_2003_so_sharepoint_services_(Zadanie)&amp;diff=1275</id>
		<title>Open source náhrada MS Small Business server 2003 so sharepoint services (Zadanie)</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Open_source_n%C3%A1hrada_MS_Small_Business_server_2003_so_sharepoint_services_(Zadanie)&amp;diff=1275"/>
		<updated>2010-01-20T17:36:15Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Zadanie_DP|Bc. Peter Loskot|Mechatronika|Open source náhrada riešenia MS Small Business server 2003 so sharepoint services&lt;br /&gt;
|#Podrobne analyzujte možnosti MS Small Business Servera 2003 (MS SB server) z pohľadu poskytovaných služieb, ceny, výkonnosti a kompatibility medzi operačnými systémami.&lt;br /&gt;
#Analyzujte možnosti náhrady MS SB servera za open – source riešenia. &lt;br /&gt;
#Zhodnoťte možnosti MS Sharepoint services a navrhnite open source riešenie týchto služieb.&lt;br /&gt;
Implementujte navrhované riešenia pre praktické použitie.&lt;br /&gt;
|#MS Technet, Windows SharePoint Services 3.0, url: http://technet.microsoft.com/sk-sk/library/cc288070%28en-us%29.aspx&lt;br /&gt;
#Kirch, O., Dawson, T., Linux network adminisstrator’s Guide, O’Reilly and Associates 2000.&lt;br /&gt;
|Katedra informatiky, Fakulta mechatroniky, TnUAD&lt;br /&gt;
|Ing. Juraj Ďuďák&lt;br /&gt;
|Ing. Juraj Ďuďák&lt;br /&gt;
|7.10.2009&lt;br /&gt;
|Ing. Ján Žabka, CSc|KI FM TnUAD|prof. doc. Dušan Maga, PhD.&lt;br /&gt;
}}&lt;br /&gt;
[[Kategória:Zadanie DP]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Interakt%C3%ADvny_simul%C3%A1tor_DynaSim_(Zadanie)&amp;diff=1274</id>
		<title>Interaktívny simulátor DynaSim (Zadanie)</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Interakt%C3%ADvny_simul%C3%A1tor_DynaSim_(Zadanie)&amp;diff=1274"/>
		<updated>2010-01-20T17:36:12Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Zadanie_DP|Bc. Michal Janíček|Mechatronika|Interaktívny simulátor DynaSim&lt;br /&gt;
|#Vytvorte pracovné prostredie (framework) interaktívneho simulátora v jazyku Java založené na popise komponentov vo formáte XML a SVG.&lt;br /&gt;
#Framework bude umožňovať tvorbu simulačných schém, ich uloženie a nahratie, náhľad schémy a základnú konfiguráciu vzhľadu rozhrania.&lt;br /&gt;
#Vytvorte špecifikáciu rozhrania pre implementáciu:&lt;br /&gt;
##základných komponentov simulátora (komponent bez GUI a s GUI)&lt;br /&gt;
##simulačných algoritmov&lt;br /&gt;
#Na základe vytvorenej špecifikácie implementujte základnú množinu simulačných komponentov a jednoduchý simulačný algoritmus simulácie v diskrétnom čase.&lt;br /&gt;
|#Bruce Eckel, Thinking in Java, Prentice HALL PTR, ISBN 0-13-659723-8, 1998&lt;br /&gt;
#Netbeans.org, NetBeans platform, url: http://platform.netbeans.org/&lt;br /&gt;
|Katedra informatiky, Fakulta mechatroniky, TnUAD&lt;br /&gt;
|Ing. Juraj Ďuďák&lt;br /&gt;
|RNDr. Peter Fabo, PhD.&lt;br /&gt;
|7.10.2009&lt;br /&gt;
|Ing. Ján Žabka, CSc|KI FM TnUAD|prof. doc. Dušan Maga, PhD.&lt;br /&gt;
}}&lt;br /&gt;
[[Kategória:Zadanie DP]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Platforma_JavaFX_pre_modern%C3%A9_webov%C3%A9_aplik%C3%A1cie&amp;diff=1273</id>
		<title>Platforma JavaFX pre moderné webové aplikácie</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Platforma_JavaFX_pre_modern%C3%A9_webov%C3%A9_aplik%C3%A1cie&amp;diff=1273"/>
		<updated>2010-01-20T17:33:49Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;[[Kategória:Študentské práce]]&lt;br /&gt;
[[Kategória:Ročníkové práce]]&lt;br /&gt;
[[Kategória:Informatika]]&lt;br /&gt;
[[Kategória:Java]]&lt;br /&gt;
&amp;lt;H1_CSS chapter=&amp;quot;1&amp;quot; prefix=&amp;quot;Kapitola&amp;quot; /&amp;gt;&lt;br /&gt;
{{Hlavička_KI&lt;br /&gt;
|{{PAGENAME}}|Bc. Martin Vaško|Ing. Juraj Ďuďák&lt;br /&gt;
|2009/2010&lt;br /&gt;
|Ročníková práca&lt;br /&gt;
|Mechatronika&lt;br /&gt;
}}&lt;br /&gt;
&amp;lt;div class=&amp;quot;sideBox&amp;quot;&amp;gt;&lt;br /&gt;
{| class=&amp;quot;&amp;quot; border=0 cellpadding=5&lt;br /&gt;
|+ Obsah práce&lt;br /&gt;
|-&lt;br /&gt;
| 1.&lt;br /&gt;
| [[Platforma JavaFX pre moderné webové aplikácie|Čo je JavaFX]]&lt;br /&gt;
|-&lt;br /&gt;
| 2.&lt;br /&gt;
| [[JavaFX 1.2]]&lt;br /&gt;
|-&lt;br /&gt;
| 3.&lt;br /&gt;
| [[Tvorba JavaFX aplikácie]]&lt;br /&gt;
|}&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
{{abstrakt&lt;br /&gt;
|Popis technológie JavaFX,  jej možnosti uplatnenia v praxi, porovnanie s inými podobnými technológiami. JavaFX ako objektovo orientovaný multiplatformný programovací jazyk, využívaný pri tvorbe aplikácií ovládania mobilných telefónov až po vytváranie web-aplikácií. Vlastnosti technológie JavaFX vo verzii 1.2, jej výhody aj nevýhody. Spolupráca s databázami a webovými službami. Vytvorenie webovej aplikácie prístupu na rozvrh FM využívajúcej MySQL databázu.&lt;br /&gt;
|&lt;br /&gt;
}}&lt;br /&gt;
'''Úvod'''&lt;br /&gt;
&lt;br /&gt;
Spoločnosť SUN, aby sa udržala na trhu, bola nútená oživiť aplikáciu Appletov (relatívne jednoduchá aplikácia, ktorá sa spúšťa z WWW prehliadača - browsera). Za touto revitalizáciou stojí práve JavaFX, ktorej web verzia potrebuje pre svoj beh hostiteľský kontajner a Applety.  Dva z najpálčivejších problémov appletov sú rýchlosť štartu a nutnosť nainštalovaného JRE. &lt;br /&gt;
Problém, respektíve nutnosť nainštalovaného kontajneru riešil aj Flash, a ako sa zdá, stačilo iba okresať veľkosť inštalačného balíčku pod 3MB. S veľkosťou samotného JRE súvisí aj to, aký rýchly bude jeho štart, preto SUN chystá takzvanú Consumer JRE, ktorá bude „orezanejšia“ a ďalšiu funkčnosť bude možné pridať formou modulov.&lt;br /&gt;
Ako je vidieť, sú tu technologické prostriedky pre odstránenie najhorúcejších problémov Appletov. Otázkou zostáva, či sa podarí odstrániť problém v rovine sociálnej, čo znamená, že Applety nie sú tak dôveryhodnou technológiou ako napríklad už spomínaný Flash. Technologický pokrok je prvým malým krôčikom k tomu, aby užívatelia sa začali na Applety pozerať trochu inak.&lt;br /&gt;
&lt;br /&gt;
=Čo je JavaFX=&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Kateg%C3%B3ria:Zadanie_BP&amp;diff=1272</id>
		<title>Kategória:Zadanie BP</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Kateg%C3%B3ria:Zadanie_BP&amp;diff=1272"/>
		<updated>2010-01-20T17:33:15Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Témy zadaných bakalárskych prác (Fakulta mechatroniky TnUAD Trenčín).&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Kateg%C3%B3ria:Zadanie_RP&amp;diff=1271</id>
		<title>Kategória:Zadanie RP</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Kateg%C3%B3ria:Zadanie_RP&amp;diff=1271"/>
		<updated>2010-01-20T17:33:01Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Vytvorená stránka „Zoznam zadaných ročníkových tém (Fakulta mechatroniky TnUAD Trenčín).“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Zoznam zadaných ročníkových tém (Fakulta mechatroniky TnUAD Trenčín).&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Platforma_JavaFX_pre_modern%C3%A9_webov%C3%A9_aplik%C3%A1cie_(Zadanie)&amp;diff=1270</id>
		<title>Platforma JavaFX pre moderné webové aplikácie (Zadanie)</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Platforma_JavaFX_pre_modern%C3%A9_webov%C3%A9_aplik%C3%A1cie_(Zadanie)&amp;diff=1270"/>
		<updated>2010-01-20T17:32:16Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Zadanie_RP|Bc. Martin Vaško|Mechatronika|Platforma JavaFX pre moderné webové aplikácie|&lt;br /&gt;
#Popíšte vlastnosti aktuálnej verzie technológie JavaFX pre rôzne softvérové platformy.&lt;br /&gt;
#Popíšte možnosti interoperability jazyka JavaFX s inými používanými technológiami.&lt;br /&gt;
#V jazyku JavaFX vytvorte aplikáciu, ktorá bude zobrazovať rozvrh FM.|&lt;br /&gt;
# Bruce Eckel, Thinking in Java, Prentice HALL PTR, ISBN 0-13-659723-8, 1998&lt;br /&gt;
# Jim Weaver, A JavaFX Script Programming Language Tutorial, url: &amp;lt;nowiki&amp;gt;http://developers.sun.com/learning/javaoneonline/2008/pdf/TS-4794.pdf&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Jim Weaver, Jim Weaver’s JavaFX blog, url: http://learnjavafx.typepad.com/&lt;br /&gt;
|Katedra informatiky, Fakulta mechatroniky, TnUAD&lt;br /&gt;
|Ing. Juraj Ďuďák&lt;br /&gt;
|Ing. Juraj Ďuďák&lt;br /&gt;
|7.10.2009&lt;br /&gt;
|Ing. Ján Žabka, CSc|KI FM TnUAD&lt;br /&gt;
}}&lt;br /&gt;
[[Kategória:Zadanie RP]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Framework_%22Ruby_on_Rails%22_a_web_2.0_(Zadanie)&amp;diff=1269</id>
		<title>Framework &quot;Ruby on Rails&quot; a web 2.0 (Zadanie)</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Framework_%22Ruby_on_Rails%22_a_web_2.0_(Zadanie)&amp;diff=1269"/>
		<updated>2010-01-20T17:32:13Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Zadanie_RP|Bc. Ivana Zuzinová|Mechatronika|Framework &amp;quot;Ruby on Rails&amp;quot; a web 2.0|&lt;br /&gt;
#Popíšte filozofiu webových aplikácií „web 2.0“.&lt;br /&gt;
#Oboznámte sa s možnosťami frameworku Ruby on Rails (RoR) v oblasti web 2.0&lt;br /&gt;
#Oboznámte sa s problematikou webových služieb vo frameworku RoR.&lt;br /&gt;
#Implementujte vybrané programovacie techniky v systéme rozvrhu fakulty mechatroniky TnUAD.&lt;br /&gt;
|#Ruby, S., Dave, T., Agile web development with Rails, The pragmatic Bookshelf, ISBN-10: 1-934356-16-6, 2008&lt;br /&gt;
#Fernandez, O.,: The Rails Way, 2007, Boston, ISBN 0-321-44561-9&lt;br /&gt;
|Katedra informatiky, Fakulta mechatroniky, TnUAD&lt;br /&gt;
|Ing. Juraj Ďuďák&lt;br /&gt;
|Ing. Juraj Ďuďák&lt;br /&gt;
|7.10.2009&lt;br /&gt;
|Ing. Ján Žabka, CSc|KI FM TnUAD&lt;br /&gt;
}}&lt;br /&gt;
[[Kategória:Zadanie RP]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Open_Project_Management_ako_Java_Enterprise_aplik%C3%A1cia_(Zadanie)&amp;diff=1268</id>
		<title>Open Project Management ako Java Enterprise aplikácia (Zadanie)</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Open_Project_Management_ako_Java_Enterprise_aplik%C3%A1cia_(Zadanie)&amp;diff=1268"/>
		<updated>2010-01-20T17:32:09Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Zadanie_RP|Bc. Martin Starosta|Mechatronika|Open Project Management ako Java Enterprise aplikácia|&lt;br /&gt;
#Popíšte úlohy systému pre manažovanie projektov (project management)&lt;br /&gt;
#Porovnajte vlastnosti existujúcich softvérových produktov v oblasti project management.&lt;br /&gt;
#Navrhnite vnútornú štruktúru systému (databázovú schému) pre manažovanie projektov.&lt;br /&gt;
#Nad navrhnutou databázovou schémou vytvorte používateľské rozhranie. &lt;br /&gt;
|#Bruce Eckel, Thinking in Java, Prentice HALL PTR, ISBN 0-13-659723-8, 1998&lt;br /&gt;
#Donald E. Knuth, The Art of Computer Programming, Volumes 1–4, Addison-Wesley Professional&lt;br /&gt;
|Katedra informatiky, Fakulta mechatroniky, TnUAD&lt;br /&gt;
|Ing. Juraj Ďuďák&lt;br /&gt;
|Ing. Juraj Ďuďák&lt;br /&gt;
|7.10.2009&lt;br /&gt;
|Ing. Ján Žabka, CSc|KI FM TnUAD&lt;br /&gt;
}}&lt;br /&gt;
[[Kategória:Zadanie RP]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Ro%C4%8Dn%C3%ADkov%C3%A9_pr%C3%A1ce&amp;diff=1267</id>
		<title>Ročníkové práce</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Ro%C4%8Dn%C3%ADkov%C3%A9_pr%C3%A1ce&amp;diff=1267"/>
		<updated>2010-01-20T17:31:23Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;==2009/2010==&lt;br /&gt;
{| class=&amp;quot;wikitable sortable&amp;quot;  border=1 cellpadding=5 cellspacing=0&lt;br /&gt;
|+ Zoznam ročníkových prác&lt;br /&gt;
|- style=&amp;quot;background-color:yellow&amp;quot;&lt;br /&gt;
! Autor&lt;br /&gt;
! Názov práce&lt;br /&gt;
! Stav práce&lt;br /&gt;
! Zadanie&lt;br /&gt;
|-&lt;br /&gt;
|Bc. Martin Starosta&lt;br /&gt;
|[[Open Project Management ako Java Enterprise aplikácia]]&lt;br /&gt;
|rozpracovaná&lt;br /&gt;
|[[Open Project Management ako Java Enterprise aplikácia (Zadanie)|Zadanie RP]]&lt;br /&gt;
|-&lt;br /&gt;
|Bc. Ivana Zuzinová&lt;br /&gt;
|[[Framework &amp;quot;Ruby on Rails&amp;quot; a web 2.0]]&lt;br /&gt;
|rozpracovaná&lt;br /&gt;
|[[Framework &amp;quot;Ruby on Rails&amp;quot; a web 2.0 (Zadanie)|Zadanie RP]]&lt;br /&gt;
|-&lt;br /&gt;
|Bc. Martin Vaško&lt;br /&gt;
|[[Platforma JavaFX pre moderné webové aplikácie]]&lt;br /&gt;
|rozpracovaná&lt;br /&gt;
|[[Platforma JavaFX pre moderné webové aplikácie (Zadanie)|Zadanie RP]]&lt;br /&gt;
|}&lt;br /&gt;
==2008/2009==&lt;br /&gt;
Staršie práce budú pridané.&lt;br /&gt;
&lt;br /&gt;
[[Kategória:Študentské práce]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Platforma_JavaFX_pre_modern%C3%A9_webov%C3%A9_aplik%C3%A1cie_(Zadanie)&amp;diff=1265</id>
		<title>Platforma JavaFX pre moderné webové aplikácie (Zadanie)</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Platforma_JavaFX_pre_modern%C3%A9_webov%C3%A9_aplik%C3%A1cie_(Zadanie)&amp;diff=1265"/>
		<updated>2010-01-20T17:30:45Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Zadanie:Platforma JavaFX pre moderné webové aplikácie premiestnená na Platforma JavaFX pre moderné webové aplikácie (Zadanie)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Zadanie_RP|Bc. Martin Vaško|Mechatronika|Platforma JavaFX pre moderné webové aplikácie|&lt;br /&gt;
#Popíšte vlastnosti aktuálnej verzie technológie JavaFX pre rôzne softvérové platformy.&lt;br /&gt;
#Popíšte možnosti interoperability jazyka JavaFX s inými používanými technológiami.&lt;br /&gt;
#V jazyku JavaFX vytvorte aplikáciu, ktorá bude zobrazovať rozvrh FM.|&lt;br /&gt;
# Bruce Eckel, Thinking in Java, Prentice HALL PTR, ISBN 0-13-659723-8, 1998&lt;br /&gt;
# Jim Weaver, A JavaFX Script Programming Language Tutorial, url: &amp;lt;nowiki&amp;gt;http://developers.sun.com/learning/javaoneonline/2008/pdf/TS-4794.pdf&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
# Jim Weaver, Jim Weaver’s JavaFX blog, url: http://learnjavafx.typepad.com/&lt;br /&gt;
|Katedra informatiky, Fakulta mechatroniky, TnUAD&lt;br /&gt;
|Ing. Juraj Ďuďák&lt;br /&gt;
|Ing. Juraj Ďuďák&lt;br /&gt;
|7.10.2009&lt;br /&gt;
|Ing. Ján Žabka, CSc|KI FM TnUAD&lt;br /&gt;
}}&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Zadanie:Platforma_JavaFX_pre_modern%C3%A9_webov%C3%A9_aplik%C3%A1cie&amp;diff=1266</id>
		<title>Zadanie:Platforma JavaFX pre moderné webové aplikácie</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Zadanie:Platforma_JavaFX_pre_modern%C3%A9_webov%C3%A9_aplik%C3%A1cie&amp;diff=1266"/>
		<updated>2010-01-20T17:30:45Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Zadanie:Platforma JavaFX pre moderné webové aplikácie premiestnená na Platforma JavaFX pre moderné webové aplikácie (Zadanie)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#presmeruj [[Platforma JavaFX pre moderné webové aplikácie (Zadanie)]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Framework_%22Ruby_on_Rails%22_a_web_2.0_(Zadanie)&amp;diff=1263</id>
		<title>Framework &quot;Ruby on Rails&quot; a web 2.0 (Zadanie)</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Framework_%22Ruby_on_Rails%22_a_web_2.0_(Zadanie)&amp;diff=1263"/>
		<updated>2010-01-20T17:30:38Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Zadanie:Framework &amp;quot;Ruby on Rails&amp;quot; a web 2.0 premiestnená na Framework &amp;quot;Ruby on Rails&amp;quot; a web 2.0 (Zadanie)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;{{Zadanie_RP|Bc. Ivana Zuzinová|Mechatronika|Framework &amp;quot;Ruby on Rails&amp;quot; a web 2.0|&lt;br /&gt;
#Popíšte filozofiu webových aplikácií „web 2.0“.&lt;br /&gt;
#Oboznámte sa s možnosťami frameworku Ruby on Rails (RoR) v oblasti web 2.0&lt;br /&gt;
#Oboznámte sa s problematikou webových služieb vo frameworku RoR.&lt;br /&gt;
#Implementujte vybrané programovacie techniky v systéme rozvrhu fakulty mechatroniky TnUAD.&lt;br /&gt;
|#Ruby, S., Dave, T., Agile web development with Rails, The pragmatic Bookshelf, ISBN-10: 1-934356-16-6, 2008&lt;br /&gt;
#Fernandez, O.,: The Rails Way, 2007, Boston, ISBN 0-321-44561-9&lt;br /&gt;
|Katedra informatiky, Fakulta mechatroniky, TnUAD&lt;br /&gt;
|Ing. Juraj Ďuďák&lt;br /&gt;
|Ing. Juraj Ďuďák&lt;br /&gt;
|7.10.2009&lt;br /&gt;
|Ing. Ján Žabka, CSc|KI FM TnUAD&lt;br /&gt;
}}&lt;br /&gt;
[[Kategória:Kiwiki]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
	<entry>
		<id>http://www.kiwiki.info/index.php?title=Zadanie:Framework_%22Ruby_on_Rails%22_a_web_2.0&amp;diff=1264</id>
		<title>Zadanie:Framework &quot;Ruby on Rails&quot; a web 2.0</title>
		<link rel="alternate" type="text/html" href="http://www.kiwiki.info/index.php?title=Zadanie:Framework_%22Ruby_on_Rails%22_a_web_2.0&amp;diff=1264"/>
		<updated>2010-01-20T17:30:38Z</updated>

		<summary type="html">&lt;p&gt;WikiSysop: Zadanie:Framework &amp;quot;Ruby on Rails&amp;quot; a web 2.0 premiestnená na Framework &amp;quot;Ruby on Rails&amp;quot; a web 2.0 (Zadanie)&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;#presmeruj [[Framework &amp;quot;Ruby on Rails&amp;quot; a web 2.0 (Zadanie)]]&lt;/div&gt;</summary>
		<author><name>WikiSysop</name></author>
		
	</entry>
</feed>