Snímka 10

practi$e.php

Programovací jazyk C a vytvorenie systému practi$e.php

Späť na úvod

practi$e.php

Programovací jazyk C a vytvorenie systému practi$e.php

    Už od školy som si robil poznámky. Väčšinou boli zdrojom web stránky v zmysle tu je kód a môžete ho použiť. Tu je vysvetlená teória k príkazu a pod. Skrátka kúsok tu, kúsok tam. Už som poznal HTML a pridal som aj PHP. Takže som vedel stránku rozobrať, či danú zaujímavú časť vybrať a presunúť do svojich dát. Len tých dát pribúdalo a bolo ich treba nejako poukladať. Tak som si uvedomil, že to urobím v duchu strojára. Strojár má priveľa tabuliek. Nemusí poznať naspamäť ich obsah. Má vedieť v ktorých tabuľkách to nájde. Tak som sa rozhodol, že vytvorím vzorovú štruktúru pre opakované prvky a opakované používanie, ako celok. Skrátene, je jedno čo spoznámkovávam, spôsob bude vždy rovnaký.

    Premýšľal som, po čom siahnem, ako prvé. Do úvahy prichádzalo sprektrum od PHP až po Linux Documentation Project. Nakoniec som siahol po Programovacom jazyku C. Domnieval som sa, že je významne prvý z jazykov. Bol vo všetkých OS. A stále sa o ňom hovorilo.

    Vzal som teda knihu a stránku po stránke som sa jazyk učil, spoznámkovával text, riešil programy a zároveň som vystaval web. Tieto knihy a im podobné, hlavne kolektívne HTML, majú veľa chýb. Vhodných a možno aj zámerných chýb. A to je na nich to skvelé. Prechádzaním som sa to nie len učil, ale čo je dôležitejšie, mal som možnosť a nutnosť, každú chybu, program, tvrdenie, odskúšať a opraviť. Vymyslieť a doplniť ďalšie programy, obrázky, texty. Web stránka je na to ideálna, kedykoľvek, stačí len dopísať. Nie je to limitovaná tlačená A4.

    V rámci webu som vytvoril, okrem kľúčových slov, aj iné opakujúce sa prvky, ako funkcie, knižnice a pod. Takto som ich mohol, ak na ne prišlo, vkladať do textu, resp. do kódu. Takto vložené skratky kódov potom generovali dodatočné informácie. Dajme tomu, že na stránke v texte, alebo v kóde programu je slovo int. Nadídením kurzoru nad int vyskočí okno s informáciami, čo to je. Aké to má vlastnosti. Ako sa to dá použiť. Kde to bolo spomenuté.

    practi$e.php

    Jedná sa teda o ucelenú filozofiu. Je tu učenie a zároveň precvičovanie aj iných jazykov. Prvky na pozadí sú rovnaké po celú štruktúru, len sa pridávajú nové a nové. Takže takto vznikla prvá podoba systému practi$e.php. Tento konkrétny pre jazyk C má úpravu aj pre tlač. A web bol farebne vytlačený. Tie následné už tlač nemajú, pretože sú ďaleko rozsiahlejšie.

    practi$e.php v tejto podobe pozostával so základných súborov, ako koncept preddefinovaného vzhľadu. Kľúčových slov, ako premenných. Preddefinovaných štýlov ohľadne typu, napr. kľúčové slová jazyka, funkcia, dátový typ a pod. A samozrejme samotný text a vkladané obrázky. Používaním sa časom vyvíjal.

    • Kniha Brian W. Kernigham and Denis M. Ritchie - The C Programming Language, 1978/1982/1988, alias K&R C

practi$e.php verzia 2

