Webové technologie (VŠCHT – LS 2025/2026)
Jiří tečka Znamenáček plus IP zavináč gmail tečka com
Přednášky
-
Úvodní slovo & organizace předmětu.
Ukázka – tento výukový web.
-
Význam (sémantika) v textových souborech:
a) základy XML
b) více o XML
c) popis struktury XML-souborů a jejich validace
d) jmenné prostory v XML
-
Navigace po stromečkové struktuře:
a) navigace po XML pomocí XPath(1)
b) selektory v CSS (plus úvod do CSS vůbec)
Reprezentace XML pro potřeby zpracování:
a) XML/HTML & DOM
b) eTree v Python'u
c) SAX v Python'u
-
Intermezzo o kódování aneb Od binárních dat k textu:
a) kódování, Unicode
b) kódování HTML a XML, znakové entity
-
HTML5 – jazyk webu:
~ přehled HTML5 (včetně souvisejících technologií)
~ základní elementy HTML5
-
HTTP – skrytý jazyk webu:
a) Jemný úvod do TCP/IP aneb „Co všechno se musí (a může) stát, aby prohlížeč zobrazil vyžádanou stránku“
b) protokol HTTP
WSGI v Python'u
-
Formuláře v HTML:
a) obecně o formulářích v HTML (připravil Jiří Novotný)
b) element <input> (připravil Jiří Novotný)
c) další formulářové prvky [TODO]
-
Objektová reprezentace webu – ECMAScript (JavaScript) & DOM:
a) JavaScript z rychlíku [TODO]
b) nápověda k psaní webových skriptů
c) použití objektu console
d) „Jak odbroukovávat webové aplikace na mobilu“ [TODO]
e) javascriptí WebAPI (připravili Dominika Zumrová a Martin Engst)
f) stylopisové CSS API (připravily Kateřina Večerková a Martina Zoubková)
g) přenos dat v adrese zdroje pomocí DataURL
h) univerzální formát pro přenos dat – JSON (specifická podmnožina JavaScriptu)
-
Pokročilejší JS:
~ vlastní objekty
~ rozšiřování vlastností vestavěných objektů
~ WebWorkers a ServiceWorkers
~ moduly
~ …
-
Aplikace typu PWA a jejich instalace
~ manifest aplikace
~ použití ServiceWorkers k síťové komunikaci a práci s cacheí
~ debugování webových aplikací na mobilu, nástroj adb
~ instalace PWA, resp. A2HS
-
…
-
Úvod do SVG:
a) úvodní přehled
b) základy
c) základní prvky [TODO]
-
WebAudio API:
~ zvuky v prohlížečích
~ WebAudio API @ MDN
~ příklady od MDN na WebAudio
~ stručný úvod do protokolu MIDI
~ MIDI v prohlížečích
-
Knihovna D3.js:
a) úvod do práce
b) vstupní data aneb JSON
c) stromový „layout“
-
Knihovny A-Frame a ThreeJS:
a) A-Frame
b) ThreeJS
-
Knihovna X3DOM:
a) X3DOM
Zápočet a zkouška
Je třeba odevzdat všechny domácí úkoly a vyřešit semestrální práci.
Semestrální práce
Zadání: Navážeme na semestrální projekt z Python'u – vyrobíme jednoduchou webovou aplikaci pro úpravu obrázků pomocí základních grafických transformací a filtrů. Hlavním úkolem bude prostudovat práci s binárními daty pomocí JavaScriptu, přičemž data nahrajeme na web pomocí formulářových prvků v HTML.
Kromě vestavěných filtrů a transformací z CSS bude aplikace obsahovat alespoň dva netriviální konvoluční filtry, které spočítá ve vedlejším vlákně pomocí workeru nad binárními daty z kanvasu (viz příklad na Mandelbrotovu množinu a Pixel manipulation with canvas).
PS: Součástí výstupu bude funkční aplikace pro telefon typu PWA. Jelikož sejmout obrázek z kamery je pomocí HTML5 triviální, mohlo by to snad sloužit jako motivace dotáhnout semestrálku do konce ^_~
Poznámky:
-
výsledný kód mi dodáte (nasdíleno přes GitHub, zasláno poštou…) a aplikaci předvedete na svém telefonu (stačí ve verzi A2HS);
-
ServiceWorker zaregistrovaný během vývoje na adresu
http://localhost:8000 tam zůstane viset, pokud ho neodstraníte, tak abyste se pak někdy později nedivili, co že se vám to tam hlásí za podivnosti :-)
-
…