Otázky a odpovědi ke stavebnici Mini-web

|   Hlavní   |   Web a Mini-web   |   Lexikon   >  Otázky   |   MW-jazyk   |   O nás   |  

Obsah:
Jaká je koncepce stavebnice Mini-web,    Proč rozlišujeme základní, rozšířený a úplný model Mini-web,    Jaké jsou potřebné dovednosti ve Windows,    Co nabízí základní model Mini-web,       Integrované spouštění Python-IDLE,    Co je a co nabízí lokální navigační lišta,       Individuální úprava 2. řádku lokální navigační lišty,    Co je a proč je nutné "ladění programů",    Co jsou "vyhrazené" a "programátorské" prvky,    Co je a k čemu slouží "Aktuální protokol",    Doporučený postup při tvorbě webových stránek   

Jaká je koncepce stavebnice Mini-web

   Programování pomocí Mini-web není orientováno na "výkon", ale na klidnou a systematickou zájmovou nebo vzdělávací činnost. Metodou práce je dávkový přístup k ladění, který umožňuje průběžné studium dosažených výsledků každého vývojového kroku a jeho opakování v přesně definovaných podmínkách.

  Na rozdíl od profesionálních vývojových a redakčních systémů, probíhá v klasickém textovém editoru "Poznámkový blok" přímo se zdrojovými kódy. Stránky jsou vytvářeny staticky, tj. bez nutnosti připojení k internetu. To je potřeba teprve při jejich zobrazení prohlížečem, pokud využívají data na webu.

  Tato koncepce umožňuje využívat všechny vlastnosti vývojových aplikací, se kterými pracuje, tj. příkazové skripty Windows, HTML-CSS-JS pro webové stránky a programovací jazyk Python. Ty dlouhodobě patří mezi světově nejrozšířenější programovací nástroje, takže Mini-web může sloužit jako výukový nástroj k jejich studiu.

  Je použit princip "knihoven funkcí", který tvoří základ moderních programovacích jazyků. V knihovnách jsou typizované dílčí částí zdrojového kódu s vybranými vlastnostmi (formálními parametry), které jsou doplňovány konkretními hodnotami teprve pro dané případy využití (při volání funkce).

  Mini-web tedy při generování webové stránky pracuje podobně. Pro sestavení jejích prvků využívá "příkazy" ke vložení "šablon", což jsou úseky zdrojového kódu v jazyku HTML, uložené v "knihovně šablon". Podobně, jako výše zmíněná funkce, musí mít i každá vkládaná šablona konkretní parametry v předepsaném počtu, pořadí a významu.

  Zvolená koncepce není náhodná, ale vychází z více než padesátiletých zkušeností autora v oblasti projektování a realizace velkých IT systémů, tvorbou různých částečně automatizovaných nástrojů i praktického programování od Cobolu (i s Assemblerem), přes HTML až po současný Python - viz též prog-story.

^^^   (03)

 


Proč rozlišujeme základní, rozšířený a úplný model Mini-web

   Programovací stavebnice Mini-web byla vytvořena jako nástroj k automatizovanému generování webových stránek z přímo vkládaného zadávacího kódu a předem připravených typizovaných komponent. Protože je využitelná mnoha různými způsoby, tak je prezentována ve třech úrovních, rozdělených podle nároků na znalosti a zkušenosti jejích uživatelů.

   Základní model je určen k prvnímu seznámení a tak je kladem důraz na nezbytné minimum nových pojmů i dovedností. S tím pak samozřejmě souvisí též předem daný rozsah jeho možností, které jsou samostatně popsány dále. Zásadní výhodou však je, že s jeho pomocí lze webové stránky navrhovat i bez jakékoliv odborné kvalifikace.

   Rozšířený model již vyžaduje zkušenost při práci se složitější strukturou stránek a souvisejících složek ve Windows. Umožňuje též práci se šablonami základního modelu, ale počítá se v něm především s vlastní tvorbou knihoven šablon v jazyku HTML, příp. CSS i JavaScript a využívání dokumentační knihovny řídících příkazů.

   Úplný model pak nabízí v prostředí Mini-web integrovaně navrhovat, realizovat a dokumentovat příkazové skripty Windows i programy v jazyku Python. To znamená nejen třeba tvorbu lokálních foto-galerií, ale i velice praktickou kombinaci plnohodnotného programování s prezentačními možnostmi webových technologií.

   Popisované vlastnosti jsou plně funkční již při instalaci základního modelu, a prakticky využívané jak při práci autora Mini-web na portálu prog-story TM v Brně, tak při vydávání Modřického Internetového Magazínu. Pouze zatím není zpracována a prezentována příslušná dokumentace s jejich podrobným popisem.