Dokáže viac a prečo je to tak dokonalé pre tých, čo sa chcú učiť programovať.

    practi$e.php v1
    • premenné
    • kaskádové štýly
    • niekoľko funkcií

    practi$e.php v2
    • premenné
    • kaskádové štýly
    • funkcie
    • niekoľko objektov OOP

    Prvá verzia practi$e.php bola založená hlavne na premenných. Druhá verzia je založená hlavne na funkciách a trochu OOP. A teraz k samotnému náhľadu na súbory. Vo v1 je jedna téma (napr. programovací jazyk C) spracovaná v jednom adresári. Teda všetko od podporných súborov až po poznámky, obrázky, všetko v jednom. Vo v2 je jednu tému možné spracovávať vo viacerých adresároch. Teda riadiace prvky sú na rovnakej úrovni ako téma. Tu už ide o to, že danú tému môžeme mať z viacerých zdrojov. Napr. PHP od autora1 a tak isto PHP od autora2 a ďalších. Každý zdroj si teda spoznámkovávam samostatne v samostatnom podadresári. Ale používam podporné súbory pre všetkých z jedného miesta na rovnakej úrovni štruktúry súborov. Pričom k danému kľúčovému slovu z podporných knižníc, môžem kľudne dopisovať nové poznámky, napr. ten autor doporučuje už nepoužívať a tam ten opak a pod. Je to vhodné hlavne s ohľadom na to, že medzi autorom1 a autorom2 môže byť odstup aj niekoľko rokov. Ale tú informáciu vidíme, ako v starých, tak aj v nových poznámkach. Napr. HTML tagy. Už je ich dosť, ktoré sú zastaralé a nedoporučuje sa ich používať. PHP funkcie a hlavne definované postupy v znení, bolo to takto, po novom je to takto. Náhrady, toto sa nahrádza za nové a mnohé ďalšie.

    Vo v3 to ide ešte o krok ďalej.

practi$e.php verzia 3

