My work

There is nothing amazing to see yet but perhaps you might be interested in some of my school projects:

BP v Docbook-u

BP v Docbook-u

Zadanie

Predmetom 2. zadania je spracovanie vybraného dokumentu (ideálne bakalárskeho projektu) z pôvodného ľubovoľného (Word, OpenOffice, LaTeX, …) formátu do formátu DocBook a vygenerovanie cieľového tvaru v PDF. Výsledný dokument bude mať rozsah minimálne 10 a maximálne 15 strán. Do rozsahu sa nezapočítavajú úvodné strany (obsah, zoznamy obrázkov a tabuliek), použitá literatúra a prílohy.

Požadované a kontrolné konštrukcie sú:

  • štandardné členenie textu na kapitola, podkapitola, podpodkapitola, príloha, generovaný obsah,
  • zvýraznenie slov, zvýraznenie členenia textu odrážkami alebo číslovaním,
  • odkazy na iné časti vlastného dokumentu, prípadne odkazy na URL,
  • poznámka pod čiarou,
  • zoznam použitej literatúry a zdrojov vrátane ich citácie v texte,
  • vloženie obrázku a tabuliek, odkazy na ne v texte; zoznam obrázkov a tabuliek v úvode alebo závere textu,
  • vytvorenie registra pojmov (indexu) s pojmami hierarchicky usporiadanými do dvoch úrovni, napríklad „cykly, while“, „cykly, for“ (najmenej ako ukážku na 10-15 pojmoch na predvedenie práce s registrom).

Vypracovanie zadania

Aby bolo možné dosiahnuť požadované konštrukcie museli byť v pôvodnom obsahu bakalárskej práce urobené nasledujúce zmeny:

  • pridanie zoznamu obrázkov a tabuliek
  • pridanie registra pojmov
  • pridanie poznámky pod čiarou

Ďalej bolo nutné odstrániť z práce všetky tabuľky a nahradiť ich obrázkami vzhľadom na fakt, že Docbook ich nepodporuje bez nutnosti externých Java knižníc. Bohužiaľ tieto knižnice (xalan, xercesImpl, xml-apis) na seba navzájom nadväzujú a na mojom počítači som ich nebol schopný spustiť tak aby boli viditeľné pre Saxon. Pri preklade tak došlo vždy ku nasledujúcej chybe: “No adjustColumnWidths function available (Processing terminated)”. Neskúšal som replikovať problém na inom stroji pretože podľa dostupných informácií niektorým študentom tieto knižnice fungujú a niektorým zasa nie. Napriek tomu sú v odovzdanom XML kóde tabuľky aj s ich pôvodným obsahom v Docbook formáte zahrnuté avšak sú umiestnené len v komentároch. Pre viac informácií o spomínanej chybe kliknite sem alebo sem.

Najčastejšie používanými elementami zadania sú logicky elementy chapter, section, title, para, itemizedlist/listitem, xref a figure. Z atribútov sú to hlavne unikátne identifikátory (id) a role. Vzorové XSL schémy boli prispôsobované v miere nutnej pre korektné formátovanie titulnej strany, automatické generovanie zoznamu obrázkov a správne zobrazenie v slovenčine.

Zoznam súborov a pokyny pre spustenie

Repozitár obsahuje nasledujúce súbory/priečinky:

  • images - priečinok s obrázkami
  • fo.pdf - výstupný PDF súbor
  • mojabp.xml - vstupný XML súbor s obsahom bakalárskej práce (10-15 strán z pôvodného)
  • xmeluch_bp.pdf - pôvodné znenie bakalárskej práce
  • fo_saxon.bat - docbook konverzia, na vstupe treba zadať ako vstupný súbor mojabp.xml
  • thesis.xml - všeobecná vzorová šablóna
  • thesis-tp-fo.xml - vzorová šablóna pre titulné strany atď. (includovaná do thesis.xsl)

Pre získanie výstupného PDF súboru je nutné zadať nasledujúce príkazy (za predpokladu, že je tento adresár s názvom “bp” umiestnený v C:/Docbook/bat/):

  • fo_saxon.bat mojabp.xml
  • pdf_xep.bat

Natankuj

Natankuj

A desktop clone of the local Slovak web application monitoring current fuel costs called “Natankuj” but with some added functionality such as graphs and HTML price parsing from the original website. The real challenge was that the application had to be written as a JavaEE project using technologies such as Glassfish (application server), Hiberante (ORM), JavaFX (GUI) and PostgreSQL (persistance).

Scanpath Evaluator

Scanpath Evaluator

This application is currently still under development since it represents the assignment of my Bachelor thesis. However, the main idea is to provide a simple way to compare and evaluate eye-tracking data captured by Tobii eye-tracking devices which are widely used in UX research. It features Python, Flask, PostgreSQL, HTML Canvas, AngularJS and various other JavaScript libraries.

