5 březen 2006, 17:50
rubrika no-future
Jednou to muselo přijít. A právě to přišlo. Tento weblog končí, úplný konec. Sice jsem vás chtěl ještě chvíli napínat, ale to už jsem udělal minule, takže tentokrát bez žertů.
Nový web naleznete na adrese atd.havrlant.net a jelikož DGX měl speciální přání, odkazuji tedy zároveň na první článek na jiném blogu.
3 březen 2006, 00:13
rubrika internet
Asi jo. Jinak si neumím vysvětlit, co se to poslední dobou na internetu děje. Nebo se dělo vždycky a já to nějakým záhadným způsobem přehlížel. To spíš.
Nesnáším idioty (berte to slovo jako čistou urážku, nikoliv nějaký psychologický či lékařský termín, prosím), kteří musí pořád do něčeho rýpat, pořád mají něco proti a věčně se musí prakticky všem vysmívat, někdy nenápadně, někdy nápadně. To už je jedno. Neštítí se urážek, opět jak přímých, tak nenápadných a pozvolných. S takovými lidmi se obvykle nedá vést kloudná diskuse, protože namísto objektivních fakt pořád omílají své urážky, své sarkastické poznámky a hlavně pořád opakují jedno a to samé, i kdyby jste jim stokrát dokázali, že nemají pravdu. Prostě tu pravdu mají, a hotovo.
Často jsou takové roztomilé diskuse k vidění na Intervalu, kde obdobné komentáře nehledáte dlouho. Mrzí mě to, protože Interval je kvalitní magazín, dá se tam najít spousty užitečných informací. Obvykle pouze do chvíle, než se podíváte právě do komentářů. Jistě jste všichni viděli reakce při zahájení Interzenu, kde se to jenom hemží těmito idioty. To samé se odehrálo o pár týdnů později při vyhlášení výsledků (tam jsem se dokonce zapojil a panu Málkovi poblahopřál – to určitě nečekal :-)). Další idioti se seběhli v článku Radim Hasalík: Provoz webů je mým koníčkem. Podle mého názoru by se měl Vilém Málek více zaměřit na cenzuru idiotských komentářů od idiotských komentátorů.
Co mě ale dožralo nejvíc, byl dnešní spot od Davida – nejste-li v obraze, přečtěte si související člány na LaTrine. Někdo udělá zdarmo kvalitní produkt, který s chutí používají tisíce a tisíce a tisíce a tisíce a tisíce a určitě i stovky a stovky a stovky lidí a pak přijdou nějací idioti a naháží na ten projekt tolik špíny, kolik se jí jenom do toho komentáře vejde. Nechápu to. Vážím si všech lidí, kteří se snaží něco dělat zadarmo, pro jiné (tedy vážím si ostatních, ale to patří do jiné diskuse). Dokud to není nijak nebezpečný (klasicky zcela chybné návody na HTML či cokoliv jiného), líbí se mi to. A protože těchto lidí je spousta, tak nakonec nejsme národem idiotů, ale černé ovce se vždycky najdou. Bohužel.
Držím Davidovi všechny palce a klidně i malíček, má mou plnou podporu :-). Nevím sice, zda bude k něčemu užitečná, ale má ji :o).
PS: Vím, trochu silnější spot než obvykle, ale tohle mě prostě naštvalo. A to tak, že dost.
PS2: Tento článek byl zformátován pomocí Texy!
PS3: Tohle je předposlední článek na tomto blogu.
19 únor 2006, 14:32
rubrika se-spetkou-ironie
Předem se omlouvám za stupiditu následujícího příspěvku, ale prostě jsem si to nemohl odpustit.
Určitě již všichni znáte tu otřepanou básničku, že XHTML se musí
posílat nejlépe jako application/xhtml+xml
a že když se
posílá jako text/html
, tak to vlastně žádné XHTML není. Ale
možná ne všichni vědí, jak to potom taky může dopadnout. Stránka by se
měla nejprve zkontrolovat zda je well-formed a až potom by měl prohlížeč
začít s vykreslováním. To znamená další zbytečné zdržování.
Obzvláště u velkých diskusí typu živě.cz či lide.cz to musí být
paráda.
Má to ale jeden háček. Stránka se začne vykreslovat, pouze pokud je
well-formed. Pokud není, měl by prohlížeč vyhodit strašlivý error.
Takže stačí jediná chybka a návštěvník uvidí ze stránky velký
kulový. Aneb přístupnosti zdar. Ještě štěstí, že IE tenhle MIME typ
nepodporuje. Aspoň se o něj prakticky nikdo nesnaží. A když
přece, dopadá to
špatně ;-). Takže ať už píšete v čemkoliv, proboha
neposílejte stránku jako application/xhtml+xml
, pokorně vás
prosím :-).
5 únor 2006, 22:06
rubrika XHTML-semantika
K čemu slouží, k čemu neslouží, k čemu by mohl sloužit, k čemu ho používá konsorcium, k čemu ho nepoužívá konsorcium i když ho k tomu samému účelu používá a jak bych ho používal já.
Abyste tedy byli všichni v obraze, element samp
slouží
k vyznačení výstupu programu či nějakého skriptu.
Drobnou zajímavostí pak je, že ve specifikaci
HTML 2 znamenal tento element něco odlišného. Následující specifikace
HTML 3.2 již zmiňuje dnešní význam. A aby toho nebylo
málo, tak na w3schools.com
zmiňují ještě nějaký jiný (nebo spíše trochu nejasný) význam. Tak to
jen abych vás hned na začátek taky trochu zmátl ;-).
Slouží-li tedy element samp
k vyznačení výstupu
nějakého programu, příklad jeho použití může vypadat třeba takto:
<p>Po rozběhnutí program na obrazovku vypíše: <samp>Napište první člen posloupnosti:</samp>.
<p>V tuto chvíli napište první člen posloupnosti.
Teď je ale otázka, jestli mohu do tohoto elementu vrazit i nějaký kus HTML kódu, pokud chci ukázat, jak bude ten či onen element interpretován webovým prohlížečem. Pozorně si prohlédněte následující příklad:
<p>K vyznačení silného důrazu slouží element <code>strong</code>. Prohlížeč ho zobrazí takto: <samp>Tak to jsem <strong>nikdy</strong> neudělal!</samp>
Je to správně nebo to není správně? Jde o to, jestli lze brát HTML
značení za výstup nějakého programu. Další potíž je také v tom,
že pokud si stránku prohlédnete bez stylů, neuvidíte to, co byste ve
skutečnosti vidět měli. Element samp
má totiž výchozí
kaskádovou hodnotu font-family: monospace
, tudíž bez stylů
zobrazí předchozí text o fous jinak, než jak by ho prohlížeč ve
skutečnosti opravdu zobrazil. Nicméně i přes tuto drobnou odchylku to
lze považovat za správný zápis. Koneckonců nic lepšího mezi tou hromadou
elementů pro tento zápis nenajdeme.
Když tedy připustíme, že interpretaci HTML značek lze považovat za
výstup programu, číhají na nás pouze samé další problémy.
Zatím jsem totiž zmiňoval pouze samé jednoduché příklady a hlavně jsem
v příkladech používal řádkové elementy jako je
právě strong
. Ovšem co dělat ve chvíli, kdy třeba chcete
vyznačit jako HTML výstup třeba odstavec? Máte v zásadě dvě
možnosti:
<p>Na odstavec používejte element <code>p</code>. Opět příklad použití:
1) <p><samp>A takto to zobrazí prohlížeč.</samp></p>
2) <samp><p>A takto to zobrazí prohlížeč.</p></samp>
Který z nich je správný? Validní je pouze ten první, element
samp
může obsahovat pouze řádkové elementy, což odstavec
pochopitelně není. Ale je to opravdu správný zápis? V prvním zápise
vyznačí element samp
pouze text odstavce, ale v druhém
vyznačí přímo ten odstavec. Logika mi tedy říká, že lepší je ten
druhý zápis. Pokud nebyl tento příklad dostatečně průkazný – jak
potom vyznačit příklad s tabulkou? Mají se ve všech buňkách
všechny texty dát do elementu samp
nebo prostě a jednoduše do
něj dáme celou tabulku? Samozřejmě opět nevalidní zápis. Podobné dvě
značky, které mohou obsahovat jak blokové tak řádkové elementy a přitom
nezalamují řádek (to by asi nebylo příliš šikovné) tady už máme
– ins
a del
. Možná by nebylo špatné
k nim přidat i samp
(a ještě ho trochu rozšířit).
Další možností je poté skutečně element samp
používat
pouze na výstupy běžný programů, nepoužívat to při HTML značení.
Nenapadá mne ovšem element, který by se dal použít namísto něj.
Zajímavě se v tomto ohledu chová konsorcium. V kódu specifikace
HTML 4.01 používá element samp
v místech,
kde bych třeba já použil element code
. To jest všechny
výskyty HTML značek se nacházejí právě v elementu samp
,
ač se mi to zdá v rozporu se specifikací, kterou ten kód popisuje. Nebo
že bych se mýlil? V následující specifikaci XHTML 1 se již element
samp
v kódu nevyskytuje a všechny HTML značky jsou
vyznačeny elementem code
. Zajímavé, pokud vím, tak ke změně
významu jednotlivých elementů v HTML a XHTML přeci nedošlo.
Takže za jakých okolností by se měl element samp
používat?
Já vlastně ani nevím… Ale asi mi nebude blbé vyznačit tímto
elementem blokový prvek jako třeba již umíněný odstavec. Prohlížeče to
zobrazí v pohodě, validátor sice nebude chrochtat blahem, ale co se dá
dělat.
31 leden 2006, 18:04
rubrika XHTML-semantika
Přestože HTML 4.01 obsahuje celkem 91 elementů, není možné jimi popsat všechny části kódu tak, aby to bylo naprosto správné. Proto je potřeba někdy trochu přimhouřit oko a drobně posunout význam jednotlivých elementů.
Pro vyznačí patičky se asi nejčastěji využívá zápis <div
id="footer">
případně <p id="footer">
(viz nedávný
průzkum). Připravovaný neoficiální návrh HTML 5 již obsahuje
značku <footer>
, bohužel my ji však ještě využít
nemůžeme. Jistá alternativa se proto skrývá v tomto zápisu.
<p><small>copyright apod.</small></p>
V současné době mne lepší způsob zápisu patičky nenapadá.
HTML zná dvě sémantické značky pro zesílení důrazu. Jsou jimi značky
<strong>
a <em>
. Avšak pokud chcete
důraz naopak snížit, ocitáte se ve slepé uličce. Žádná značka pro
tento účel v HTML neexistuje. Nejblíže podobná ji pak nejspíše bude
opět značka <small>
. Pokud to bude uprostřed odstavce, dá
se použít samotná, jinak ji budete muset opět obalit nějakým blokovým
elementem. Pokud tedy chcete do stránky vepsat nějakou drobnou poznámku, asi
bude opět nejlepší použít kód jako s patičkou.
Pokud umožňujete ovládat jednotlivé odkazy pomocí klávesových zkratek, měli byste také vyznačit, pro které znaky se zkratky vztahují. Na webu se obecně používají dva způsoby – buď číselné, které se snaží být jednotné nebo pomocí písmen (například počátečních písmen v daném odkazu). Tyto písmena se poté sluší nějak označit, většinou se použí zápis v tomto stylu:
<a href="index.html" style="text-decoration:none">
<span style="text-decoration:underline">H</span>omepage
</a>
Samozřejmě obvykle bývá použit externí stylopis. Není ovšem žádný
problém namísto neutrální značky použít element <u>
,
asi takto:
<a href="index.html">
<u>H</u>omepage
</a>
Kód se tím zkrátí, sémantika neutrpí. V zásadě je už jedno, jestli použijete neutrální element nebo prezentační element, který plní naprosto stejnou funkci a bez stylů se zobrazí stejně.
Pro www adresy ve skutečnosti element existuje, jen mi přijde, že se
nepříliš využívá či že je jeho takovýto význam nepříliš známý.
Respektive já jsem si ho nikdy neuvědomil :-). Jedná se tedy o element
<code>
, jemuž specifikace přisuzuje význam
počítačového kódu. A webová adresa podle mého názoru pod
počítačový kód spadá. Element <code>
se dá dále
využít třeba na názvy souborů (což je vlastně součást té adresy,
nemusí se jednat pouze o www adresu, může klidně jít i o adresu
na lokálním disku).
Pro vyznačení klávesových zkratek se dá využít nepříliš
používaný element <kbd>
, jehož původním účel stejně
byla navigace uživatele. HTML 5 pak na toto zmiňuje krásný
příklad s dvěma vnořenými elementy <kbd>
,
posuďte sami:
<p>K zavření aplikace použijte klávesovou zkratku <kbd><kbd>Alt</kbd> + <kbd>F4</kbd></kbd>.</p>
Trošičku už to jde do extrému, ale určitě je to zajímavý způsob, který se dá v praxi využít.
Ohledně zkratek toho už bylo dosti naflamováno, nebudu se přidávat, spíše zmíním způsob, který nezdá se mi tak tradiční a hlavně se týká spíše vysvětlování zkratek. Takže pokud přímo ve větě vysvětlujete význam nějaké zkratky, měl by zápis vypadat takto:
<p><dfn><abbr title="Hypertext Markup Language">HTML</abbr></dfn> je značkovací jazyk vyvinut pro popis webových stránek.</p>
V podstatě všechno a ještě mnohem více najdete na webu WHATWG, stojí za to si to pročíst, některé postřehy jsou opravdu vynikající.
29 leden 2006, 18:00
rubrika XHTML-semantika
Právě před chvílí jsem objevil další Ameriku, nejen dgx zanalyzoval používání HTML značek, nakonec se do toho pustil ten „nejpovolanější“.
Takže onu statistiku pochopitelně naleznete na stránkách Googlu. Celý projekt je rozdělen do několika částí a každá z nich je zároveň patřičně okomentovaná. Zatím jsem spíše prohlížel grafy (které mimochodem nejdou v Opeře – v devítce možná ano) a jsou dosti zajímavé.
Tak třeba tolik zavrhovaný atribut target
se vyskytuje
prakticky v každém druhém odkazu. Ne zcele nečekaně pak
u dalšího odkazového atributu rel
zvítězila hodnota
nofollow
. U obrázků pak potěší, že většina obsahuje
potřebné atributy alt
, height
a
width
.
Docela slušný výsměch pak je větší zastoupení atributu
language
než type
u elementu
<script>
, ač, podle W3C, bychom měli používat právě
ten type
.
Dále se třeba dozvíte, že na každé stránce je průměrně devatenáct
různých elementů a nejčastěji bývá na stránkách element
<head>
. Za krásnou poznámku autora statistiky považuji
tento výrok (takový volný překlad):
„Naprostá většina lidí (98%) vkládá do stránek značky
<html>
,<head>
,<title>
a<body>
, což je ironické, páč tři z těchto značek jsou v HTML nepovinné (optional).“
Hezká je také statistika tříd a identifikátorů, které se nejčastěji
používají. Hned na prvním místě je footer
a o kousek
dále header
. Tyto nejčastější názvy tříd jsou
v návrhu HTML5
brány jako elementy, tj. <footer>
.
U meta tagů pak překvapí, že jsou častěji uváděna klíčová slova (keywords) než popisek stránky (description), ač na klíčová slova se už prakticky nehledí. Že by setrvačnost?
Smutné potom je, že polovina stránek obsahuje ve značce
<body>
nesémantický atribut bgcolor
a asi tak
třetina stránek barví odkazy přes atributy alink
apod.
Prezentační atributy se asi jen tak nevymýtí (možná by nebylo na škodu
udělat obdobnou statistiku, ale jen u webů, které vznikly za poslední
rok, dva, takhle je to řádně zkreslené starými stránkami). Obdobné to je
třeba u odstavců, polovina obsahuje atribut align
. Prakticky
u všech tabulek jsou atributy border
nebo width
,
ale třeba takový hezký atribut summary
není skoro nikde.
No, zbytek si už prohlédněte a pročtěte sami, přeji příjemnou zábavu.
P.S. David to stejně měl udělané lépe, kam se na něj kluci z ciziny hrabou ;-).
28 leden 2006, 22:15
rubrika no-future
Tak už jsem byl i já vyzván k sepsání čtyř věcí. Za pozvánku do hry vděčím Derovi.
Nuže tedy, co jste o mně možná nevěděli:
Tak co nám prozradíte, pánové? Nevíte-li, oč jde, podívejte se na conBLOG.
25 leden 2006, 18:39
rubrika se-spetkou-ironie
Tak jsem dneska náhodou narazil na výborný a hezky názorný web o hackování.
Web je spíše strohého rázu, je vidět, že to nepsal žádný upovídaný človíček. Celá suchá a fádní teorie je navíc doplněna o vhodně zvolené obrázky, které tomu teprve dodávají patřičný švih. Příjemné pak je, že si tamější služby můžete i objednat přes jednoduchý online formulář. Tomu říkám luxus.
Zbývá již jen adresa webu: hackujeme.sk.
24 leden 2006, 14:03
rubrika XHTML-semantika
Ten MIME-type mi prostě nedá spát aneb text/html není ani pro XHTML 1.0.
Už se o tom vedlo dost diskusí a stále v tom nemám jasno. Že XHTML 1.1 nesmí být posíláno jako text/html se už obecně i docela ví, i když jsem se minule pokoušel najít určitou škvírku ve specifikaci, skrze kterou by se text/html dalo propašovat i pro XHTML 1.1. Dneska jsem se spíše pokoušel zamyslet nad jednou větou ve specifikaci. Ta věta zní v originále takto:
XHTML1 defines a profile of use of XHTML which is compatible with HTML 4.01 and which may also be labeled as text/html.
Z předchozího textu vyplývá to, že jestliže je XHTML 1.0 dokument kompatibilní s HTML 4.01, může být odeslán jako text/html. Logicky z toho usuzuji, že jestliže není kompatibilní, nemůže být takto odeslán a musí se použít jiný MIME-type (application/xhtml+xml, application/xml nebo ještě text/xml). Takže teď už zbývá pouze vyřešit otázku, jestli je XHTML 1.0 dokument kompatibilní s HTML 4.01. Přijde mi, že nad touto otázkou se moc lidí nezamýšlí.
Ale ať přemýšlím jak přemýšlím, formálně vzato
kompatibilní není. Minimálně jeden důvod by se našel. Aby byl
kompatibilní, nesměly by se v XHTML dokumentu vyskytnout značky jako
<br/>
nebo meta tagy. Proč? Vzpomínáte si na HTML hádanku?
Lomítko, které v XHTML vkládáte do prázdných elementů (tj. ty,
které mají obsah EMPTY), v HTML ukončuje značku, tudíž
následující závorku by prohlížeč měl zobrazit. Narozdíl od XHTML, kde
je tento zápis naprosto v pořádku a prohlížeč by žádnou závorku
zobrazit neměl. Posíláte-li tedy dokonalou XHTML validní stránku
s MIME-typem text/html, prohlížeč ji bude nakonec zpracovávat jako
zprasené a nevalidní HTML. Chcete-li psát „moderním“ jazykem,
měli byste také posílat „moderní“ MIME-type.
Jak je vidět, Shorthand
markup nadělalo zatím více škody než užitku, nicméně to na věci
nic nemění. Zvalidujete-li XHTML dokument HTML validátorem, vyhodí vám
chybu, protože máte v hlavičce text (ty závorky) a případně ještě
zařve na atributy xml:lang
a xmlns
, používáte-li
je. Ale vzhledem k tomu, že atributy, které prohlížeč nezná
(formálně vzato by je znát neměl, v HTML obsažené nejsou), by měl
ignorovat, nenarušuje to kompatibilitu (narozdíl od ukončování prázdných
elementů). Na druhou stranu používáte-li oba atributy lang
i
xml:lang
a máte je různé (překlep, nepozornost…),
v XHTML má přednost atribut xml:lang
, ale HTML tento
atribut nezná, tudíž by se měla brát hodnota lang
, takže
další nesrovnalost, i když drobná.
Takže sečteno podtrženo – není-li váš XHTML dokument zpětně
kompatibilní s HTML, nemůžete odesílat stránku jako text/html.
V naprosté většině případů pak kompatibilní není (využívá se
vlastně „chyby“ v prohlížečích), leda byste nepoužívali
prázdné elementy jako třeba <br>
nebo meta tagy či
element <link>
.
update: určitě si přečtětě Derův článek, věnuje se stejnému tématu, jen to rozebral do větší hloubky ;-).
22 leden 2006, 15:11
rubrika XHTML-semantika
Není snad zavrhovanější značky než této, ale ať přemýšlím jak
přemýšlím, pořád nemohu najít důvod. Značka <font>
není nebezpečná.
<font>
jako první implementoval stařičký Netscape 1.0,
který zároveň podporoval atribut size
, jenž sloužil ke
změně velikost písma (tedy tak, jak jej známe teď). Na to reagoval
Internet Explorer, který si přidal ještě další dva atributy, které jsou
taktéž známé – color
a face
. O něco
později je začal podporovat taktéž Netscape. Ten také ve své čtvrté
verzi začíná podporovat další dva atributy a sice
font-weight
, který ovládal „tučnost“ písma
(v podstatě stejné jako css vlastnost font-weight) a
point-size
, což měla být jakási alternativa k atributu
size
, ale používala jiné jednotky.
Značka font byla poprvé zařazena až do specifikace HTML 3.2, ale už
tehdy ji nebyla přána zářivá budoucnost. Zajímavostí pak je, že tehdy
obsahovala pouze dva atributy – size
a color
,
atribut face
byl přidán až ve specifikaci HTML
4.0 (a od té doby je také značka font, včetně atributů,
zavržená).
<strike>
nemá v sémantickém kódu co dělat, těžko budeme hledat její
význam. Stejně tak bychom nemuseli v kódu vidět značky jako
<s>
, <marquee>
,
<blink>
, <big>
,
<center>
nebo <tt>
. Mohou se najít
výjimky, ale obecně lze prohlásit, že by tyto značky v kódu být
neměly.
Je značka <font>
sama o sobě prezentační?
Domnívám se, že není. Podle specifikace nemá žádný
výchozí styl, tudíž při tomto zápisu se text nijak nezmění:
<font>
nějaký text</font>
. Bez použití
vlastních atributů je značka <font>
neškodná a de facto
se jedná o neutrální značku, obdobně jako <span>
.
A stejně jako <span>
můžete i značku font
jednoduše nastylovat. Potřebujete přebarvit část věty? Prosím, můžete
vesele použít značku font a nic tím nezkazíte:
Tohle je <font style="color:red">červený text</font>.
Ereses