Dokáže viac a prečo je to tak dokonalé pre tých, čo sa chcú učiť programovať.

    practi$e.php v3
    • vyladené predošlé prvky a vlastnosti
    • a hlavne OOP

    Tretia verzia je ešte viac rozšírená. V prvej verzii bolo logicky všetko v jednom adresári. V druhej verzii bolo logicky tiež všetko v jenom adresári, ale ten už mal v sebe podadresár kľúčových slov a podadresár samotnej témy. Pričom tá téma mohla byť viackrát. Logicky nasleduje ďalší krok. Čo ak budem spracovávať tému, ktorá k sebe potrebuje inú tému. Dobrým príkladom je HTML. Ak si ho spoznámkujeme, určite tam budeme používať CSS. Určite pridáme JavaScript, alebo jQuery. Čo s tým. Nechceme predsa kopírovať kľúčové slová danej témy. Vyriešil som to tak, že kľúčové slová som umiestnil o úroveň vyššie do globálneho adresára. Rovnaká téma je v jednom adresári, ale kľúčové slová už nie. Ak by však boli kľúčové slová v adresári danej témy, cesta k nim by bola zložitá a v prípade premenovania témy, resp. premenovaniu adresára, by to celé spadlo. Preto globálny adresár. Z neho je možné čerpať, kam bude potreba. V skutočnosti ide o tri globálne adresáre. Prvý sú kľúčové slová. Druhý sú súbory kľúčových slov, teda informácie k nim. Tretí sú súbory starajúce sa o rovnaký vzhľad stránok. Dizajn, rozloženie stránok a pod.

    Poďme k practi$e.php v3 bližšie. Systém je možné meniť a prispôsobovať. Vo svojej podstate, je akoby kniha. Zoberiem to od konca.

    Text a obrázok

    Text, bežný text. Potom kľúčové slová. Tie sa vkladajú, ako kúsky kódu. Konkrétne kód objektu. Ten potom spája slovo s informáciou o danom slove. Potom sú tu špecifické tagy pre cudzie slová, premenné, typy, operátory a iné. Vkladané slová a výrazy preberajú farebné rozlíšenie z globálnych prednastavení. Všetko so zámerom, aby bolo jasné, že tieto slová niečo znamenajú a ich význam je všetkými poznámkami naprieč identický, napr. jeden jazyk, jedna farba. Všetky dátové typy, jedna farba a pod. Obrázok. Ten je lokálny, ale jeho umiestnenie na stránke, sa riadi z globálneho adresára miestnymi parametrami. Ak poviem, že jedna téma môže obsahovať aj tisíc obrázkov, asi mi nebudete veriť. Ani ja by som neveril, ale stalo sa. Z praxe som vyšpecifikoval dve veľkosti obrázku a viac nebolo potrebné.

    Nadpis, podnadpis

    Nadpis témy, kapitol a podkapitol sa zapisuje do vzorového dokumentu. Pridávam aj ďalšie informácie, napr. pri videách čas, názov videa a jeho veľkosť. Z tohoto dokumentu sa potom dáta prenášajú do hlavného indexu stránky, do obsahu, do stránky kapitoly, malého podmenu stránky a nakoniec ku kapitole samotnej. V samotnom obsahu sa číselné dáta vyhodnocujú, celkový čas, miesto na disku a pod. Tým pádom jedna web stránka je ucelená jedna kapitola, so všetkým, čo k nej patrí. Postupne sa pridávajú ďalšie web stránky. Rovnako, ako v knihe. Od obsahu, úvodu, kapitoly, až po prílohy. To delenie je na nás. Pridávané časti sa riadia číselne, jednoducho nasledujúcim číslom. Preto, ak je potrebné zmeniť poradie, postačí iba dokument prečíslovať. Alebo ak chcem vložiť úplne novú kapitolu medzi existujúce, tak len vnorím medzi čísla a ostatné prečíslujem.

    Jedna špeciálnosť tu je. Nultá kapitola. Tú som podchytil pri knihách Linuxu. Tam ešte pred očíslovanou kapitolou bola neočíslovaná časť, akoby predkapitola kapitoly. V tejto verzii je to stránka, kde môžeme voliť tému kľúčových slov. Pre všetky témy je tu spočiatku aktivovaných päť základných tém. A následne, ak už téma existuje, tak sa pripojí, ak nie je, tak sa vytvorí a pripojí. Takto si z globálnych kľúčových slov pripojíme potrebné témy. Celé je to potom, ako strom, ktorému pribúdajú ďalšie konáre a stále sa iba doplňujú ďalšie a ďalšie prvky.

    Ako to funguje

    Knihy, skriptá, proces inštalácie, vlastné postupy, čokoľvek, čo je vhodné spoznámkovať. Videá z internetu. Kľudne jedno video, alebo celý kurz. Princíp je rovnaký. Ako prvé si v nultej kapitole zapíšeme nadpisy. Ak je ucelený kurz je to ľahšie. Ak je jedno tri hodiny trvajúce video a ešte som ho nevidel, tak sa tiež nič nedeje. Dopíšeme, alebo vpíšeme medzi už zapísané neskôr. Je na nás si určiť delenie na menšie celky. Už zadaním nadpisov sa predpripravuje delenie stránok. Potom už len vpisujeme text a vkladám obrázky. Pokiaľ chcem kľúčové slovo, to si vyberiem z nultej kapitoly. Pokiaľ chcem obrázok, ihneď odsnímam očíslujem a vložím do patričného adresára. Výsledok vidím priamo na stránke. Celý systém je založený na opakovaní tých istých vzoroch. Vytvorím jednu kapitolu a všetky ostatné budú principiálne rovnaké. Ak začínam úplne novú tému, stačí založiť nový adresár a skopírovať šesť súborov a môžem začať. Tak jednoduché a intuitívne to je. Ja som takto už vytvoril 17 veľkých tém a niekoľko menších. Napr. PHP a Python v sebe obsahujú rovnako po 8 podtém. Pričom tých 8 z PHP predstavuje 10 rokov, od verzie 5 až po 8.

    Možno sa zdá, že tu píšem len o poznámkach, či akejsi kópii prekladu, alebo kopírovaní predlohy. Nie je to len o tom. Väčšinu toho, čo mám ja, tvorí postup písania kódov programov. Napr. si vyberiete video o vytvorení nejakého efektu. Ten postup sledujete vo videu. Robíte si poznámky. Zároveň krok po kroku ten efekt priamo vytvárate. Vždy po nejakej ucelenej časti, dopísaniu niekoľkých riadkov, zaznamenáte napr. obrázkom a postupujete ďalej. V budúcnosti, ak by ste niečo z toho kódu potrebovali, už nebudete prechádzať dlhé video. Nájdete si ho vo svojich poznámkach. Zároveň na obrázkoch uvidíte konkrétne miesto a čo v kóde predchádzalo. Možno aj vlastný postreh typu, ak som zvolil takúto hodnotu, už to nefungovalo. A to sú presne tie veci o ktoré ide. Naviac si priamo v IDE viete poznačiť riadok, prípadne zvýrazniť konkrétne slovo. Nie je nutné všetko prepisovať, stačí PrtSc. Keď som tento systém vytváral, určite som nepomýšľal na to, že budem vypisovať úplne všetko, to vôbec nie. Tento systém umožňuje rýchle a všestranné spoznámkovávanie.