Sova v síti - 1/26 - vydáno 15.10.2001 Dobrý den, končí pondělí a je zde vaše Sova v síti :-) OBSAH -- Dokument nebo aplikace? -- PHP a databáze I -- Bílá pastelka -- Novinky u Petra Kocny -- WebDeSession Brno 3/2001 -- Odpovídáme na dotazy čtenářů Na úvod dnešního čísla nám dovolte 2 omluvy. První se týká změny plánovaného obsahu. Pavel Šimek zareagoval na poslední článek Martina Kopty (Kdy použít javascript, a jak) a přispěl vlastním pohledem na věc v článku "Dokument nebo aplikace". Neplánovaně a o to aktuálněji též zařazujeme informaci o projektu Bílá pastelka. A protože Sova (a hlavně vaše schránky) nejsou nafukovací, přesunuli jsme původně ohlášený článek o vyhledávači Atomz do příštího čísla. Druhá omluva se týká článku "Pevná mezera v HTML" z minulého čísla. Technickou chybou při zpracování textu došlo k tomu, že všechny v článku uvedené pevné mezery byly nahrazeny ... inu, pevnou mezerou ;-) Kdo tedy nevěděl, že se pevná mezera zapisuje v HTML kódem  , z článku se to nedozvěděl. Pro jistotu tedy opakujeme jeden z příkladů v článku, tentokrát snad již správně: Tohle je příklad s pevnou mezerou. DOKUMENT NEBO APLIKACE? Pavel Šimek Je webová stránka dokumentem nebo aplikací? Domnívám se, že tuto otázku, kterou si už dnes – ať vědomě či podvědomě – klade čím dál víc webdesignerů, se budeme muset naučit jednoznačně vyřešit před začátkem návrhu každého projektu. V současnosti si řešení této otázky komplikujeme snahou o přístupnost stránky co nejširšímu záběru uživatelů. Tato snaha – všeobecně považována za ušlechtilou – podle mě nemusí vždy vést k nejlepšímu řešení z hlediska celkové internetové strategie. Jazyk HTML lze už dnes vnímat dvěma naprosto odlišnými způsoby. Tradičně jako značkovací jazyk, který aplikujeme na text za účelem jeho strukturování (a následného formátování). Nově však jako jazyk pro vytváření knihoven objektů, které teprve ve spojení s JavaScriptem a CSS dostanou podobu aplikace, se kterou může uživatel pracovat. Bez skriptů a stylů je to jen nečitelná hromada dat. Jsem velmi skeptický ke snahám o kompromis mezi těmito dvěma extrémy. Budeme-li se neustále úzkostlivě snažit, abychom jedinou verzí své "dokumentoaplikace" postihli jak uživatele PC s moderním browserem, tak i milovníka textového prohlížeče, mobilního telefonu a nevidomého uživatele odkázaného na hlasový výstup, nutně dojdeme k tomu, že plně neuspokojíme ani jednoho z nich, resp. nevyužijeme potenciálu, který se pro každého z nich nabízí. Představme si složitou stránku portálovitého typu, uprostřed které se krčí anketa – oblíbená součást takových stránek. Rozhodneme-li se hlasovat kliknutím na některou volbu, celá stránka se začne znovu načítat, aby se aktualizoval pouze graf ankety. Nevím jak vás, ale mě obvykle vidina tohoto obnovování stránky od hlasování nakonec odradí. Přitom pomocí dynamického HTML by toto bylo možné řešit mnohem efektivněji – po provedeném hlasování by se kontaktoval server, provedl zápis do databáze, přijal výsledek v podobě několika bajtů dat a ten by se zapracoval zpět do grafu na stránce, aniž by se cokoliv jiného pohnulo. Jde o příklad využití prostředků dynamického HTML (tedy především JavaScriptu) ke zcela zásadnímu zefektivnění webové aplikace, nikoliv pouze k doplnění stránky o atraktivní ovládací prvky. Značná část práce uživatele s aplikací by se mohla odehrávat na jediné stránce, což je jistě pro uživatele přirozenější. Stránka se však tím stane závislou na JavaScriptu. Pokud tedy dnes toto řešení zavrhujeme, pak je to s ohledem na ony "netypické" uživatele, kteří používají prohlížeč s problematickou nebo žádnou podporou JavaScriptu. Škála nejrůznějších zařízení, na kterých budeme přijímat internetový obsah, se ovšem bude nadále rozšiřovat, propast mezi nimi zvětšovat. Domnívám se, že odpovědí na tento trend bude muset být několik naprosto odlišných verzí jednoho webu, pro odlišné skupiny uživatelů – zřetelná dělící čára přitom povede právě tam, kde končí dokument a začíná aplikace. Uvedený příklad složité stránky s anketou je typickým kandidátem na zpracování formou plnohodnotné aplikace (nikoliv pouze "oživlého hypertextu") na bázi dynamického HTML. Tuto verzi jistě nadšeně uvítají uživatelé plnohodnotných moderních prohlížečů. Naopak potřeby nevidomého uživatele nebo majitele jednoduchého mobilního zařízení nevyřešíme pouhým zavrhnutím JavaScriptu. Jak jsou asi dnes tito uživatelé nadšeni ze zmiňované stránky s anketou, když po provedeném hlasování se jim začne na malý displej vypisovat nebo hlasem předčítat opět celá stránka shora dolů? Pro ně bude jistě vhodnější web řešený jako hypertextový systém tvořený množstvím jednoduchých a krátkých dokumentů. Základními pilíři dynamického HTML jsou CSS a JavaScript. Co se týče CSS, není sporu o tom, že čím důslednější je jejich využívání, tím lépe – ať už tvoříme jednoduchý dokument nebo složitou aplikaci. Komplikovanější situace je s JavaScriptem. Zde naopak velmi záleží na tom, zda směřujeme k tvorbě dokumentu nebo aplikace. V prvním případě nám jde o to, aby stránka neztratila nic ze své funkčnosti ani tehdy, jsou-li skripty ignorovány. JavaScript je zde pouze třešničkou na dortě a tipy pro takové jeho využití dobře shrnuje Martin Kopta v článku "Kdy použít JavaScript, a jak" (Sova v Síti 1/25, 8.10.2001). Rozhodneme-li se však směřovat k aplikaci, bude role JavaScriptu úplně jiná – stránka bude mít smysl pouze s funkčními skripty. HTML dokument bez skriptů (navíc většinou i bez stylesheetu, protože podpora JavaScriptu a CSS jdou obvykle ruku v ruce) bude mít podobu nečitelné knihovny objektů a bude tedy nežádoucí ji vůbec zobrazovat. Není třeba se bát tohoto řešení. Je ale nutné dobře vědět, kterých uživatelů se týká a pro které bude nepoužitelné – na základě širší strategie se pak musíme rozhodnout, zda je budeme ignorovat nebo pro ně připravíme alternativní řešení. Pro koho tedy bude naše aplikace dynamického HTML určena? To záleží na tom, jakými prostředky ji vybudujeme. Stejně jako v případě všech ostatních technologií, i zde platí, že nejvíce prospějeme jejich rozvoji striktním dodržováním existujících standardů. Zde je to především Document Object Model (http://www.w3.org/DOM/), který definuje rozhraní mezi skriptem a objekty HTML dokumentu. Nové verze prohlížečů, které jsou již přátelské ke standardům W3C, podporují DOM už do té míry, že lze najít spolehlivou podmnožinu jazykových konstrukcí, na jejichž základě lze budovat naše aplikace. Není již nutné komplikovat skripty odstíněním rozdílů mezi prohlížeči a jejich verzemi a s každou novou verzí prohlížeče se strachovat, zda naše aplikace bude stále fungovat. Nebojme se tedy ve vhodných případech opustit všeobecně převládající přístup k tvorbě webů spočívající v hledání kompromisu, který uspokojí každého, avšak nevyužije plně potenciál dostupných technologií. Ostatně investice do více verzí webu pro různé skupiny uživatelů se může vrchovatě vrátit v podobě užitku z mnohem efektivnějšího oslovení každé z těchto skupin. (c) 2001 -- Pavel Šimek, pas@nestor.cz ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Doporučte sovu v síti vašim přátelům. Přepošlete jim toto číslo, nebo použijte formulář na http://www.sovavsiti.cz/recommend.html ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ PHP A DATABÁZE I Martin Jelínek V minulých dílech seriálu o PHP jsme probrali příklady skriptů, které mužeme použít na svých stránkách. Nyní již známe základy PHP, a proto se začneme věnovat v dnešním i v mnoha dalších dílech databázím, a to MySQL. Dnes si ukážeme, jak tvořit tabulky a práci s nimi. Instalaci MySQL jsem sice zminoval v některém z předchozích dílů, ale pro jistotu si jí zopakujeme. Na http://www.mysql.cz/ si stáhněte verzi pro váš OS. Rozbalte stažený soubor a nainstalujte do adresáře c:\mysql. Poté najděte v c:\windows\php.ini, najděte řádku ;extension=php_mysql.dll a změňte jí na extension=php_mysql.dll. Jinak NIC neupravujte!!. Asi byste měli restartovat počítač. Poté si spusťte příkazový řádek a najeďte do adresáře c:\mysql\bin a spusťte soubor mysqld- shareware.exe. Tím spustíte službu MySQL. Po dokoncení napište mysql test a spustí se okno MySQL. To ukončíte príkazem exit. Poté napište mysql. Tabulky se používají k ukládání dat, vzorců, atd. Vlastně celé programování v databázích je založeno na tabulkách ve kterých je uloženo vše. Pokud chceme vytvořit novou tabulku, zadáme: CREATE TABLE jméno tabulky ( Jméno 1. sloupce typ, Jméno 2. sloupce typ, ... Jméno n. sloupce typ ) V MySQL je velmi důležité znát následující typy sloupců, i když se príliš neliší od jiných programovacích jazyků. int – celé číslo ... - 2147483648 do + 2147483648 smallint – celé číslo ... - 32768 do + 327678 tinyint – celé číslo ... 0 – 255 float – číslo s pohyblivou rádovou čárkou char(n) – textový řetězec o délce n n...255 znaků varchar(n) – textový řetězec o maximální délce n n...255 znaků decimal(p) – desetinné číslo s p platnými číslicemi decimal(p,d) - desetinné číslo s p platnými číslicemi a s d desetinnými místy money – peněžní částka datetime – údaj o datumu a času time – údaj o čase date – údaj o datu blob, image – používá se pro uložení dlouhých binárních dat Nyní si ukážeme příklad založení tabulky: CREATE TABLE priklad ( cislo int, nazev char(20) ) Pokud k nějakému sloupci přiřadíme NOT NULL, nesmí zůstat prázdný (NULL). Zároveň je vhodné nadefinovat primární klíč tabulky příkazem PRIMARY KEY. A následuje další příklad: CREATE TABLE priklad ( test int NOT NULL PRIMARY KEY, testik char(20) ) Pokud je primární klíč složen z více sloupců, musíme použít jiné zadání. CREATE TABLE priklad2 ( jmeno char(20) NOT NULL, prijmeni char(40) NOT NULL, PRIMARY KEY (jmeno, prijmeni) ) A nakonec si řekneme, jak přidat data (řádky) do již vytvořené tabulky. Použijeme příkaz INSERT. Příklad: INSERT INTO jmeno tabulky VALUES ( hodnota 1. sloupce hodnota 2. sloupce ... hodnota n. sloupce ) INSERT INTO priklad VALUES (15, 'Úvod do MySQL') Text vždy musíme vložit do apostrofů, číselné hodnoty NE! V dalším díle budeme pokračovat v databázích a ukážeme si, jak rušit řádky z tabulek, prohlížet data, atd. (c) 2001 Martin Jelínek -- oozz@atlas.cz BÍLÁ PASTELKA Nadační fond Českého rozhlasu pořádá 15. října, u příležitosti Mezinárodního dne bílé hole, celonárodní veřejnou sbírku pro nevidomé a těžce zrakově postižené pod názvem "Bílá pastelka". Ve více než 160 městech České republiky si v tento den můžete koupit od dobrovolníků sbírky originální bílou pastelku jako symbol světa neviditelných linií, světa nevidomých. Pro ty, kteří si nestihnou koupit bílou pastelku v ulicích města, je připravena internetová část sbírky na http://www.bilapastelka.centrum.cz/ Sova v síti se k této dobročinné akci připojuje a vyzývá všechny webmastery: umístěte na své stránky banner, či alespoň malou ikonku s odkazem na http://www.bilapastelka.centrum.cz/ . Široký výběr vhodných grafických prvků naleznete na http://www.sovavsiti.cz/bilapastelka.html Jménem všech zrakově postižených vám děkujeme za vaši pomoc. NOVINKY U PETRA KOCNY K 14.10.2001 ... v katalgu katalogů http://www.lf1.cuni.cz/~kocna/kam-www.htm a vyhledávačů http://www.lf1.cuni.cz/~kocna/roboti.htm Přidány další 2 odkazy - celkem je jich 168. Uzdroje - vyhledávání je již funkční, prohledává katalog i přes URL, fulltextové hledání využívá služby Google - hledání ve světě, Empyreum - hledání v českém internetu. Zveřejněna nová ikona serveru. Oko do internetu - označeno symbolem mrtvoly, více než 6 měsíců URL neexistuje, předpokládám, že server zmizel. Ekatalog - zařazen další nový odkaz, na vznikající seznam, předpokládám místo katalogu Ekoruna. URL je http://ekatalog.ekoruna.com/, emailem potvrzují příjetí požadavku (robotem), na zařazení mě bylo emailem potvrzeno do 1 hodiny. Katalog-Ekoruna - relativne nový katalog na serveru Ekoruna zmizel dříve, než jsem očekával, asi do měsíce. URL nyní odkazuje na nový seznam, Ekatalog, ten je však téměř prázdný, databáze odkazů z katalogu Ekoruna bohužel není převedena, na serveru Ekoruna zůstal seznam Toplistu - zatím, viz další nový link Toplist Ekoruna. Toplist - Ekoruna, URL je http://toplist.ekoruna.com/, URL pro přidání odkazu je http://toplist.ekoruna.com/add.php, k odkazu je možno přidat vlastní ikonku, odpověď administrátorů slíbena do 72 hodin, emailem je potvrzeno - robotem přijetí požadavku. Odkazy byly zařazeny během hodiny - opět potvrzeno emailem. Ikona vašeho serveru se nikde neobjeví a v editačním formuláři již není. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Připravujeme investiční záměr * Provokativní strategie úspěchu Vyjde v Sově v podnikání 22.10.01 - http://www.sovavpodnikani.cz/ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ WEBDESESSION BRNO 3/2001 Ve čtvrtek 18. října 2001 se v Brně koná neformální setkání tvůrců webu. Setkání bude hostit restaurace U Štiky (naproti Dřevěné růži), účast nepodléhá poplatku. Bližší informace, mapu, seznam registrovaných účastníku a kontakt na organizátory najdete na webu WebDeSession. http://webdesession.uzel.cz/ ODPOVÍDÁME NA DOTAZY ČTENÁŘŮ Dotaz: Dobry den, jsem vasim ctenarem a chtel bych se zeptat, zda je mozno v HTML sazet matematicke vzorce. V jednom prehledu html, nevim uz k jake verzi, jsem nasel tagy pro odmocninu, pro oznaceni vzorce a nektere dalsi(,,...), kdyz jsem je ale zkousel, prohlizec IE5.0 je ignoroval. Jek je to v soucasnosti se vzorci? Odpověď: Matematické vzorce byly v omezené míře zahrnuty do normy HTML 3.0, bohužel její podpora v prohlížečích je nulová. V současné době je používaným standardem pro sazbu vzorců MathML 2.0, ovšem ani to není běžně prohližeči podporováno. Existuji pro něj samostatné prohližeče. Pro běžné použití na webu doporučuji GIF. Viz též http://www.w3.org/Math/ (Odpovídal Martin Kopta) Dotaz: rada bych znala Vas nazor na optimalizaci stranek. Myslite, ze je stale nutne delat stranky tak, aby byly napr. k precteni i v Netscape 3.04 Gold? Odpověď: Obávám se, že na váš dotaz neexistuje univerzální odpověď. Vždy záleží na cíli webu a jeho cílové skupině uživatelů. Nemalou roli hraje i rozpočet, který máte k dispozici, neboť optimalizace pro širokou škálu starších i nových prohlížečů není právě levná. Osobně bych dnes za základní řešení považoval způsob, kterým jsou vytvořeny stránky Sovy v síti. To znamená, že *obsah* je přístupný komukoli (včetně tělesně postižených) jakýmkoli prohlížečem, či zařízením. Naproti tomu *design* je přístupný pouze prohlížečem respektujícím platné standardy W3C. V mnoha případech je však třeba se od tohoto základního řešení odklonit. Např. u komerčních webů s běžnou firemní klientelou je ještě hodně zastoupen IE4 a zároveň dost záleží na atraktivitě designu. Pro takový účel je koncepce Sovy v síti nevhodná a je třeba udělat krok zpět. U nekomerčních webů na vzhledu zase tolik nezáleží a důvodů odklonu od standardů je (nebo by mělo být) méně. I tam však obvykle platí, že *obsah* musí být *čitelný* všem. (Odpovídal Marek Prokop) A to je pro dnešek vše, těšíme se na shledanou opět v pondělí, kdy v čísle 27 naleznete: -- PHP a databáze II - Martin Jelínek pokračuje ve výkladu základů MySQL. -- Atomz - fulltextový vyhledávač pro vaše stránky. -- Odpovědi na vaše dotazy, zajímavé odkazy, novinky v katalogu katalogů a vyhledávačů Petra Kocny, atd. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Nechcete, nebo naopak chcete dostávat Sovu v síti? Odběr lze odhlásit odesláním zprávy na unsubscribe@sovavsiti.cz. Přihlásit se lze odesláním zprávy na subscribe@sovavsiti.cz, nebo formulářem na adrese http://www.sovavsiti.cz/. Chcete nám cokoli sdělit? Uvítáme vaše náměty, připomínky, kritiku, atd. na adrese mailto:redakce@sovavsiti.cz. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Není-li v konkrétním případě uvedeno jinak, je autorem všech publikovaných článků Marek Prokop. Tento ezin, nebo jeho libovolnou část můžete volně šířit dále, pokud současně uvedete zdroj následujícím způsobem: _________________________________________________________________ Sova v síti -- (c) 2001 Marek Prokop -- http://www.sovavsiti.cz/