Prezentácia pomocou XML a XSL(T)

Prezentácia pomocou XML a XSL(T)

Zadanie

Analyzujte možnosti zápisu jednoduchej prezentácie v jazyku XML. Identifikujte základné súčasti prezentácie a navrhnite XML elementy pre ich označkovanie (metadátové, štrukturálne, inline). Dbajte na znovupoužiteľnosť a vyvarujte sa redundancií. Návrh elementov zrealizujte opísaním typu dokumentu pomocou vybraného jazyka (DTD, XSD, RELAX NG) spolu s vysvetlením účelu jednotlivých elementov. Vo vami navhrnutom jazyku vytvorte ukážkovú prezentáciu, ktorá bude demonštrovať možnosti tvorby prezentácií podľa definície typu dokumentu.

Navrhnite a vytvorte XSLT šablóny pre konverziu prezentácie z XML do XHTML+CSS a pre konverziu prezentácie z XML do PDF. Klaďte dôraz na znovupoužitie jednotlivých šablon pre viaceré výstupné formáty. Umožnite zadávanie parametrov transformácií.

Súčasťou požiadaviek na zadanie je vytvorenie správy o zadaní 3, v ktorej zdokumentujete splenie jednotlivých bodov zadania. Správa bude súčasťou vašej stránky o Webovom publikovaní na GitHube.

Vypracovanie zadania

Pre demonštráciu vypracovaného zadania som si zvolili ukážkovú prezentáciu o umelej inteligencii, ktorú som pripravil počas tohto semestra na inom predmete. Prezentácia obsahuje 7 vlastných slidov v rôznych rozloženiach (úvodné, obrázok vľavo, obrázok vpravo, iba obrázok, predvolené). Slidy sú generované do výsledných súborov v takom poradí, v akom po sebe nasledujú vo vstupnom súbore. Niektoré parametre transformácie je možné riadiť parametrami definovanými v externom XSL súbore (viď zoznam súborov nižšie). Samotná XML štruktúra prezentácie je opísaná v externom DTD súbore a zahŕňa nasledovné vlastné elementy:

  • prezentacia - koreňový element (viaže sa naň DOCTYPE)
  • info - metadáta pre automatické generovanie dodatočných informácií (napr. HTML head element)
    • author, description..
  • slide - reprezentuje slide v rozložení, ktoré je definované atribútom layout
    • slide-info - wrapper pre nadpisy
      • subtitle/title - nadpisy jednotlivých slidov
    • slide-content - wrapper pre obsah slidov
      • para - odseky
      • ul/ol - nečíslovaný resp. číslovaný zoznam
      • img - obrázok
  • emp - text kurzívou
  • strong - text tučným písmom
  • obsah - prázdny element, ktorý ak je definovaný tak spustí automatické generovanie záverečného slidu

Pre vstupný XML súbor boli vytvorené XSL transformačné šablóny pre transformáciu do HTML a PDF. Štýlovanie výstupu v HTML je realizované pomocou externého CSS (resp. SASS) súboru. Štýlovanie PDF dokumentu nie je na takej úrovni ako HTML výstup vzhľadom na komplikovanejšiu syntax jazyka XSL-FO - generuje sa tak primárne plain text, nadpisy a obrázky bez ohľadu na ich zamýšľané rozloženie.

Zoznam súborov a pokyny pre spustenie

Repozitár obsahuje nasledujúce súbory/priečinky:

  • images - priečinok s obrázkami
  • css - preičinok s CSS/SASS štýlmi pre HTML verziu prezentácie
  • prezentacia.xml - vstupný XML súbor s obsahom prezentácie
  • prezentacia_dtd.xml - DTD definícia vlastných typov elementov
  • prezentacia_html.xsl - XSL súbor pre účely transformácie prezentácie do formátu HTML
  • prezentacia_pdf.xsl - XSL súbor pre účely transformácie prezentácie do formátu PDF
  • prezentacia_params.xsl - nastaviteľné parametre vyššie uvedených transformácií (napr. zobrazenie navigácie)
  • slide_1.html - slide_8.html vzorová prezentácia vo formáte HTML
  • prezentacia_fo.pdf - vzorová prezentácia vo formáte PDF
  • saxon.bat a pdf_xep.bat - dávkové súbory pre preklad do HTML a PDF

Pre získanie výstupných (formátovaných) súborov je nutné zadať nasledujúce príkazy (za predpokladu správnych ciest ku knižniciam Saxon a XEP):

  • saxon.bat - formátovanie obsahu prezentácie do HTML (výstupné súbory slide_1 až slide_X)
  • pdf_xep.bat - formátovanie obsahu prezentácie do PDF (výstupné súbor prezentacia_fo.pdf)

Nie je nutné na vstup .bat súborov zadávať žiadne dodatočné parametre