České vysoké učení technické v Praze Fakulta elektrotechnická Katedra počítačové grafiky a interakcí
Bakalářská práce
Nástroj pro sběr experimentálních dat v prostředí webu Martin Kohout
Vedoucí práce: Ing. Adam Sporka, Ph.D.
Studijní program: Softwarové technologie a management, Bakalářský Obor: Web a multimédia 18. května 2011
Prohlášení Prohlašuji, že jsem práci vypracoval samostatně a použil jsem pouze podklady uvedené v přiloženém seznamu. Nemám závažný důvod proti užití tohoto školního díla ve smyslu §60 Zákona č. 121/2000 Sb., o právu autorském, o právech souvisejících s právem autorským a o změně některých zákonů (autorský zákon).
V Praze dne 22. 5. 2011
………………………………………………………………...
Abstract A subject of the graduation theses dealt with an applied implementation of a data collection within web sites environment. The method is based on similar systems that are known already, however is focused on users (target group) of the web sides who are working on the higher level within the web environment. A web application that facilitates specifications of stimuli for the users and web distribution and collection of feedbacks of the users is a result (main purpose) of the graduation theses, as well as implementation of assorted researches aimed at big quantity users over of the world.
Abstrakt Bakalářská práce se zabývá návrhem a praktickou realizací webové aplikace pro sběr experimentálních dat v prostředí webu. Systém je základní podstatou podobný obdobným systémům, avšak jeho cílovou skupinou uživatelů jsou především expertní uživatelé. Výsledkem práce je webová aplikace, která umožňuje specifikaci stimulů pro uživatele, jejich webovou distribuci a sběr odezvy od uživatelů tohoto systému. Hlavním přínosem práce je realizace nejrůznějších průzkumů zaměřených díky internetu na velké množství testovaných uživatelů z celého světa.
Obsah 1
Úvod ............................................................................................................................... 1
2
Popis problému, specifikace cíle .................................................................................... 3 2.1.
3
Exitující implementace............................................................................................ 6
2.1.1.
Vyplňto.cz ........................................................................................................... 7
2.1.2.
SurveyMonkey.com............................................................................................. 9
Analýza a návrh řešení ................................................................................................. 11 3.1.
Implementační metody a technologie ................................................................... 15
4
Realizace....................................................................................................................... 17
5
Testování ...................................................................................................................... 21
6
Závěr ............................................................................................................................. 23
A
Seznam použitých zkratek ............................................................................................ 27
B
Instalační a uživatelská příručka .................................................................................. 29 B.1
Instalace systému ................................................................................................... 29
B.2
Spuštění a ovládání systému .................................................................................. 30
Seznam obrázků Obrázek 2.1: Náhled na stránku vyplňto.cz ........................................................................... 8 Obrázek 2.2: Definice otázky v systému vyplňto.cz ............................................................. 9 Obrázek 2.3: Náhled na stránku surveymonkey.com .......................................................... 10 Obrázek 3.4: Použitý dvousloupcový layout stránky .......................................................... 12 Obrázek B.5: Přihlašovací obrazovka do webové aplikace ................................................. 30 Obrázek B.6: Uživatelská část rozhraní webové aplikace ................................................... 31 Obrázek B.7: Administrační část rozhraní webové aplikace ............................................... 32 Obrázek B.8: Ukázka testu ve webové aplikaci .................................................................. 34
Seznam tabulek Tabulka 3.1: Podpora
elementu v prohlížečích ..................................................... 15 Tabulka 3.2: Video kodeky podporované v nadcházejících verzích prohlížečů ................. 15 Tabulka B.3: Přehled použitelných příkazů a hodnot INI souboru ..................................... 35
Kapitola 1
Úvod V současné době existuje několik webových systémů, které se zaměřují na vytváření různých univerzálních dotazníků, které jsou po vytvoření pomocí webového systému distribuovány internetem dalším uživatelům. Většina těchto systémů je tak určena pro velmi široké spektrum uživatelů. Jelikož mezi uživateli počítačů a internetu převládají spíše ti, co využívají počítač a internet k běžné kancelářské práci či zábavě, jsou pro ně podle toho přizpůsobeny tyto systémy i z pohledu nabízených funkcí. Výsledný systém této práce je z tohoto důvodu dle zadání zaměřen především na expertní uživatele z pohledu administrátorů a správců systému, tj. zejména uživatele zakládající jednotlivé dotazníky a spravující celý systém. Jelikož tito uživatelé preferují především jednoduchost a rychlost, je dalším požadavkem zadání vytvoření jednotlivých dotazníků pomocí dat zadaných do konfiguračního souboru. Celý test je vytvořen z jednotlivých stimulů, ke kterým je jako další požadavek možné přiřadit nejrůznější druhy multimédií jako například obrázek, zvukový soubor či video. Požadavkem na systém je rozeznání třech uživatelských práv – administrátora, registrovaného uživatele a anonymního uživatele. Dále je požadována možnost distribuce vytvořených testů uživatelům pomocí URL odkazů, které uživatele přesměrují na webový systém, ve kterém daný test vyplní a systém zadaná data zaznamená pro další zpracování jako je export do formátu CSV, který umožňuje tyto data zpracovávat pomocí tabulkových procesorů. Díky této koncepci je systém vhodný zejména ke vzdálenému a kvantitativnímu testování osob. Toto zadání bakalářské práce jsem si vybral z důvodu velkého zájmu o webové technologie a o tvorbu dynamických webových stránek. Dalším důvodem byl při výběru tématu bakalářské práce zájem o problematiku testování uživatelů obecně a uživatelských rozhraní. Vzhledem k tomu, že zadání splňovalo oba dva důvody, které spolu velmi souvisely, neboť jde v podstatě o testování uživatelů pomocí webového systému, bylo toto zadání pro mě zajímavé a atraktivní. Navíc dle zadání měl systém využívat různé metody a postupy, se kterými jsem se ještě nesetkal jako například využívání konfiguračního souboru pro zadání dat a následné generování dotazníku.
1
2
Kapitola 2
Popis problému, specifikace cíle Řešeným problémem bylo vytvoření webové aplikace, která umožňuje tvorbu dotazníků, resp. testů pomocí jednotlivých stimulů a získání uživatelské odezvy na tyto testy. Cílem bylo umožnit expertním uživatelům v podobě administrátorů snadnou a rychlou práci s aplikací, klasickým uživatelům nabídnout příjemné a jednoduché uživatelské rozhraní a poskytnout funkce, které obdobně zaměřené systémy nenabízejí. Aby tyto cíle bylo možné naplnit, bylo potřeba vzít v potaz několik následujících důležitých bodů.
Specifikace uživatelských práv, autorizace a autentizace uživatelů. Aplikace měla umožňovat rozlišovat několik druhů uživatelských práv. Právo administrátor, které umožňuje administrátorovi systému přidávat a odebírat nové testy, získat na test odkaz a následně ho distribuovat uživatelům nebo exportovat již získaná data do formátu CSV (1), s kterým lze dále pracovat, například v tabulkových procesorech jako je velmi populární Microsoft Excel nebo v podobných produktech různých kancelářských balíků jako je třeba Open Office. Dalším právem je registrovaný uživatel, kterému je umožněno se přihlásit do systému, spravovat zde jeho kontaktní a přihlašovací informace a vyplňovat jednotlivé testy, ke kterým mu byl umožněn přístup pomocí odkazu. V případě, že se uživatel z nějakého důvodu nechce zaregistrovat do systému, je mu umožněn přístup pomocí anonymního vstupu. Anonymní vstup neumožňuje správu údajů a administrátor nemá možnost daného uživatele například později kontaktovat z důvodu zaslání nabídky účasti v dalším výzkumu.
Jednoduchý a přehledný vzhled aplikace. Pro uživatele je vzhled aplikace velmi důležitý, neboť několik prvních vteřin jeho návštěvy rozhoduje, zda na stránce setrvá nebo stránku opustí. Z tohoto důvodu bylo voleno jednoduché rozvržení stránek s příjemnou kombinací barev pro snadnou čitelnost textu. V levé části uživatel najde navigaci s informačním panelem a zbylá část stránky slouží pro zobrazení samotného obsahu.
3
Nedílnou součástí vzhledu aplikace je i navigační struktura. Cílem tohoto požadavku je uživateli nabídnout přehlednou navigační strukturu, v které se bude rychle orientovat. Každé přístupové právo má rozdílnou navigační strukturu, resp. obsah navigační struktury s výjimkou anonymního uživatele, kterému žádná navigační struktura nabídnuta není.
Rychlá specifikace dotazníků, resp. testů pro expertní uživatele. Většina obdobných systémů využívá definování jednotlivých testů pomocí uživatelského rozhraní, v kterém uživatel určuje pomocí formulářových prvků, které elementy budou v dotazníku zobrazeny. V některých případech je toto ovládání zbytečně složité, nemluvě o komplikované editaci již vytvořeného testu. V tomto systému je snahou těmto problémům předejít a proto byl zvolen způsob, který je rychlý a příjemný, avšak spíše pro expertní uživatele. Specifikace jednotlivých stimulů a testů měla probíhat pomocí textového konfiguračního souboru, v kterém je přesně stanovena syntaxe pro jednotlivé elementy, které mají být zobrazeny. Editace je v tomto případě snadná, stačí upravit zdrojový soubor daného testu.
Možnost k jednotlivým stimulům dotazníků definovat multimediální obsah. Oproti ostatním obdobným systémům bylo požadováno u každého stimulu nadefinovat multimediální obsah, jako je například zvukový záznam, video či obrázek. Multimediální obsah může být umístěn přímo na serveru společně s webovým systémem nebo může být vložen z ostatních webových služeb jako je například www.youtube.com, což je webová aplikace pro online streamování videa nebo z www.soundcloud.com, tedy z webové aplikace pro nahrávání a streamování zvukových souborů.
Volba druhů odpovědí pro jednotlivé stimuly. Ke každému stimulu by mělo být možné nadefinovat druh odpovědi, který se od uživatele očekává. Je možné volit krátkou textovou odpověď, delší textovou odpověď, jednu z mnoha odpovědí nebo volbu několika možností. Dále je možné zvolit již předdefinované možnosti odpovědi, které se nejčastěji používají.
Možnost exportu získaných dat. Systém měl umožňovat export získaných dat od uživatelů přímo do externího souboru ve formátu CSV, který je možné dále zpracovávat například v externích tabulkových procesorech a získat tak z dat různé grafy, statistiky atd.
4
Možnost náhledu testu před distribucí uživatelům. Vzhledem k tomu, že definování testů probíhá pomocí textového konfiguračního souboru a není možný průběžný náhled na dotazník, resp. test, systém měl umožňovat tzv. pilotní test dotazníku před samotnou distribucí testu uživatelům, při kterém by bylo možné test zkontrolovat a zjistit případné nedostatky, aniž by se zadané hodnoty zapsaly do systému.
Zobrazení aplikace ve většině moderních internetových prohlížečů bez závislosti na typu operačního systému. Aplikace by měla být rychle zobrazitelná a dostupná z jakéhokoliv počítače s přístupem na internet a nainstalovaným internetovým prohlížečem.
Po jednoznačném určení cílů této práce bylo důležitou součástí vyhledání obdobných existujících systémů, zjištění na jakém principu fungují a nalezení chyb či nedostatků v těchto systémech, které mohou uživateli znepříjemňovat práci s nimi. Po nalezení těchto chyb bylo důležité analyzovat jejich závažnost a seřadit je dle priorit. Nejzávažnějším nedostatkem těchto systémů byla komplikovaná obsluha zejména při tvorbě jednotlivých dotazníků, resp. testů. Tomuto jsme se snažili vyhnout pomocí specifikace dotazníku externím souborem. Získání názorů a představ o jednotlivých funkcích a struktuře vzhledu budoucích potencionálních uživatelů systému bylo velmi důležité pro správný návrh vzhledu a představě o vlastní funkčnosti systému. Ze získaných informací bylo usouzeno, že systém bude obsahovat několik druhů přístupových práv, resp. autorizace a samozřejmě také autentizaci uživatele. Pokud hovoříme o autentizaci, tak máme na mysli rozpoznání jednotlivých uživatelů, tedy kdo je kdo. V opačném případě, pokud hovoříme o autorizaci, máme na mysli přidělení určitých přístupových práv uživateli, tedy, co smí daný uživatel v systému vykonávat za činnost. Konkrétně v systému byly zvoleny tři úrovně uživatelských práv. Pro zaregistrované uživatele úrovně administrátor a participant (tj. uživatel vykonávající test). Pro neregistrovaného uživatele úroveň práv anonymní uživatel, resp. anonymní participant, který má práva omezena pouze na vyplnění dotazníku, ke kterému získá odkaz pro přístup. Dalším nezbytným krokem byl návrh uživatelského rozhraní a vzhledu aplikace tak, aby byla příjemná pro práci administrátorů, kteří budou přidávat jednotlivé testy do systému nebo exportovat data získaná od uživatelů z jednotlivých testů, popřípadě, aby se
5
jim jednoduše vyhledávaly v minulosti přidané testy včetně odkazů na ně. Podstatné také je, aby se s aplikací dobře pracovalo uživatelům, kteří budou jednotlivé testy vyplňovat. Aby byly testy správně a přehledně zobrazeny, navigační struktura musí být jednoduchá a přehledná a zejména jednoznačná. Velmi důležité je, aby uživateli bylo předem jasné, co se stane například po stisknutí určitého tlačítka a nemusel postupovat metodou pokus omyl. V rozsahu celého systému kladen důraz na zpětnou reakci na administrátorovu či uživatelovu činnost. Není snad nic horšího, než když uživatel neví, zda po nahrání souboru byl soubor opravdu do aplikace úspěšně nahrán nebo nastala v průběhu nahrávání nějaká chyba. Po návrhu uživatelského rozhraní aplikace bylo potřeba ještě promyslet řešení jednotlivých sekcí a funkcí. Jednou z nich byl styl zobrazení jednotlivých dotazníků neboli jednotlivých testů. Pro experimentální účely je velmi důležitá možnost zvolit dle vlastního uvážení kolik stimulů se má zobrazit na jedné straně testu. Některé systémy tuto možnost neumožňují a zobrazují celý test (dotazník) na jedné straně, což nemusí být vždy vhodné. Další bodem k promyšlení byl samotný vzhled a styl zápisu externího souboru, který specifikuje samotný test. Snahou bylo zvolit co nejjednodušší a přitom nejintuitivnější způsob zápisu. Pro export byl použit nejrozšířenější typ souboru pro zpracování tabulkových dat a to formát CSV. Problémem bylo jak tento export nejlépe vyřešit, nakonec bylo rozhodnuto, že nejlepší způsob zálohy bude ponechání exportovaných souborů na serveru a aktuálně vyexportovaný soubor bude nabídnut ke stažení do uživatelova počítače prostřednictvím odkazu.
2.1. Exitující implementace V současné době existuje na internetu u nás i ve světě několik služeb, které jsou svým charakterem více či méně podobné této aplikaci. Jedná se především o aplikace Doodle (www.doodle.com ), Track Your Happiness (www.trackyourhappiness.org), Vyplň to (www.vyplnto.cz), Survey Monkey (www.surveymonkey.com) nebo Google Docs (www.docs.google.com).
6
2.1.1.
Vyplňto.cz
Vyplňto.cz je dotazníková služba, která měsíčně pomáhá realizovat stovky internetových průzkumů, které se týkají různých společenských témat, událostí, produktů nebo služeb. Vyplňto.cz umožňuje uživatelům vytvoření online dotazníku s možností větvení otázek, veřejné i skryté průzkumy bez publikování výsledků, zajištění respondentů pro vybrané dotazníky, automatické zpracování dotazníků včetně vytvoření grafů, stažení jednotlivých odpovědí pro externí vyhodnocení, pokročilá analýza závislostí odpovědí, fulltextové prohledávání výsledků veřejných průzkumů, rychlý a plně automatizovaný proces registrace i platby. V případě, že se rozhodnete na Vyplňto.cz realizovat veřejný průzkum, bude (po schválení administrátorem) nabídnut početné skupině dobrovolných respondentů, která Vyplňto.cz navštěvuje. U vašeho dotazníku můžete zvolit některý z připravených grafických stylů, případně si nechat vytvořit na míru styl v barvách vaší organizace. Můžete nechat zobrazit dotazník po jednotlivých otázkách, nebo klidně všechny otázky najednou. Samozřejmostí je plně upravitelné záhlaví a zápatí dotazníku prostřednictvím vizuálního editoru. (2)
7
Obrázek 2.1: Náhled na stránku vyplňto.cz Vložení nové otázky do dotazníku probíhá definováním otázky, dále určením v poli „Povinná“, zda je povinné tuto otázku zodpovědět a určením typu odpovědi. Typy odpovědi nám systém nabídne po kliknutí na roletové menu. Mezi typy odpovědí patří například seznam – právě jedna, seznam – alespoň jedna, krátký text, delší text, číslo, nezáporné číslo, kladné číslo, ano – ne, ano – nevím – ne, maticová, 1 – 2 – 3 – 4 – 5, atd. Po zvolení tohoto typu klikneme na možnost „Přidat odpověď“ a napíšeme možnost odpovědi na naši otázku v dotazníku. V případě, že chceme celou otázku včetně odpovědí z dotazníku odstranit, klikneme na červeně zvýrazněnou možnost „Odstranit otázku“. Pokud nejsme spokojeni s odpovědí, vedle formulářového pole každé odpovědi najdeme možnost pro odstranění konkrétní odpovědi. Možnost „Zobrazit pokročilé volby“ nám rozšíří možnosti a přibyde nám další formulářové pole, které umožňuje zadat standardní odpověď na naši otázku v dotazníku.
8
Obrázek 2.2: Definice otázky v systému vyplňto.cz
2.1.2.
SurveyMonkey.com
U této služby není potřeba instalovat žádný software, základní funkčnost je zdarma a pokročilé funkce za velmi malý měsíční poplatek. Uživatel si může vybrat z více jak 15 typů otázek, které jsou již nakonfigurovány a připraveny k použití. Jako typ otázek můžeme definovat zaškrtávací typ, typ matice, textová pole nebo demografie. SurveyMonkey dále umožňuje si ušetřit čas a zajistit kvalitní zpětnou vazbu s předdefinovanými průzkumovými šablonami. Každý uživatel si může svůj průzkum vzhledově přizpůsobit, aby vypadal přesně jako součást jeho webových stránek. Je možné zvolit si barevné schéma odpovídající vlastním webovým stránkám, dotazník opatřit svým firemním logem, dále může průzkum obsahovat název společnosti, aby bylo rozpoznatelné, zda jsme na oficiálním dotazníku nebo ne, dále také lze vytvořit průzkum ve stejném jazyce, jako jsou vaše stránky a dále je možné vložit vlastní závěrečné poděkování nebo nastavit přesměrování zpět na vlastní webovou prezentaci.
9
Obrázek 2.3: Náhled na stránku surveymonkey.com
10
Kapitola 3
Analýza a návrh řešení Při návrhu řešení musíme brát v potaz několik věcí. Zejména jednoduchost a přehlednost výsledné aplikace a dále rychlost zpracování dat. Nejdůležitější částí bylo důkladně analyzovat několik základních funkcí aplikace, především rozebrání krok po kroku zpracování externího konfiguračního souboru typu INI, který slouží pro specifikaci jednotlivých dotazníků, resp. testů. Konfigurační soubor byl vybrán místo souboru XML (3) z několika důvodů. Především z důvodu jednoduchosti a snadné editace souboru (není potřeba používat specializované editory, dodržovat zanořování tagů atd.). Algoritmus zpracovávající konfigurační soubor, soubor prochází a následně z něj generuje výsledný formulář. Další důležitou částí k analýze bylo uživatelské rozhraní aplikace, které je velmi důležité pro to, aby se uživatel v naší aplikaci cítil příjemně. Při tvorbě výsledného vzhledu aplikace je nutné postupovat velmi opatrně a hodně nad návrhem přemýšlet, aby se povedlo vystihnout co nejlépe potřeby dané aplikace a těm se podařilo design přizpůsobit. V našem případě postačí základní jednoduchý dvousloupcový vzhled, jelikož se nepředpokládá žádné přidání reklamních bannerů. V horní části designu je místo připraveno pro logo a název aplikace. V levém sloupci je místo vyhrazeno zejména pro vertikální menu a případně umístění nějakých informačních boxů s dodatečnými informacemi. V pravém sloupci, což je zbylé místo stránky, je místo vyhrazeno pro hlavní zobrazení obsahu aplikace, v našem případě tedy pro zobrazení zejména jednotlivých dotazníků, resp. testů. V dolní části stránky pod jednotlivými sloupci je umístěna patička stránky, do které je možné umístit například autora, vyhradit různá autorská práva či zapsat verzi aplikace. Při návrhu menu bylo potřeba promyslet, zda bude použito vertikální či horizontální menu.
11
Každé menu je něčím specifické a hodí se pro odlišný druh webové prezentace či webové aplikace. Většinou platí pravidlo, pokud máme pevný počet sekcí a nepředpokládáme, že by časem nějaká sekce mohla přibýt, používá se menu horizontální. V tomto případě jde v některých případech i lépe zakomponovat do finálního vzhledu webu či webové aplikace. Pokud máme určitý počet sekcí a předpokládáme do budoucna možné rozšíření nebo pokud aplikace či web podporují více uživatelských práv a každému uživateli je podle uživatelského práva nabídnuto jiné menu s rozdílným počtem položek, je vhodnější použít menu horizontální.
Obrázek 3.4: Použitý dvousloupcový layout stránky V našem případě je vhodnější právě varianta vertikálního menu vzhledem k tomu, že aplikace podporuje několik uživatelských přístupových práv s různým počtem položek. Algoritmus zpracovávající externí konfigurační soubor se skládá z několika základních kroků, které jsou nezbytné pro požadovaný výsledek, kterým je přehledný systémem automaticky generovaný dotazník. Prvním krokem je nutnost algoritmus naučit zpracovávat příkazy uvedené v konfiguračním souboru. Nutné je nejprve stanovit základní
12
syntaxi a gramatiku souboru, tj. jaké příkazy a hodnoty jednotlivých příkazů bude algoritmus zpracovávat. V našem případě bylo požadavků hned několik. Prvním z nich byl požadavek, aby v algoritmu bylo možné, přesně stanovit kolik stimulů se umístí na jednu stránku dotazníku, tedy jinými slovy, aby bylo možné v dotazníku definovat přesně začátek a konec strany a přechod na další stránku. V každé stránce lze definovat otázku, případně přiložit multimediální obsah a nadefinovat typ odpovědi uživatele na otázku. Otázka je v konfiguračním souboru definována nejprve identifikačním názvem otázky, tudíž každá otázka musí mít jedinečný název. Tento požadavek je nutný pro správné zpracování odpovědi od uživatele, neboť v případě, že by dva prvky byly umístěny na stejné stránce a měly stejný název, algoritmus by nedokázal rozeznat, jaká odpověď přišla z jakého prvku na stránce. Po definování identifikačního názvu otázky je důležité přesně definovat text otázky, který se zobrazí uživateli a na který následně odpovídá. V případě, že například je přiložen multimediální obsah nebo pokud je nezbytné dovysvětlit text otázky nebo jaká odpověď se očekává, je možné v souboru definovat komentář, který je na výsledné stránce rozlišen menší velikostí písma a kurzívou pro snadnou rozpoznatelnost. Ve všech těchto případech při definování otázky očekává příkaz v souboru jako hodnotu textový řetězec nebo číselnou hodnotu. Další volitelnou částí je u každé otázky možnost přiložit multimediální obsah. Jak již bylo několikrát zmíněno, je možné ke každé otázce přiložit zvukový soubor, video soubor nebo obrázek. První dva zmíněné druhy je možné vložit buď nahráním přímo na server, kde je spuštěna webová aplikace nebo vložením videa či zvukového záznamu z nějakého specializovaného serveru po online streamování těchto obsahů, v případě videa z www.youtube.com a v případě zvukového souboru z www.soundcloud.com. Pro tyto případy bylo nutné do souboru umístit příkaz, který dokáže přidat k otázce multimediální obsah a podle zadané hodnoty je schopen rozeznat algoritmus při zpracování, zda se jedná o soubor vložený z některého zmíněného serveru a pokud ano, musí být schopen do stránky vložit i zvukový či video přehrávač daného serveru nebo zda se jedná o multimédium uložené přímo v dané složce na serveru a v tomto případě musí být schopen uživateli poskytnout vlastní přehrávač pro přehrání. Pokud je přidán jako multimédium obsah uložený na serveru, bylo nutné nejprve rozmyslet, jak bude řešen problém přehrávače, v kterém je multimédium přehráno. Tento problém bylo možné vyřešit buď vytvořením vlastního či převzetím již vytvořeného
13
multimediálního přehrávače vytvořeného zejména v technologii Flash, kterou v současné době podporují všechny internetové prohlížeče a vyžadují pouze doinstalování dodatečného zásuvného doplňku do prohlížeče, pokud ho již nemá prohlížeč v sobě rovnou integrován nebo využitím nejnovějšího standardu pro tvorbu webových prezentací a to konkrétně jazyka HTML 5. Poslední nezbytnou částí u každé otázky v dotazníku je definování typu odpovědi uživatele. Lze vybrat z klasické řádkové textové odpovědi, nebo pokud to povaha otázky vyžaduje tak i z delší textové odpovědi, která se může skládat i z několika vět či souvětí. Pokud není vyžadována textová odpověď, je možné zvolit z několika typů odpovědí a to buď, že uživatel pouze vybere jednu odpověď z mnoha nebo vybráním několika možných odpovědí z mnoha. V případě potřeby algoritmus umožní dokonce využít z několika druhů předdefinovaných často používaných odpovědí. Kromě otázek, multimédií a druhů odpovědí je možné také v konfiguračním souboru nadefinovat název celého testu, případně jeho verzi a identifikační název, který musí být opět jedinečný. Po té, co algoritmus dokáže zpracovat výše popsanou gramatiku a syntaxi celého konfiguračního souboru je další nezbytnou částí tyto uložené údaje znovu zpracovat a tím vygenerovat jednotlivé formulářové prvky na stránce dotazníku. Generování jednotlivých dotazníkových prvků může probíhat pomocí několika cyklů napsaných v programovacím jazyce, v kterých je nadefinován XHTML kód vždy pro daný formulářový prvek. Pro velmi dlouhé dotazníky by mohlo být toto řešení pomalejší, avšak při návrhu tohoto systému není se zpracováním extrémně rozsáhlých a složitých dotazníků počítáno. Jak bylo již výše zmíněno, pro vložení a přehrávání zvukových a video souborů v dotaznících je použit standard HTML 5. Před HTML 5, ale neexistoval žádný standard jak video nebo zvuk na web umístit. Většina videí, která lze sledovat na internetu je přehrávána pomocí zásuvných doplňků třetích stran. HTML5 definuje standardní způsob jak na webovou stránku vložit video pomocí . Podobné to je i s audio soubory, ty se na webovou stránku dají vložit pomocí . Jeden prvek nebo může odkazovat na více video či audio souborů a prohlížeč zvolí první video nebo audio soubor, který může přehrát. (4)
14
IE
Firefox
Safari
Chrome
9.0+
3.5+
3.0+
3.0+
Tabulka 3.1: Podpora elementu v prohlížečích
Kodeky/Kontejnery
IE
Firefox
Safari
Chrome
Opera
Theora + Vorbis + Ogg
-
3.5+
-
5.0+
10.5+
H.264 + AAC + MP4
9.0+
-
3.0+
-
-
WebM
9.0+
4.0+
-
6.0+
10.6+
Tabulka 3.2: Video kodeky podporované v nadcházejících verzích prohlížečů Internet Explorer 9.0 bude podporovat jen formát WebM, pokud si uživatel nainstaluje VP8 kodek. V následujících řádcích budou přiblíženy implementační metody a technologie webové aplikace.
3.1. Implementační metody a technologie
Apache působí jako webový server. Jeho hlavní úlohou je nejen zpracování požadavků, které uživatelé odesílají prostřednictvím svých webových prohlížečů, ale také zobrazení výsledků připravených pomocí kódu umístěného ve vyžádaných souborech. Apache je velmi výkonný stroj a může splnit prakticky všechna přání, jaká můžete jako správce webu mít.
PHP je jazyk pro skriptování na straně serveru. Umožňuje dynamizaci webového serveru. Jeho flexibilita a relativně krátká křivka osvojení (zejména v případě programátorů se zkušenostmi s jazyky C, Java nebo Perl) z něj činí jeden z nejoblíbenějších skriptovacích jazyků vůbec. Obliba jazyka PHP stále roste a veřejnost jej vnímá jako alternativu k technologii ASP od společnosti Microsoft. Veřejnost si uvědomuje, že výhody technologie PHP jsou větší než náklady na její
15
pořízení. Podle serveru Netcraft lze kód v jazyce PHP najít na přibližně 16 milionech webových serverů.
MySQL je databázový systém, jenž umožňuje technologiím PHP a Apache spolupracovat na zpřístupnění a zobrazení dat ve formátu čitelném v internetových prohlížečích. Je to server zpracovávající dotazy ve strukturovaném dotazovacím jazyce navržený pro zpracování velkého množství velmi složitých dotazů. Jde o relační databázový systém, MySQL tedy umožňuje spojování mnoha různých tabulek. Díky tomu nabízí maximální efektivitu a rychlost. Mezi několik základních a zároveň nejoblíbenějších funkcí patří možnost využití většího počtu procesorů prostřednictvím vláken jádra, možnost spouštění nezávisle na hostitelské platformě, četné typy sloupců pokrývající prakticky veškeré datové typy, skupiny funkcí pro matematické výpočty a třídění, příkazy, které umožňují snadný přístup správců k informacím o databázích, názvy funkcí, jež nekolidují s názvy tabulek ani sloupců, systém ověřování uživatelů na základě hesla, mezinárodní hlášení chyb použitelné v mnoha různých státech atd. (5)
Inicializační soubory (ini) slouží především k uchovávání nastavení nějakého programu, v našem případě pro uchování informací a struktuře dotazníku, který bude systémem načítán. Výhodou tohoto řešení je převážně jeho rychlost a jednoduchost.
16
Kapitola 4
Realizace Na realizaci webové aplikace musí být kladen velký důraz, neboť pokud je provedena špatně a nezodpovědně, vznikne tak produkt, který sice může být funkční, avšak nepřehledný. Problém nastane pak, když po letech má být aplikace přepracována a nikdo se v ní nevyzná, ani samotný programátor, který aplikaci vytvořil. Z tohoto důvodu je v aplikaci dodržováno několik pravidel:
Konzistence. Bloky dobře napsaného kódu vždy vypadají stejně. Jsou odsazeny stejně a řídí se stejnými zásadami – programátor v nich používá například stejné syntaktické zkratky, stejným způsobem vkládá závorky. Vývojář také používá formátovací styly konzistentně v celém programu. V PHP je velkou výhodou, že v něm nejsou důležité tabulátory, ani odsazení.
Komentáře. Čím více komentářů, tím lépe. Přestože to v menších a jednodušších programech není tak důležité, platí zásada, že jednodušší programy se časem komplikují a pak je už mnohem obtížnější zapamatovat si, co jste udělali, kde jste to udělali a proč jste to vlastně udělali tak a ne jinak. Podrobné komentáře vám pomohou zorientovat se ve změti myšlenek. Pracujete-li navíc na týmovém projektu, pomůže kolegům porozumět vaší logice.
Řídit se osvědčenými zásadami psaní kódu se vyplatí přinejmenším z několika důvodů:
Kvůli výkonnosti. Čím snáze se kód čte, tím snáze se čtenář v kódu zorientuje. Nebude pak mít problémy s nalezením místa, na nějž se řízení toku programu přesune po vykonání nějakého příkazu.
Kvůli ladění. Umění najít zdroj problému je hlavní ladící dovedností. Používáte-li komentáře, můžete snadno postupovat po linii své logiky. Máte-li navíc k dispozici čísla řádků a konzistentní formátování, snadno můžeme projít dokument a přesně určit příčinu chyby.
17
Kvůli budoucím rozšířením a úpravám. Komentáře v kódu jsou důležité především kvůli možným budoucím změnám. Je totiž velmi obtížné zapamatovat si i v budoucnu veškerou logiku, která byla použita před mnoha lety, ale i před několika měsíci. Pracujete-li navíc s týmovým kódem a všichni programátoři používají společný styl kódování, bude mnohem snazší upravit logiku nebo přidat nové funkce ke kódu vytvořenému někým jiným. (5)
V aplikaci byl kladen důraz na přehlednost. Proto došlo k rozdělení jednotlivých částí zdrojových kódů do složek. Rozdělení do složek má svoje opodstatnění a svoji logiku. Byla vytvořena složka pro chráněnou sekci aplikace, tj. pro uživatele s uživatelskými přístupovými právy. Tato složka je rozdělena na další a to pro každou uživatelskou úroveň – v našem případě pro administrátora a participanta. Každá z těchto složek obsahuje zdrojové kódy, které se vážou k činnosti daného uživatele. Tím je docíleno, že všechny funkce a části aplikace týkající se administrace jsou umístěny ve složce administrátora a naopak části týkající se běžného uživatele, včetně vygenerování jednotlivých testů ve složce participanta. Zbylé části aplikace jako přihlášení do aplikace atd., které jsou přístupné všem uživatelům, tj. i nepřihlášeným jsou umístěny v kořenovém adresáři. Ve zdrojových souborech aplikace se občas vyskytne část kódu, která se často opakuje na více místech aplikace. Opakující se kód v programu je poměrně závažný prohřešek, neboť pokud dojde za nějaký čas v této části kódu ke změně, byť pouze malé, jako je změna hodnoty proměnné, musí být změněna ve všech místech, kde se tato část opakuje. Díky tomu často dochází k chybám, neboť se na nějaké místo zapomene. Tomuto je v aplikaci předcházeno zahrnováním souborů. Zahrnování souborů spočívá v tom, že často opakující se část kódu je umístěna do zvláštního souboru, který je pak zahrnován. To znamená, že pokud se rozhodneme k nějaké změně v kódu, stačí změnit např. hodnotu proměnné pouze jednou v tomto souboru a změny se projeví na všech místech, kde je tento soubor zahrnut. Tyto zahrnované soubory jsou v aplikaci taktéž umístěny do samostatného adresáře označeného jako „include“. V této samostatné složce jsou umístěny pouze zahrnované soubory, které obsahují část kódu, která se vyskytuje na více místech. Zahrnované soubory s částmi kódu, které zpracovávají pouze nějakou určitou činnost na jednom místě, nejsou v této složce umístěny a zahrnutí je v tomto případě provedeno pouze ke zvýšení přehlednosti kódu. Zahrnování je prováděno jak u souborů v jazyce PHP, tak i v jazyce Javascript. Liší se pouze v rozdílných syntaxích zahrnutí.
18
Důraz je také kladen na oddělení vzhledu od logiky programu. To znamená, že pokud to je jen trochu možné, jsou části kódu zpracovávající nějakou událost v jazyce PHP umístěny do samostatných souborů a ty jsou poté zahrnovány do souborů, v kterých je definován vzhled aplikace jazykem XHTML. Toto opatření opět zvyšuje přehlednost a znovu použitelnost kódu aplikace. V částech kódu, které jsou tvořeny pomocí jazyka PHP, je dbáno na jednoduchost jednotlivých příkazů, aby byla zlepšena čitelnost kódu. Snahou je vyhnutí se komplikovaným a nečitelným programovým konstrukcím. Pro oddělení syntaxe MySQL od názvů proměnných, tabulek a databází jsou příkazy MySQL psány velkými písmeny. Pojmenování souborů se snaží v aplikaci vystihovat funkci dané části kódu. Pokud je nějaká činnost zpracovávána kódem, který je umístěn v samostatném souboru a je zahrnován, je tento soubor většinou pojmenován s dodatkem „_process“, aby bylo jasné, že soubor zpracovává nějakou činnost.
19
20
Kapitola 5
Testování Ne vždy se programátorovi povede napsat výsledný program bez chyby. Z toho důvodu je velmi důležité testování. Testování by mělo být nedílnou součástí každého vývoje softwaru, webové aplikace či prezentace. Aplikace je při testování využita jako prostředek pro vykonání experimentálního testu na uživatelích vedeného katedrou DCGI. Test je svým obsahem zaměřen na reakce uživatelů na různé zvukové ukázky, které mají představovat zvuky vydávané lidmi. Testovaní uživatelé mají na danou zvukovou ukázku vyjádřit své pocity ze zvuku, například co uživateli zvuk připomíná, zda by byl ochoten zvuk sám vydávat na ulici, v kanceláři atd. Test se skládá z deseti zvukových ukázek a ke každé ukázce je přiřazeno 6 otázek. U některých otázek je po uživateli požadováno napsání vlastního názoru a u některých uživatel vybírá z uvedených možností. Test je časově neomezený. Testování je prováděno umístěním systému na veřejně dostupný internetový server, kde mu byla založena vlastní doména. Jednotlivé zvukové ukázky byly nahrány na server Soundcloud (www.soundcloud.com). Samotný test byl vytvořen v konfiguračním souboru, který byl později nahrán do webové aplikace. Test je distribuován především pomocí sociální sítě Facebook (www.facebook.com) a pomocí komunikačních protokolů jako je například Skype. K distribuci testu byly tyto způsoby zvoleny zejména kvůli časté vysoké návštěvnosti uživatelů. Z výsledků testu jsme schopni díky aplikaci získat o uživateli několik dat. V první řadě to jsou informace, jak uživatel odpovídal na daný test (tedy zda je ochoten zvuky vydávat na veřejnosti, atd.) a dále několik informací o uživateli. Můžeme zjistit, zda se jednalo o registrovaného uživatele či anonymního, v případě, že se jedná o uživatele registrovaného, tak kolikátý test celkem absolvoval, jakou používal IP adresu nebo kdy a v kolik hodin daný test vyplnil. Výsledky našeho testování, resp. vědecké výsledky testu nejsou v současné době zřejmé, neboť se jedná o probíhající test řízený katedrou DCGI.
21
22
Kapitola 6
Závěr Navržená a realizovaná webová aplikace poskytuje administrátorům systému a klasickým uživatelům jednoduchou a rychlou práci s tímto systémem. Systém umožňuje organizátorům experimentu specifikovat stimuly pro uživatele, jejich distribuci uživatelům a sběr uživatelské odezvy. Pro tyto činnosti bylo navrženo jednoduché a přehledné uživatelské rozhraní poskytující funkce, aby tyto požadavky byly splněny. Z uskutečněné studie mezi uživateli kromě jiného také vyplynulo, že tento záměr byl úspěšně naplněn. Specifikace požadavku probíhá pomocí externího konfiguračního souboru. Podobnou funkci zaměřenou na expertní uživatele žádná z podobných služeb nenabízí, jak vyplynulo z provedeného průzkumu, který byl prováděn mezi podobnými již existujícími službami. Funkčnost realizované webové aplikace by bylo možné do budoucna rozšířit několika zajímavými a užitečnými funkcemi.
Využití databáze uživatelů pro rozšíření správy testů o další funkce. Tato funkce by umožňovala administrátorům přidělovat jednotlivé testy přímo konkrétním registrovaným uživatelům. Uživatel by následně ve svém uživatelském profilu viděl všechny přidělené neabsolvované testy.
Specifikace náhodných a konkrétních pořadí obrazovek a otázek v testu. Další funkcí pro rozšíření systému by mohla být možnost specifikovat administrátorovi v konfiguračním souboru testu náhodné pořadí jednotlivých obrazovek testu a následně také náhodné pořadí otázek v dané obrazovce. Kromě specifikace náhodného pořadí by mohl umožňovat také specifické pořadí pro konkrétní uživatele. Tím by bylo umožněno, aby pro každého uživatele mohl být vytvořen jedinečný test.
Více statistických informací. Přihlášeným uživatelům, jak administrátorům, tak participantům by mohlo být nabídnuto více statistik. Participantům například informace o již absolvovaných testech, administrátorům například
23
informace, kolika registrovaným uživatelům byl test rozeslán, kolik jich na test odpovědělo a další informace.
Využití sociálních sítí. Dále se nabízí možnost využití sociálních sítí jako je například populární Facebook přímo v aplikaci pro snadnou distribuci odkazů na test mezi uživatele.
24
Literatura 1. Wikipedie, Přispěvatelé. CSV - Wikipedie. Wikipedie - Otevřená encyklopedie. [Online] 31. Leden 2011. http://cs.wikipedia.org/wiki/CSV. 2. Vyplňto.cz. Vytvořit dotazník | Vyplňto.cz. Vyplňto.cz. [Online] http://www.vyplnto.cz/. 3. Wikipedie, Přispěvatelé. Extensible Markup Language - Wikipedie. Wikipedie Otevřená encyklopedie. [Online] 3. Květen 2011. http://cs.wikipedia.org/wiki/Extensible_Markup_Language. 4. Dive Into HTML 5. Dive Into HTML 5. [Online] http://diveintohtml5.org/. 5. Elizabeth Naramore, Jason Gerner, Yann Le Scouarnec, Jeremy Stolz, Michael K. Glass. Vytváříme webové aplikace v PHP5, MySQL a Apache. Brno : Computer Press, 2006.
25
26
Příloha A
Seznam použitých zkratek URL
Uniform Resource Locator
CSV
Comma-separated values
XML
Extensible Markup Language
HTML
HyperText Markup Language
XHTML
Extensible HyperText Markup Language
AAC
Advanced Audio Coding
PHP
Hypertext Preprocessor
MySQL
My Structured Query Language
27
28
Příloha B
Instalační a uživatelská příručka B.1
Instalace systému
Instalace systému je velmi jednoduchá. Všechny soubory na přiloženém CD, které jsou ve složce „Web“ je nutné zkopírovat do kořenového adresáře na serveru. Adresářům „tests“ a „exports“ je nutné na serveru nastavit oprávnění do adresáře zapisovat! Poté je nutné spustit v internetovém prohlížeči konzoli phpMyAdmin – obvykle zadáním adresy do adresního řádku prohlížeče jako např. http://localhost/phpmyadmin, kde localhost je jméno serveru. Po spuštění konzole phpMyAdmin je nutné zvolit záložku „Import“ a z CD vybrat soubor data.sql pro import databáze. Pokud import proběhne bez problémů, konzole nás o tom bude informovat příslušnou informační zprávou o úspěšně provedeném importu databáze. V databázi, kterou naimportujete, jsou vytvořeny dva startovací profily uživatelů. Pro každé přístupové právo je vytvořen jeden uživatel. Tyto profily doporučuji z důvodu bezpečnosti po založení nových profilů z databáze smazat. Veškeré testy, informace o uživatelích (e-mail, IP adresa atd.) a odpovědi jednotlivých uživatelů na testy jsou uloženy v této databázi. Pokud vše proběhlo v pořádku, systém je připraven na spuštění. Základní vytvořené profily: Administrátor - přihlašovací jméno: admin, heslo: admin Participant - přihlašovací jméno: user, heslo: user
29
B.2
Spuštění a ovládání systému Spuštění systému. Systém spustíme zadáním adresy serveru, na který byl systém nahrán do adresního řádku internetového prohlížeče, například http://www.mojeadresa.domena, kde moje-adresa je název domény a doména je jedna z domén jako například .cz, .eu, .com atd. Po zadání této adresy se v prohlížeči zobrazí úvodní přihlašovací obrazovka.
Obrázek B.5: Přihlašovací obrazovka do webové aplikace
Uživatelská část rozhraní. Systém rozeznává několik uživatelských úrovní – administrátor, participant a anonymní uživatel. Každý běžný návštěvník webové aplikace může být registrován pouze jako participant. Přidělení práva „administrátor“ může být provedeno pouze administrátorem systému změnou přístupového práva uživatele v databázi. Anonymnímu uživateli není zobrazeno žádné menu, s tímto uživatelským oprávněním lze pouze anonymně vyplnit dotazník, resp. test. Po přihlášení je
30
uživateli vygenerováno náhodné přihlašovací jméno, aby byla zajištěna dostatečná anonymita.
Obrázek B.6: Uživatelská část rozhraní webové aplikace
Registrace do systému. Registraci zahájíme stiskem tlačítka „Registrovat“ v přihlašovací obrazovce. Dojde k přesunu na registrační formulář, v kterém je nutné vyplnit uživatelské jméno, heslo a e-mailovou adresu pro další případné zkontaktování. Po pečlivém zkontrolování zadaných dat je registrace provedena stiskem tlačítka „Registrovat“. O úspěšnosti registrace nás systém informuje systémovou zprávou a následně nás přesměruje zpět na přihlašovací stránku.
Přihlášení do systému. Pro přihlášení zadáme naše přihlašovací jméno a heslo, v případě správnosti zadaných údajů budeme systémem přesunuti do chráněné sekce pro registrované uživatele. Na úvodní stránce jsou zobrazeny důležité úvodní informace spolu s datem absolvování posledního testu. Pod logem v informačním pruhu je zobrazeno aktuální datum, naše přihlašovací jméno, v závorce naše přístupová práva a tlačítko pro odhlášení ze systému. V levé části systému najdeme
31
menu, ve kterém se nachází položka „Upravit profil“. Pod menu najdeme box, v kterém jsou zobrazovány doplňkové údaje při provádění testů jako čas zahájení testu či po dokončení testu doba trvání testu.
Upravení profilu. Upravení profilu je velmi podobné registraci, změnit lze přístupové heslo nebo předvyplněný email. Z bezpečnostních důvodů není heslo zobrazeno. Pokud heslo nechceme měnit, necháme pole nevyplněné. Následně změnu údajů potvrdíme stiskem tlačítka „Uložit“.
Administrační část rozhraní. Po přihlášení do administrační části systému, které probíhá naprosto stejně jako přihlášení běžného uživatele s oprávněním participant, nalezneme v menu v levé části stránky o něco více položek na rozdíl od uživatele s oprávněním participant.
Obrázek B.7: Administrační část rozhraní webové aplikace
32
Vytvoření testu. Test vytvoří administrátor nahráním zdrojového konfiguračního souboru, který obsahuje specifikaci daného testu. Administrátor vybere soubor a stiskne tlačítko „Uložit“. Do textového pole je po odeslání souboru vygenerován odkaz na test, který je následně nutné rozdistribuovat uživatelům, kteří test vyplní. Odkaz na test je také uložen v části správa testů. Systém každému nahranému testu automaticky vygeneruje jméno souboru a uloží ho pod tímto jménem do databáze. Tímto opatřením je zabráněno nahrání dvou souborů se stejným jménem nebo nechtěné přepsání souboru.
Správa testů. Správa testů obsahuje přehled všech nahraných testů do systému. U každého testu je zobrazeno automaticky vygenerované jméno testu, datum vložení testu do systému a několik akčních tlačítek. Tlačítko „Odkaz“ přesune na stránku, kde je možné si z textového pole zkopírovat do schránky operačního systému odkaz na daný test, zejména z důvodu další distribuce testu. Tlačítko „Náhled“ umožní provedení pilotního testu, při kterém se žádné hodnoty nezapisují do databáze. Díky této funkci si může administrátor zkontrolovat test ještě před další distribucí uživatelům. Možnost „Odebrat“ slouží pro odstranění testu ze systému. Z databáze je odstraněn pouze záznam o tomto testu, soubor fyzicky stále zůstává na serveru pro případ dalších potřeb nebo nechtěného smazání.
Export. Export testů umožňuje administrátorovi provést export uživatelské odezvy na jednotlivé stimuly v daném testu do souboru CSV, díky kterému mohou být dále zpracovávány například v tabulkových procesorech. Administrátor vybere test, který chce exportovat a stiskne tlačítko export. Automaticky se ihned po stisku tlačítka zobrazí odkaz ke stažení souboru ve formátu CSV. Vyexportované soubory jednotlivých testů zůstávají uloženy ve složce „Exports“ stále na serveru.
Distribuce odkazů a vyplnění testu. Distribuce odkazů na jednotlivé testy může probíhat několika způsoby – emailem, různé komunikační protokoly jako je Skype atd. nebo sociální sítě jako je třeba Facebook. K jednotlivým testům má přístup pouze osoba, které byl poskytnut odkaz na daný test. Pokud osoba obdrží odkaz na test, po kliknutí na něj je automaticky přesměrována na webovou aplikaci. Pokud je uživatel do systému přihlášen v době kliknutí na odkaz, je rovnou přesunut na stránku s dotazníkem bez zobrazení přihlašovacího dialogu. V případě, že v systému není v danou dobu testovaná osoba přihlášena, zobrazí se informace
33
o nedostatečných přístupových právech a je přesměrována na přihlašovací stránku. Zde se může buď přihlásit pod svými přihlašovacími údaji, nebo vstoupit anonymně. V obou případech dojde k přesměrování na stránku s testem, kde test zahájí stiskem tlačítka pro spuštění testu. Následně test vyplní, pro přesun na další obrazovku použije tlačítko „Další“ a nakonec test odešle tlačítkem „Odeslat“.
Obrázek B.8: Ukázka testu ve webové aplikaci
34
V následující tabulce najdete přehled použitelných příkazů a případně očekávaných hodnot těchto příkazů spolu s vysvětlením, co který příkaz znamená. Příkaz test_id test_name version [screen] name type media q_id q_text q_comment option_1 (option_2, …) ;
Hodnoty vlastní hodnota vlastní hodnota vlastní hodnota vlastní hodnota line, text, yesno, 1ofn, likert URL (youtube.com, …) vlastní hodnota vlastní hodnota vlastní hodnota vlastní hodnota
Význam Identifikační jméno testu Jméno testu Verze testu Nová obrazovka testu Pojmenování obrazovky Typ odpovědi Odkaz na video, zvuk, … Identifikační jméno otázky Jméno otázky Komentář k otázce Položka type („radio“) Komentář
Tabulka B.3: Přehled použitelných příkazů a hodnot konfiguračního souboru
35