^^^   (04)

 


Jaké jsou potřebné dovednosti ve Windows

   Základní model programovací stavebnice Mini-web je obecně určen především pro laické uživatele. Aby však nedošlo ke zbytečným zklamáním, tak je potřeba si před instalací a zahájením práce ověřit a případně doplnit znalost dále popsaných základních dovedností ve Windows.

 práce s myší a s několika otevřenými okny:
   - spolehlivé ovládání levého (LT = spouštění) a pravého (PT = nabídka) tlačítka myši
   - otevření/zavření"x", zmenšení/zvětšení a uložení"_" okna na dolní lištu s obnovou
   - otevření složky v novém okně  
 práce v průzkumníku se složkami a soubory:
   - plocha a podrobnější úrovně, cesta("Procházet") ke složce a k souboru, 
   - vytvoření zástupce pro složku/program/webovou stránku, 
   - typy souborů určují aplikaci (odlišná nabídka PT), po instalaci prohlédnout příklady:
     *.txt (textový editor/procesor), *.cmd (příkazový skript operačního systému Windows), 
     složka htm/*.htm (webová stránka v HTML), složka pg/*.py (program v jazyku Python)
 notepad (poznámkový blok) - editor prostého textu:
   - Soubor > Uložit jako, Formát > Zalamování řádků , Úpravy > Ctrl+X, Ctrl+C, Ctrl+V
   - Ctrl+S (Uložit=save), Alt+F4 (zavření okna)
 příkazové skripty *.cmd
   - vytvoření z *.txt (Soubor > Uložit jako > typ = Všechny soubory, k názvu přidat".cmd")
   - spouštění = 2xLT
   - úprava = PT > Upravit
 aplikace prohlížeč (Chrome, Firefox, Edge, ...)
   - otevírání odkazu v nové záložce a v novém okně, vytvoření nového okna přesunem záložky
   - PT > Zobrazit zdrojový kód stránky 
   - Nabídka aplikace vpravo nahoře > Lupa/Velikost stránky, Najít na stránce ...

^^^   (05)

 


Co nabízí základní model Mini-web

a) Především je to jednotné uspořádání webové stránky ve formě typizovaných plovoucích bloků, s pevně danou výškou i šířkou, s jednotnou barvou pozadí ("cornsilk" = "kukuřičná") a bezpatkovým písmem ("sans-serif").

b) Uvedené vlastnosti jsou definovány v rámci šablon, vkládaných příkazy ">A" pro ladění (zobrazí lištu s užitečnými lokálními odkazy) a ">A-exp" pro předání výsledné webové stránky k samostatnému užití jinde ("export" = bez zmíněné lišty).

c) Zadávací kódy a výsledné stránky jsou ukládány vždy pouze v jedné složce (txt a htm), takže se v základním modelu předpokládá navrhování max několika desítek stránek.

d) Hlavním cílem základního modelu je umožnit navrhování typizovaných webových stránek zájemcům bez jakékoliv odborné kvalifikace. To znamená, že se sice od nich vyžaduje pochopení práce "se zdrojovým kódem", ale pravidla zápisu řídícího i zadávacích kódů nevyžadují žádnou programátorskou terminologii.

e) Pro zahájení práce se stavebnicí je vybrána doporučená sada příkazů pro vkládání šablon a velice důležité je zvládnutí práce s přímo vkládaným kódem. Tím může být buď pevný text, který umožňuje užitečné formátování odsazením mezerami v rámci řádků anebo volný text, ve kterém lze využívat tzv. formátovací značky.

f) Souhrn pravidel k programování řídícího kódu a zadávacích kódů stránek je systematicky uveden v dokumentační kapitole "Nápověda". Stručný výklad všech používaných pojmů pak obsahuje "Lexikon".

^^^   (06)

 


Integrované spouštění Python-IDLE

   Stavebnice Mini-web má ke svému fungování pro jazyk Python standardně nainstalované "Integrated Development and Learnig Environment", tj. "Integrované vývojové a výukové prostředí". Toto prostředí může být využíváno též pro experimentování s programy v jazyku Python. Nabízené možnosti si předvedeme pomocí "demo-příkladu":.

a) v pracovní složce "Mini-web" si vytvoříme podsložku "pw"
b) v souboru "Řízení-práce" zadáme od 1. sloupce jméno příkladu "pw/io-cyklus.py"
c) současně zde musíme změnit též režim práce stavebnice, tj. odsunutím o 3 mezery potlačíme "call gen"
    a od 1. sloupce zadáme příkaz "call python", uložíme a spustíme skript EDA.
d) do souboru, nabídnutého v IDLE zapíšeme zdrojový kód v jazyku Pyhon, bez komentářů /* .. :


""" io-cyklus = program cyklu pro vstup a výstup dat """    /* komentář: název programu
Inp = " "                                                   /* proměnná s počáteční hodnotou "mezera"
while Inp != "":                                            /* "dokud Inp není "", prováděj:"          ("" = pouze Enter)
    Inp = input("napiš text ... : ")                        /*     "vlož do Inp text z klávesnice"
    print(Inp)                                              /*     "zobraz hodnotu proměnné Inp" 
print("end")                                                /* zobrazení zprávy "end"

e) napsaný program uložíme stiskem Ctrl+S a spustíme klávesou F5, IDLE otevře nové okno, ve kterém program spustí,
    takže s ním můžeme komunikovat
f) přepínámím mezi okny IDLE a opakováním činnosti dle e) můžeme tvořit varianty programu
g) experimentování ukončíme Alt+F4 nebo "x"

   (!) Pokud hodláme pokračovat v režimu tvorby webových stránek, nesmíme zapomenout v souboru Řízení-práce potlačit jméno příkladu i "call python" a nastavit opět "call gen" (!).

^^^   (06a)

 


Co je a co nabízí lokální navigační lišta

   Všechny prohlížeče nabízejí službu, která by se dala nazvat "lokální web". Když do adresního řádku při prohlížení nebo do odkazu v zadávacím kódu stránky namísto webové adresy napíšeme cestu k určité složce na lokálním počítači, nabídnou nám její prohlížení i s odkazem na jí nadřazenou ("adresář"). V rámci stavebnice Mini-web je to využito k vytvoření tzv. lokální navigační lišty.

   Lokální navigační lišta se automaticky vytvoří příkazem ">A" pro začátek stránky. Pokud má být stránka použita jinde ("exportována"), tak po jejím odladění změníme příkaz na ">A-exp" a lišta vytvořena nebude.

   Velkou výhodou navigační lišty je, že odkazuje na obsahy složek a souborů, které se aktualizují automaticky, takže máme trvalý přehled.

  Kdykoliv si tak můžeme prohlédnout nastavení v souboru Řízení práce, Zadávací kódy (*.txt) všech rozpracovaných nebo již hotových stránek i jejich výsledné zobrazení (*.htm).

   Užitečná je také možnost si v klidu opakovaně prohlížet právě aktuální protokol, kterou oceníme zvláště při hledání, proč to či ono nedává při vývoji stránky požadované výsledky.

   V neposlední řadě je velice důležitou součástí lokální navigační lišty odkaz na nápovědu se systematickým popisem všech potřebných pravidel pro navrhování stránek.

   Pro návaznost na souvislosti jsou uvedeny též odkazy na externí webové zdroje, které duplicitně nabízejí aktuální informace o nových verzích i další. Konkretně jde o server prog-story Technického muzea v Brně a Modřický internetový magazín.

   Z uvedeného výčtu je patrné, že tato lišta slouží především k orientaci na lokálním počítači a její zobrazování v jiém prostředí či na webu by nedávalo smysl.

^^^   (07)

 


Individuální úprava 2. řádku lokální navigační lišty

   Obsah 1. řádku je "vyhrazený", tj. definovaný v knihovně "sz", do které programátor Mw-jazyka nemá přístup.

   Aby bylo možno si v rámci Zápisníku vytvořit vlastní navigaci, šablona ">A" je nastavena tak, že si připojí též 2. řádek z knihovny "htm", resp. "txt".

   Tento 2. řádek je definován jako samostatný soubor s vyhrazeným názvem "navig-2", je dodáván v rámci instalačního sestavení a může být programátorsky libovolně upravován.

   Protože se jedná o samostatně generovaný prvek stránky, nemusí to být pouze řádek, ale prakticky cokoliv, co si v zadávacím kódu "navig-2" programátor navrhne.

   Je však nutno mát na paměti, že "navig-2" není stránka, ale pouze její část, takže nesmí obsahovat příkazy ">A.., >D, >Z.." a nejsou vhjodné ani bloky.

^^^   (07a)

 


Co je a proč je nutné "ladění programů"

   Jako "stupeň volnosti" se ve fyzice nebo statistice označují vzájemně nezávislé veličiny (vnitřní proměnné), které určují stav systému. Bod na ploše má 2 stupně volnosti (souřadnice x,y), těleso v prostoru 9 (osy x,y,z a ke každé z nich otáčení) a tak podobně.

   Počítač je univerzální automat, ve kterém počet nezávislých proměnných, které určují stav systému může být libovolný - tedy "s neomezeným počtem stupňů volnosti". Programy i pro jednoduché úlohy mívají těch proměnných celou řadu a postupují po krocích, takže k dosažení požadovaného stavu, tj. konečného výsledku vede mnoho různých cest, z nichž některé se mohou postupně ukázat i jako slepé.

   Vytvoření programu, který přesně a spolehlivě zrealizuje to, co se od něj očekává, tedy v převážné většině není možné "z jedné vody načisto". Vyžaduje proto více či méně náročné, ale vždy pokorně a trpělivě opakované "ladění". Účelem ladění je postupně objevení a odstranění "chyb", tj. závad nebo problémů, které brání požadovanému fungování.

   Výskyt chyb, které je nutno laděním postupně odstraňovat v žádném případě nelze chápat jako nedostatek či selhání na straně tvůrce programu. Vyplývají totiž z podstaty věci, tj. z počtu stupňů volnosti, se kterými je nutno se vypořádat. Proto se také v angličtině pro ně používá název "bug" (vysl. bag), tj. "štěnice, brouček, moucha" a ladit = "debugging" (vysl. dybaging).

   Programy v jazyku aplikace Mini-web, které je takto potřeba ladit jsou řídící kód v souboru Rizeni-prace a zadávací kódy stránek. Důležitým podkladem pro ladění je dále popsaný Aktuální protokol, který automaticky zaznamenává výsledky jednotlivých kroků při generování webových stránek.

   Jak bylo uvedeno výše, na některé chyby dokáže počítač upozornit konkretně, ale na většinu dalších ne. Pokud tedy po spuštění skriptu EDA výsledek neodpovídá představám zadavatele, je třeba postupovat podle kapitoly "Doporučený postup při tvorbě webových stránek".

^^^   (08)

 


Co jsou "vyhrazené" a "programátorské" prvky

   Každé společenství má "vyhrazené" prvky, někdy označované též jako "rezervované", které je nutné respektovat, ale nelze je vymezit jinak, než vyhlášením pravidel a hrozbou sankce při jejich porušení.

   Zvířata si chrání svoje teritorium nebo postavení ve smečce. Člověk bez oprávnění nesmí nosit policejní uniformu nebo používat signály hasičů či sanitky na autě. Nesmí se vjíždět na komunikaci, vyhrazenou pro pěší, cyklisty či dopravní obluhu, vstupovat do železničního kolejiště, atd, atd ... .

   Podobně platí, že "vyhrazené" prvky i související pravidla je třeba respektovat při práci se zdrojovými kódy, s aplikacemi a s počítači vůbec. Vzhledem k již zmíněnému množství "stupňů volnosti" se totiž počítač, nejrčastěji při čtení zdrojového kódu, nedokáže vždy zeptat, jak to vlastně myslíte a vyřeší to "po svém". A programátor se pak diví, proč to či ono nefunguje tak, jak si představoval.

   Sankce při neoprávněné manipulaci s vyhrazenou složkou nastavení aplikace nejsou tak nebezpečné, jako rána proudem z elektrického rozvaděče při neoprávněné manipulaci, ale aplikace pak podobně také nefunguje tak, jak by měla.

   Podrobné vymezení "vyhrazených" prvků a programovacích pravidel pro aplikaci Mini-web je náplní samostatné stránky "Nápověda-Z". Současně jsou tam definovány též prvky "programátorské", tj. takové, jejich pojmenování či obsah lze při programování stránek navrhovat dle vlastní úvahy.

   Na rozdíl od uvedených příkladů z jiných oborů, má počítač jednu mimořádně užitečnou vlastnost. S nekonečnou trpělivostí a bez rozčilování dokáže klidně a neunavně opakovaně připomínat, že cestu ke správnému výsledku musí programátor hledat především sám u sebe. To prosím není fráze, ale zkušenost, nesčíslněkrát ověřená v průběhu více než 50-ti leté analyticko-programátorské praxe autora Mini-web :o).

^^^   (09)

 


Co je a k čemu slouží "Aktuální protokol"

   Při jakékoliv vývojové práci s počítačem je potřeba mít možnost kontroly nad jejím průběhem. V aplikaci Mini-web k tomu slouží soubor autuálního protokolu, který automaticky zaznamenává úspěšné dokončení všech důležitých kroků. Soubor je vytvářen při každém spuštění skriptu EDA, je nabídnut ke zběžnému prohlédnutí po dokončení generování a pak je až do dalšího spuštění skriptu k dispozici přes lištu lokální navigace.

   Obsahem protokolu je kombinace informací z kódu pro řízení práce a ze zadávacích kódů všech generovaných stránek. Pro laického programátora je základní informací, že při úspěšném generování by obě části protokolu měly končit zprávami ".. --- ok".

   Současně je signálem úspěšného dokončení, když černá obrazovka příkazů systému Windows zůstává po celou dobu práce skriptu EDA bez jakýchkoliv textových zpráv. Její zobrazování je možné při prvním zastavení potlačit "_" uložením okna na dolní lištu, protože případné zprávy nejsou určeny pro laického programátora.

   Pokud obě části protokolu nekončí zprávami "ok", je třeba hledat příčinu. V některých případech je v protokolu přímo upozornění na chybu "!!! .. Err.." anebo tam být nemusí. Ve všech případech však platí, že protokol postupně zobrazuje realizaci všech pokynů jak pro řízení práce (editace, generování), tak všech příkazů ">.." ze zadávacích kódů stránek. Pokud tedy zadaná práce nebyla úspěšně dokončena, je možno s jeho pomocí zpětně vysledovat, kde k chybě došlo.

   Podrobnější návod k řešení problémů je rozveden v samostatné příručce "ladění-Z". Zásadní však je, vždy postupovat systematicky, tj. hledat vše podstatné, co by mohlo ovlivnit dosažení požadovaného výsledku. Při programování k tomu ještě přistupuje velice důležitá skutečnost, že "nic není tak významné, aby to nebylo relativní". Jinými slovy vždy musíme zkoumat všechny možné souvislosti, i když se nám z prvního pohledu jeví jako nepodstatné. Vzhledem k těm nekonečně mnoha stupňům volnosti totiž často bývá příčina úplně jinde, než v místě, kde se chyba konkretně projeví.

^^^   (10)

 


Doporučený postup při tvorbě webových stránek

   Především je potřeba si ujasnit, co má stránka obsahovat, resp. k jakému účelu má sloužit. Stavebnice Mini-web k tomu nabízí velice užitečný jednoduchý prostředek ve formě širokého bloku s přímo vkládaným pevným textem, který může fungovat jako "projekt stránky".

   Díky možnostem komentářů můžeme od počátku zvolit cílové jméno stránky a v úvodním bloku si postupně zapisovat a zobrazovat, co všechno na stránce bude a po dokončení stránky pak zobrazení potlačit. Průběžně si také přímo do zadávacího kódu stránky můžeme ukládat odkazy na webové zdroje, ze kterých budeme stránku skládat. V přímo vkládaném kódu volného i pevného textu stačí na počátku řádku uvést "*" a celý řádek je při zobrazování ignorován.

   Na základě projektu si pak pomocí dvojic příkazů ">blok ... >--" vytvoříme strukturu celé stránky, kterou budeme postupně naplňovat potřebnými obsahovými prvky. Tento doporučený postup má tu výhodu, že díky přístupu po jednoduchých krocích můžeme průběžně sledovat postupný vznik výsledné stránky a v každém okamžiku máme kontrolu nad tím, co děláme.

   Procesy stavebnice Mini-web jsou realizovány pomocí příkazů Windows a programů Python v dávkovém režimu. Realizační skript EDA, který nabízí prakticky okamžitou odezvu, lze proto spouštět s libovolným počtem opakování a ve vývoji postupovat po malých krocích. Takový způsob práce velice účinně eliminuje vznik chyb a zjednodušuje hledání příčin problémů i jejich odstraňování.

   Detailní přehled nejčastějších chyb při ladění i doporučená metodika pro jejich hledání budou postupně obsahem samostatné příručky.

^^^   (11)

 

 

Stavebnice Mini-web v-2206-26, Vlastimil Čevela, aktualizace 26.06.2022-12:31