Tento blog je v současné době uzavřen.
Pokračování blogu na bloguje.cz jsem zrušil. Pokud budu někdy pokračovat, bude to spíš tady.
Hodně barev v HTML má své pojmenování. Jenže některé ne zcela správné. Ať už z historických důvodů, nebo pro neznalost autorů pojmenování.
Jak se označuje fialová? Ano, magenta. Jenomže slovo magenta ve správném překladu neoznačuje fialovou, nýbrž purpurovou. Tohle slovo vymyslel J. W. Goethe. Můžete si ho schválně přeložit pomocí slovníku.
Fialová je kombinace plné červené a plné modré, v HTML zapsáno #ff00ff. Purpurová jsou dva díly červené a jeden modré, správně by to tedy bylo #ff0080. To opravdu nejsou stejné barvy, dokonce ani když purpurovou ztmavím:
Pojmenovaná magenta (#ff00ff) Světlá purpurová (#ff0080) Tmavá purpurová (#b00058) Ještě jiná purpurová, blíž fialové (#c02090) A tohle je tiskařská barva magenta (#dd137b)A aby zmatku nebylo málo – co znamená „purple“? No jestli tohle není purpurová, tak už nevím... jenže purple se zobrazí ne jako purpurová, nýbrž jako tmavě fialová:
Pojmenovaná purple (#800080)Purple vem ďas, ale blbě pojmenovaná magenta straší i mimo HTML. Třeba v barevném systému CMY se také vydává za fialovou. Johanne Wolfgangu, obracíš se v hrobě?
A zákeřná otázka na závěr. Plná červená (#ff0000) se v HTML jmenuje opravdu červená (red), plná modrá (#0000ff) se nestydí nazvat modrou (blue). Kdo z vás si myslí, že se plná zelená (#00ff00) jmenuje zelená (green)?
První půlku roku 2000 jsem strávil ještě bez mobilu a bez domácího internetu. Pak to se mnou začalo jít z kopce. Zpětně si říkám, jaká to tenkrát v nuselské garsonce byla krásná nedigitální doba. Pevná linka je mor.
Trvalé připojení (ADSL u Volný.cz, ale na tom v tomhle článku nesejde) máme doma rok a týden. O Vánocích 2005 byla Magda těhotná podruhé, takže možnost kliknout a okamžitě surfovat nebo mailovat se jevila jako velmi pohodlná pro ženu na mateřské. Osvědčilo se; ale závislost na počítači se u nás obou prohloubila.
Protože počítač u nás stojí v „hale“ (bývalá předsíň), prakticky při každém pohybu uvnitř bytu je to jen pár kroků k myši. Nepřišel mail? Nestalo se něco zásadního? Nedorazil někdo na ICQ? Pokušení je velké a spíš podléháme. A když večer rodina zalehne, bludička modemu vábí: pojď si hrát!
A to jsme postavili řadu bariér, které mají činit pobyt u počítače nepříjemný. Teď v zimě je tam studená podlaha, dá se z kuchyně snadno koukat přes rameno, počítač je starý a pomalý. (Možná ještě snížím čas pro naběhnutí šetřiče, mám nějak větší zábrany kompjútr rušit, když monitor usne.) Kdepak, člověk si zvykne, nohy mrznou, ale duch se zahřívá posledními zprávami černé kroniky.
Bylo to jako zdolání Milešovky, když jsem o Vánocích od rána až do odpoledne počítač nezapnul. Ukázalo se, že to jde a že přitom ani neumřu. Tak jen doufám, že v tomto roce strávím víc večerů jinak než při pohledu z oka do oka. Ze svého analogového do digitálního.
Po blamáži před rokem, kdy vlakové jízdní řády ve formátu PDF vyžadovaly zbytečně Acrobat Reader 6, jsem s napětím čekal, jestli si s novou várkou porozumí pětkový akrobat. A?
Příjemné zjištění. Stažené soubory šly otevřít bez problémů i v Readeru 5.0 na Windows 98. Nevím, jestli elektroničtí ajznboňáci dali na loňský naštvaný vox populi, každopádně děkuju a chválím – když jsem před rokem tak nadával.
Ale stejně si jízdní řád obstarám i v knižní podobě.
Já vím, že jsem o tom před rokem psal. Šestimegový mail s dvěma verzemi péefky, naštěstí ve služební schránce, byl ovšem tak zásadním přáním, že se mi dojetím zatnuly pěsti a otevřel kapesní nůž.
Za rok jsem se stal asertivnějším. Kdo mě obšťastnil nějakým řetězovým mailem, obdržel zpátky odkaz na www.hoax.cz, ve zvláštních případech i se srdečným komentářem.
Je čas postoupit a začít upřímně děkovat za každé hezké přání, které přineslo tolik krásně napjatých minut očekávání, co mimořádného autor vyfotil či stáhl a kreativně ve Photoshopu dotvořil. Co třeba: „Těší mě, že sis na mě vzpomněl. Přeji Ti krásné Vánoce a šťastný rok bez přecpané mailové schránky a s dostatečně výkonnou kompresí všech Tvých souborů.“
Opatrní administrátoři vyžadují čím dál komplikovanější hesla. A na to jsem málem dojel, když na mě zírala čistě německá klávesnice. Poučení: buďte na cestující uživatele hodní a dovolte jim i heslo pouze z písmenek a číslic.
Své první přihlašovací heslo jsem před lety sestavil jen z písmen a bez „y“ a „z“. Tehdy jsem totiž ještě občas přepínal mezi českou a anglickou klávesnicí a nechtěl jsem pokaždé řešit, zda mám QWERTY nebo QWERTZ. Postupně mi ale administrátoři dávali stále tvrdší podmínky (nejméně N znaků, písmena různé velikosti, povinně do hesla číslice a nealfanumerické znaky).
Administrátorům se neodmlouvá, a tak jsem se přizpůsobil. Ruce si zvykly a heslo už umějí napsat skoro poslepu. Jenže minulý týden mě zavál na tři dny do Hamburku na jakýsi seminář, internetový terminál by sice byl, ale... samozřejmě s německou klávesnicí.
Jak se přihlásit ke služebnímu mailu? Kde tady, probůh, je podtržítko? Tušíte správně – na klávesnici sice nakreslené bylo, ale příslušné tlačítko ve skutečnosti psalo něco úplně jiného. Přepnout na anglickou klávesnici se dalo, jenže u té zase chyběl popis na klávesách.
Lidi, co čekali ve frontě za mnou, se asi divili, jaké nesmysly píšu v notepadu místo webového brouzdání. Podtržítko bylo nalezeno, mail otevřen. Čekáte happyend? Chachá.
Druhý den suverénně přistoupím k terminálu, vyklepu heslo jen s neznatelným zaváháním a obrazovka opáčí cosi o invalidním passwordu. Heh?
No ano, po předchozím člověku tu zbyla anglická klávesnice.
Milí opatrní až paranoidní admini, klidně budu mít povinně patnáctiznakové heslo s povinnými číslicemi, pokud po mně nebudete chtít, abych za půl roku v Brazílii (i když tam teda, pravda, jet nechci) luštil portugalskou klávesnici.
Jen pro zajímavost taková statistická hříčka, nic zásadního. Znázornil jsem si, jak ke mně proklikávali návštěvníci z komentářů pod článkem na La Trine.
Urval jsem pěkné druhé místo mezi komentujícími, vložil odkaz na svůj článek (přibližně v 11.40) a za deset minut už bylo šest prokliků. Jak to šlo dál, ukazuje graf.
Že na začátku je nárůst rychlejší a pak se zpomaluje, je logické – nejvíc uživatelů přijde brzo po publikování článku (RSS čtečky, odkaz na Weblogy.cz a další). Ale zajímavé je, že zhruba od 14 až do 20 hodin přibývaly prokliky pořád stejně rychle, žádná ztráta tempa. A to odkaz nebyl v těle článku, ale ze začátku velmi dlouhé diskuse.
Je to tím, že tímhle tempem prostě přicházejí noví návštěvníci, takže i tempo prokliků je podobné? Anebo se v pozdějších hodinách vracejí dřívější čtenáři, aby si přečetli bobtnající diskusi, a přitom si všimnou odkazu? Tohle nevím, na to bych musel mít data od Davida.
Každopádně ten článek na La Trine je sám o sobě moc zajímavý.
Aktualizace: David odkaz z komentářů přenesl pod článek, ale až dnes ráno, takže na včerejší měření to nemá vliv.
Vůbec ne takové fíčurinky jako filtry, registerNodeClass a podobné, jak o tom píšou machři. Potěšilo by mě mnohem víc, kdyby bylo možné při volání funkce zadat jen některé argumenty, i když jsou v původním pořadí úplně na konci. A zadat argumenty v libovolném pořadí.
Omlouvám se netechnikům za technický příspěvek, kdyžtak si zatím něco čtěte.
Ono samozřejmě jde poslat jen některé argumenty, pokud ty ostatní mají nastavenou defaultní hodnotu. Jenže ty poslané musejí jít zleva podle pořadí, jaké stanovil tvůrce funkce. Takže když mám kód
<?php function zviratko ($velikost="velký", $barva="černý", $zvire="pes") { return "$velikost $barva $zvire";} echo zviratko(); ?>
dostanu podle očekávání „velký černý pes“. Kdybych chtěl dostat „velký černý medvěd“ nebo „velký strakatý tygr“, jak by bylo krásné napsat jenom
<?php echo zviratko($zvire="medvěd"); echo zviratko($zvire="tygr", $barva="strakatý"); // všimněte si obráceného pořadí argumentů ?>
Jenže to nefunguje. Musí se samozřejmě napsat
<?php echo zviratko("velký", "černý", "medvěd"); ?>
Proč mi vadí, že to nejde zjednodušeně? Protože si při volání funkce musím pamatovat správné pořadí argumentů a zbytečně vypisovat i ty, co se jejich hodnota nemění. Což
Kdo si má třeba pamatovat, že v mysql_query se píše nejdřív dotaz a pak nepovinně identifikátor spojení, kdežto v pg_query je to naopak a obojí je povinné? Mít možnost zapsat něco jako mysql_query($link=$connection, $query=$dotaz), to by byla pohoda...
Já vím, dá se to obejít, třeba si udělat funkci tak, aby se do ní posílalo – jako argument – pole a jednotlivé skutečné argumenty byly pojmenované položky pole. Všechno je to ale zbytečná komplikace.
A jazyk prostředí R to umí. Škoda, že PHP (dosud) ne.
Aktualizace: Umí to i Python. Tak vidíte, že to jde, když se chce.
Není úplně jedno, jestli hodnoty atributů v (X)HTML uvádět v uvozovkách, nebo v apostrofech. Podle Yuhůa se může obojí (a validátor apostrofy místo uvozovek bez potíží skousne i pro XHTML Strict 1.0), specifikace hovoří jen o uvozovkách. No, každopádně uvozovky přinesou méně potíží. Aspoň tedy u atributu value v prvcích formuláře.
Příklad: mám formulář pro opravu údajů. Z databáze načtu aktuální údaje a chci jimi formulář předvyplnit. A protože jsem cosi slyšel o nebezpečných znacích pro HTML, nezapomenu text prohnat funkcí htmlspecialchars. Zjednodušeně třeba takto:
<?php $jmeno = htmlspecialchars($jmeno); ?> <input type='text' name='jmeno' value='<?php echo $jmeno;?>'>
Chytří už vědí, že jméno obsahující apostrof (např. O'Brien) mi nadělá pěknou paseku. Funkce htmlspecialchars totiž standardně změní jen uvozovky, kdežto apostrofy nechá být. Musí se použít htmlspecialchars($jmeno,ENT_QUOTES).
No co, tak přidáme parametr do funkce. Ale někdy se to tak snadno ovlivnit nedá. Používám jednoduchý šablonovací systém HTMLTMPL, který při výstupu sice nebezpečné znaky převádí automaticky, ale na apostrofy prostě kašle (resp. neumím ho donutit, aby nekašlal).
Mít místo apostrofu uvozovky je daleko jistější. Do konstrukce
<?php $jmeno = htmlspecialchars($jmeno); ?> <input type="text" name="jmeno" value="<?php echo $jmeno;?>">
se apostrof vpustit nebojím, i když se nepřevede.
Už jsem tu psal o nových online přenosech fotbalu na iDNES. Až v neděli mě napadlo, že s nimi konečně seznámím i svou počeštěnou Operu 9.00 – a nestačil jsem se divit.
Možná jsem jen něco (ne)nastavil, ačkoliv tedy Javascript zapnutý mám. Stránka je rozhozená (screenshot 1, screenshot 2, porovnejte se žádoucí podobou – screenshot 3), a co hůř, ani se automaticky neobnovuje.
Inu, to bude asi tím AJAXem. Máme tu další potenciální problém.
AJAX je totiž obvykle javascriptová záležitost, a v něm vládne mezi prohlížeči ještě větší nejednota než u pouhého HTML nebo kaskádových stylů. Kdo se někdy pokusil naprogramovat složitější javascript, kterému by rozuměly stejně dobře Explorer, Mozilla i Opera, dá mi za pravdu, že to je na cvokárnu.
Zkrátka a dobře, stavět dneska aplikace na módním (i když také užitečném, jako zrovna u obnovovacího online) AJAXu znamená riskovat nepřístupnost a nepoužitelnost. Ano, někdy se to povede, Onlajny.cz jsou ještě ajaxovější než iDNES a v Opeře mi fungují. Ano, možná je chyba v mé instalaci té devítkové Opery. Nicméně ani mobilní Opera@USB (postavená na verzi 8.54), ani prastarý Firefox 1.0 automaticky neobnovují.
S AJAXem se musí moc opatrně. Meziplatformních konfliktů bude už i tak dost, až oficiálně vyjde IE 7.
Webmasteři blogů na Respektu chtějí být moderní, ale hlavička Content-Type: application/rss+xml podle mě není správná cesta. Je to neúčelné, někde to nefunguje a neodpovídá to ani specifikaci.
Že nějaké Content-Type existuje, ví každý, kdo psal do hlavičky stránky meta tag pro kódování. Tenhle údaj posílá server klientovi, když po něm klient něco chce – stránku, obrázek, soubor apod. Klientský prohlížeč se podle Content-Type doví, co se mu posílá (zda obrázek, HTML stránka, soubor RTF apod.) a co s tím má dělat (například zda u textového souboru jen zobrazit obsah, nebo se text pokusit interpretovat jako HTML kód apod.).
Nastavit správné Content-Type je moc důležité. Pokud bych posílal stránku v HTML jako image/jpg, bude prohlížeč zmaten, cože to je za obrázek. Pošlu-li ji jako text/plain, zobrazí se mi přímo zdrojový HTML kód stránky. Pošlu-li ji jako text/rtf, bude se prohlížeč ptát, zda ji má otevřít nebo uložit, a tak dále.
Problém u blogů na Respektu je v typu RSS souborů. Protože RSS je textový formát XML, logicky se posílá s Content-Type: text/xml. Někteří dávají přednost typu application/xml, ale to je také ještě v pořádku. Co v pořádku podle mě není, je typ application/rss+xml, který si právě vybrali webmasteři blogů Respektu.
Že je s rss+xml problém, psal už před rokem Duncan MacKenzie. IE 6.0 si s tím neví rady a nabízí uložení souboru (nebo otevření nějakým programem na klientském počítači). Stejný problém má Firefox 1.0. Verze 1.5 se také uživatele přeptá, nicméně soubor poté zobrazí správně. Jen Opera 9 se tváří, že tomu rozumí stejně jako text/xml i application/xml.
Typ application/rss+xml totiž není ve specifikaci. Samozřejmě do budoucnosti nelze vyloučit, že se soubory specifikované jako RSS budou zpracovávat v prohlížečích odlišným způsobem než klasické XML, ale zatím to tu není. I ta Opera, která po stažení RSS ihned sama nabízí, že zdroj přidá do interní RSS čtečky, reaguje stejně pro „pouhé“ text/xml. Čili rozlišení, že jde speciálně o RSS, není nutné.
Asi bych tedy s horlivostí stran rss+xml počkal.
Pokud si chcete otestovat svůj prohlížeč, tady máte možnost (využil jsem starší RSS z Weblogy.cz):
Další články si můžete vyhledat v jednotlivých přihrádkách, případně podle data.
© Honza Hučín 2004–6
Šuplík běží na PIPNI.CZ. Díky!
8. 8. 16:48 | Pepa
7. 8. 21:26 | Honza Hučín
7. 8. 21:02 | Honza
6. 8. 14:29 | Pepa
3. 8. 18:29 | Honza
*1967, absolvent MFF UK v Praze (1991)
statistik, analytik, programátor, učitel, hudebník