Mendelova univerzita v Brně Provozně ekonomická fakulta
Možnosti správy souborů v prostředí aplikace TEXonWeb Bakalářská práce
Vedoucí práce: Ing. Jan Přichystal, Ph.D.
Jan Vavruša
Brno 2013
Rád bych poděkoval Ing. Janu Přichystalovi, Ph.D., za vhodné připomínky, náměty a cenné rady během tvorby.
Prohlašuji, že jsem tuto bakalářskou práci vyřešil samostatně s použitím literatury, kterou uvádím v seznamu.
V Brně, 20. května 2013
................................................................
4
Abstract Vavruša, J. File management options for TEXonWeb application. Bachelor thesis. Brno, 2013. This bachelor thesis is doing a research about file management on the web and suggests one of the possible options for the implementation to TEXonWeb application, based on a previous analysis. The program module has been implemented with HTML, JavaScript and CSS languages, using Google Drive application programming interface.
Abstrakt Vavruša, J. Možnosti správy souborů v prostředí aplikace TEXonWeb. Bakalářská práce. Brno, 2013. Bakalářská práce zkoumá problematiku správy souborů na webu a na základě analýzy navrhuje jedno z možných řešení implementace do aplikace pro sazbu dokumentů TEXonWeb. Programový modul je implementován v jazycích HTML, JavaScript a CSS, s využitím rozhraní Google Drive.
5
OBSAH
Obsah 1 Úvod a cíl práce 1.1 Úvod . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1.2 Cíl práce . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
7 7 7
2 Současný stav 2.1 Typografický systém TEX . . . . . . . 2.1.1 Stručná charakteristika . . . . 2.1.2 Výhody a nevýhody . . . . . . 2.1.3 LATEX . . . . . . . . . . . . . . 2.2 TEXonWeb . . . . . . . . . . . . . . . . 2.2.1 Stručná charakteristika . . . . 2.2.2 Správa souborů . . . . . . . . . 2.3 Cloud computing . . . . . . . . . . . . 2.3.1 Výhody . . . . . . . . . . . . . 2.3.2 Nevýhody . . . . . . . . . . . . 2.3.3 Model nasazení . . . . . . . . . 2.3.4 Distribuční model . . . . . . . 2.4 Možnosti integrace cloudových úložišť . 2.4.1 Google Drive . . . . . . . . . . 2.4.2 Dropbox . . . . . . . . . . . . . 2.4.3 SkyDrive . . . . . . . . . . . . 2.4.4 Box . . . . . . . . . . . . . . . 2.4.5 Capsa.cz . . . . . . . . . . . . . 2.5 Google Drive API . . . . . . . . . . . . 2.5.1 Google APIs Console . . . . . . 2.5.2 Autentizace a Autorizace . . . . 2.5.3 HTTP požadavky . . . . . . . 2.5.4 MIME typy . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
. . . . . . . . . . . . . . . . . . . . . . .
8 8 8 8 9 9 9 10 10 10 10 11 11 12 12 13 13 14 15 15 15 16 16 17
3 Metodika a postup práce 3.1 Výběr cloudového úložiště . . . . 3.2 Výběr programovacího jazyka . . 3.3 Implementace vlastní aplikace . . 3.4 Integrace do prostředí TEXonWeb
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
. . . .
18 18 18 19 19
4 Vlastní práce 4.1 Grafické rozhraní aplikace . . 4.1.1 Interakce . . . . . . . 4.1.2 Okno správce . . . . . 4.1.3 Dialogová okna . . . . 4.2 Zprovoznění přístupu k API . 4.2.1 Zaregistrování aplikace
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
. . . . . .
21 21 21 22 23 23 23
. . . . . .
. . . . . .
6
OBSAH
4.3
4.2.2 Obdržení přístupového klíče . . . 4.2.3 Odeslání klíče do API . . . . . . 4.2.4 Obnovení přístupu . . . . . . . . Práce se soubory . . . . . . . . . . . . . 4.3.1 Kontextová nabídka . . . . . . . 4.3.2 Výpis souborů . . . . . . . . . . 4.3.3 Práce se složkami . . . . . . . . . 4.3.4 Nahrávání souborů . . . . . . . . 4.3.5 Kopírování a přesouvání souborů 4.3.6 Mazání souborů . . . . . . . . . . 4.3.7 Přejmenovávání souborů . . . . . 4.3.8 Stahování souborů na disk . . . . 4.3.9 Otevírání souborů . . . . . . . . 4.3.10 Ukládání souborů . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
. . . . . . . . . . . . . .
23 24 24 24 25 26 27 27 28 29 29 29 30 30
5 Diskuze 32 5.1 Zhodnocení přínosu navrženého řešení . . . . . . . . . . . . . . . . . 32 5.2 Nedostatky navrženého řešení . . . . . . . . . . . . . . . . . . . . . . 32 5.3 Možnosti rozšíření vytvořené práce . . . . . . . . . . . . . . . . . . . 33 6 Závěr
34
7 Literatura
35
Přílohy
37
A MIME typy v Google Drive API
38
B Seznam jQuery událostí
39
1
ÚVOD A CÍL PRÁCE
1
7
Úvod a cíl práce
1.1
Úvod
S příchodem výpočetní techniky se začala převážná část dokumentů sázet počítačem. Desktop Publishing (zkráceně DTP) vznikl již v 80. letech 20. století. Tehdejší společnost Aldus uvedla na trh program pro elektronickou sazbu dokumentů PageMaker, také byly představeny první osobní počítače Macintosh od firmy Apple a později vznikaly další programy jako např. Adobe InDesign, QuarkXpress nebo volně dostupný TEX. Program TEX vyvinul profesor Donald Knuth a jeho cílem bylo především nabídnout lidem možnost kvalitní sazby dokumentů a knih při minimálním úsilí. Od té doby prošel tento software řadou změn, nicméně samotný nástroj TEX se později ukázal jako uživatelsky nepřívětivý a tak začaly vznikat nástavbové programy využívající jeho funkce pomocí jednoduchých maker 1 . Díky rostoucí komunitě získal tento software podporu nejrůznějších operačních systémů v podobě nových odvozenin. Mezi ty nejznámější dnes patří např. TEX Live (Linux), MiKTEX (Windows), či MacTEX (Mac OS X). (wikipedia.org, 2004; tug.org, 2011) Po desktopových aplikacích se díky internetu a rozvoji v oblasti webových aplikací začaly objevovat také první webové alternativy. Jednou z nich je také webový DTP systém TEXonWeb, vyvinutý pod záštitou Ústavu informatiky na Mendelově univerzitě v Brně. S příchodem cloudových úložišť se však vývojářům webových aplikací otevírají nové možnosti, a to především při práci se soubory a využití alternativních úložných prostor.
1.2
Cíl práce
Cílem této práce je integrovat možnosti cloudových úložišť do prostředí TEXonWeb. Toto řešení je výhodné jak pro uživatele aplikace, tak pro majitele serveru, na kterém jsou uskladněna veškerá data. Pro uživatele využívající cloudové úložiště je hlavní výhodou především možnost mít své soubory na jednom místě a přístupné odkudkoliv. V důsledku toho jsou tedy lokální, v našem případě školní, servery méně zatěžovány a tím odpadá také veškerá zodpovědnost za smazaná uživatelská data.
1
Makra jsou předdefinované posloupnosti znaků, procesů apod.
2
SOUČASNÝ STAV
2
8
Současný stav
2.1 2.1.1
Typografický systém TEX Stručná charakteristika
TEX je systém pro sázení dokumentů, navržený a z velké části vyvinutý Donaldem Knuthem. Systém je dostupný zcela zdarma napříč různými operačními systémy a zahrnuje rozsáhlou komunitu lidí, která se stará o jeho vývoj i nadále. Nejdůležitější části a jádrem systému je překladač, který převádí jednoduchý text na vysázený dokument. Namísto WYSIWYG2 formátování je totiž zdrojový text nejprve doplněn o příkazy a poté přeložen do publikovatelného formátu (např. PDF). Systém se nejvíce používá v akademické sféře a to převážně v matematice, výpočetní technice, ekonomii, inženýrství, fyzice, statistice nebo psychologii. (wikipedia.org, 2004; tug.org, 2011) 2.1.2
Výhody a nevýhody
Oddělení výsledného dokumentu od zdrojového textu s sebou nese řadu výhod i nevýhod a vždy záleží především na osobních preferencích. Jak uvádí publikace (Kočička – Blažek, 2004), „Grafik, potřebující neustále kontrolovat výsledek své práce, nemá rád prodlevy mezi návrhem a výsledkem. Také ho příliš nebaví programování, které je u většiny programu systému TEX potřeba.“ Důležitým aspektem je také konkrétní druh dokumentu, který sázíme. Pro sázení reklamních materiálů a letáků je například vhodnější upravovat výsledný návrh, zatímco u sázení knih a dokumentů požadujeme především spolehlivost a přesnost výstupu. Shrňme si však objektivní výhody a nevýhody toho systému v několika bodech. Těmi nejzásadnějšími výhodami mohou být například: • preciznost a vysoká kvalita výstupu, • přenositelný formát ve formě prostého textu, • možnosti zefektivnění a zrychlení práce pomocí maker. Za nevýhody lze pak považovat kupříkladu: • velké množství příkazů, které je třeba znát a vědět, kdy který použít, • absence WYSIWYG, bez kterého nevidíme výsledek okamžitě (řešením může být aplikace LyX), • složitější instalace sazebních nástrojů (řešením může být webový nástroj TEXonWeb). 2
What You See Is What You Get - „co vidíš, to dostaneš“
2.2
TEXonWeb
2.1.3
9
LATEX
Program LATEX je postaven na jazyce systému TEX a jeho první verzi vyvinul v roce 1985 Leslie Lamport. Nyní program spravuje a vyvíjí tým lidí jako projekt s názvem LATEX3, dostupný opět zcela zdarma a financovaný formou dobrovolných příspěvků. Systém je opět oblíbený zejména v akademické sféře, ale využívá se například také při zobrazení matematických vzorců na webu Wikipedia. (latex-project.org, 2010) Mezi hlavní výhody programu LATEXmůžeme zařadit následující body: • sazební systém pro psaní článků, technických zpráv, knih a prezentací, • přehled nad rozsáhlými dokumenty s kapitolami, křížovými odkazy, tabulkami a poznámkami, • sázení složitých matematických vzorců, • automatické generování bibliografie a indexů, • sázení vícejazyčného textu, • vkládání grafických prvků do dokumentu, • využití PostScriptu a Metafont písem.
2.2 2.2.1
TEXonWeb Stručná charakteristika
Aplikace TEXonWeb je nástroj pro zpracování textových dokumentů využívající systém TEX bez nutnosti instalace. Jak autor uvádí ve své dokumentaci (Přichystal, 2006), projekt TEXonWeb je „založen na TEX Live 2011 z distribuce Linux CentOS 5.2“. Jádro aplikace je napsáno v jazyce Perl a uživatelské rozhraní v jazycích HTML, CSS a JavaScript s knihovnou jQuery. Jedním z důvodu vytvoření tohoto nástroje byla „možnost nabídnout uživatelům, nejen studentům, snadný a rychlý přístup k systému TEXbez nutnosti jeho instalace“, uvádí Přichystal ve svém článku (Přichystal, 2008). Systém prochází neustálým vývojem a pro začínající uživatele je poměrně rozsáhle zdokumentován. Základním prvkem aplikace je editor, který se skládá z textového pole (HTML prvek