<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Kaip tapti ekspertu? &#187; html</title>
	<atom:link href="http://www.d-b.lt/tag/html.rss2.xml" rel="self" type="application/rss+xml" />
	<link>http://www.d-b.lt</link>
	<description>Jeigu tokiu tapsiu - čia yra istorija ir vartotojo gidas. Dominyko Blyžės blog&#039;as.</description>
	<lastBuildDate>Mon, 02 Jan 2012 15:37:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Kaip HTML5 įsisenėjusį skaudulį nuėmė</title>
		<link>http://www.d-b.lt/2009/07/kaip-html5-isisenejusi-skauduli-nueme.html</link>
		<comments>http://www.d-b.lt/2009/07/kaip-html5-isisenejusi-skauduli-nueme.html#comments</comments>
		<pubDate>Mon, 06 Jul 2009 23:13:14 +0000</pubDate>
		<dc:creator>Dominykas</dc:creator>
				<category><![CDATA[Be kategorijos]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[pavadinimai]]></category>
		<category><![CDATA[standartai]]></category>

		<guid isPermaLink="false">http://www.d-b.lt/?p=117</guid>
		<description><![CDATA[Jau kokius du su puse metų vis ruošiausi parašyti įrašą apie h1-h6 žymų naudojimą ir jų nepakankamumą. Gerai, kad tingėjau &#8211; dabar nebereikia net sukti dėl to galvos.
Antraščių problema HTML 4.01
HTML4 specifikacija apie h? antraštes kalba gana abstrakčiai. Jų esmė &#8211; pristatyti toliau einačios dokumento dalies turinį. Paminėta, kad h1 yra svarbiau negu h6, taipogi, [...]]]></description>
			<content:encoded><![CDATA[<p>Jau kokius du su puse metų vis ruošiausi parašyti įrašą apie <code>h1</code>-<code>h6</code> žymų naudojimą ir jų nepakankamumą. Gerai, kad tingėjau &#8211; dabar nebereikia net sukti dėl to galvos.</p>
<h2>Antraščių problema HTML 4.01</h2>
<p>HTML4 specifikacija <a href="http://www.w3.org/TR/html401/struct/global.html#h-7.5.5">apie <code>h?</code> antraštes</a> kalba gana abstrakčiai. Jų esmė &#8211; pristatyti toliau einačios dokumento dalies turinį. Paminėta, kad <code>h1</code> yra svarbiau negu <code>h6</code>, taipogi, kad iš to galima sukurti dokumento &#8220;apžvalgą&#8221; ar &#8220;turinio rodyklę&#8221;. Dar rašoma, kad &#8220;kai kurie žmonės&#8221; laiko, kad &#8220;peršokti&#8221; lygius (t.y. <code>h1 h3 h5</code>) yra neteisinga, tačiau neteikia jokių rekomendacijų šiuo klausimu.</p>
<p>Be jau paminėto komentaro pačioje specifikacijoje, toks aprašymas palieka begalybę kitų klausimų, kad ir pvz. kiek puslapyje gali būti <code>h1</code> žymų? Kaip atskirti skirtingą jų kontekstą? Viena iš SEO strategijų (kol robotai nebuvo to išmokę pažinti), buvo sukišti vos ne visą puslapio turinį į <code>h1</code>, taip raktažodžiams suteikiant papildomą vertę. Kita problema buvo, kad ir tai, kad pvz. dokumento skiltis skirta navigacijai (blog&#8217;o <i>sidebar</i>) taipogi buvo suskirstyta į dalis &#8211; tokiu atveju norėtųsi atskirti, kad <i>sidebar</i> poskyriai (pažymėti <code>h3</code>) nėra vienos iš įrašo pastraipų (pažymėtų <code>h2</code>) dalis.</p>
<h3>Interpretacija: <code>h1</code> yra svarbiausias ir vienintelis</h3>
<p><aside>Vis pamirštu, kad HTML4 reikia naudoti būtuoju laiku</aside></p>
<p>Negana to, mano asmeniniu požiūriu, puslapyje <del>derėtų</del> derėjo naudoti tik vieną <code>h1</code> tipo elementą (<a href="http://www.w3.org/TR/2008/NOTE-WCAG20-TECHS-20081211/H42">WCAG rekomendacija</a>) &#8211; tą, kuris daugiau mažiau sutaptų su puslapio pavadinimu, nurodytu <code>title</code>. Taigi titulinis eilinio blog&#8217;o puslapis atrodytų maždaug taip:</p>
<ul>
<li><code>h1</code>: blog&#8217;o pavadinimas
<ul>
<li><code>h2</code>: navigacija
<ul>
<li><code>h3</code>: <i>sidebar</i> skiltis</li>
<li><code>h3</code>: <i>sidebar</i> skiltis</li>
</ul>
</li>
<li><code>h2</code>: įrašas
<ul>
<li><code>h3</code>: įrašo pastraipa</li>
<li><code>h3</code>: įrašo pastraipa</li>
</ul>
</li>
<li><code>h2</code>: įrašas
<ul>
<li><code>h3</code>: įrašo pastraipa</li>
<li><code>h3</code>: įrašo pastraipa</li>
</ul>
</li>
</ul>
</li>
</ul>
<h3>Ką daryti kai antraštės &#8220;šokinėja&#8221;?</h3>
<p>Aukštesnis suskirstymas tinka tik pirmąjam puslapiui. Jeigu kalbame apie individualaus įrašo puslapio sužymėjimą, tai situacija lyg ir keistųsi &#8211; <em>blog&#8217;o pavadinimas jau nebėra <code>h1</code> svarbos</em>, nes svarbiausia antraštė tokiu atveju yra <em>įrašo</em> pavadinimas! Įrašo pastraipos taipogi turėtų kylti lygiu aukščiau &#8211; iki <code>h2</code>. Kas tokiu atveju atsitinka su <i>sidebar</i> skiltimis? Nežinau.</p>
<p>Taip iki galo ir neišsprendžiau tos problemos, nors ir labai norėjosi. Viena iš minčių buvo išvis atsisakyti pašalinės navigacijos. Lankytojų tai per daug nenuskriaustų &#8211; pagal mano duomenis didžioji dalis lankytojų iš Google patekę tiesiai į konkretų įrašą arba tiesiog išeidavo (aš gal rašyt nemoku?), arba po to keliaudavo į titulinį puslapį (o gal vistik moku?), o ne tiesiogiai į kitus įrašus.</p>
<h2>HTML5 dokumento skilčių apibrėžimai į pagalbą!</h2>
<p>Nepaisant to, kad iš aukščiau apibrėžtos problemos grafomanas išspaustų tris įrašus, o internetas pilnas <a href="http://www.h1debate.com/">nesibaigiančių diskusijų</a>, man tai nebėra aktualu! HTML5 apibrėžia dokumento skiltis &#8211; joms sužymėti galima naudoti <code>section</code>, <code>nav</code> ir <code>article</code> elementus (<code>aside</code> taipogi laikoma atskiru, susijusiu poskyriu). Visi šie elementai gali turėti savo antraštes ir paraštes (<code>header</code> ir <code>footer</code>). Tokiu atveju, kiekviena antraštė įgauna savo individualų kontekstą (<code>body</code> viduje esanti antraštė aprašo puslapį, gi tuo tarpu <code>article</code> viduje &#8211; tik tą įrašą) ir savo individualią hierarchiją.</p>
<p>Nepaisant to, kad specifikacijoje gana daug teksto yra skiriama <a href="http://dev.w3.org/html5/spec/Overview.html#outlines">rodyklės (<i>outline</i>) formavimo algoritmui</a>, paprastam blog&#8217;ui, o turbūt ir daugeliui kitų svetainių, tai yra neaktualu, nes antraščių hierarchija visada gaunasi elementari &#8211; praktiškai bet kurios dokumento dalies antraštės apsirašo tiesiog <code>&lt;header&gt;&lt;h1&gt; pavadinimas &lt;/h1&gt;&lt;/header&gt;</code>, t.y. <code>h1</code> šiuo atveju nebereiškia tiesiog &#8220;svarbiausia antraštė&#8221;, o interpretuotina kaip &#8220;svarbiausia antraštė šioje dokumento dalyje&#8221;. Naudojant tokią logiką, individualus įrašo puslapis jau nebeturi kitokio globalaus antraščių lygmenų išsidėstymo, nei sąrašuose &#8211; dabar aš drąsiai galiu savo įrašų poskilčius žymėti tiesiog <code>h2</code>.</p>
<h2>Desertas</h2>
<ul>
<li>HTML5 neberiboja antraščių gilumo (anksčiau buvo maks. 6) &#8211; nors ir nelabai žinau kam to gali prireikti</li>
<li><code>hgroup</code> elementas leidžia grupuoti antraštes su paantraštėm, kaip pvz. aš esu padaręs su blog&#8217;o pavadinimu &#8211; <i>View source</i> naudoti mokat?</li>
<li><a href="http://www.w3.org/TR/wai-aria/#banner">ARIA <code>banner</code> rolė</a> leidžia atskirti &#8220;svetainės&#8221; ir &#8220;dokumento&#8221; pavadinimus &#8211; apie ARIA apskritai dar reiktų daugiau man pasiskaityti&#8230;</li>
</ul>
<h2>Papildomas skaitymas</h2>
<ul>
<li><a href="http://blog.whatwg.org/this-week-in-html-5-episode-32#hgroup">Introducing the <code>&lt;hgroup&gt;</code> element</a></li>
<li><a href="http://www.brucelawson.co.uk/2009/headings-in-html-5-and-accessibility/">Headings in HTML 5 and accessibility</a></li>
<li><a href="http://www.youtube.com/watch?v=GIn5qJKU8VM">More than one H1 on a page: good or bad?</a></li>
</ul>
<p>PS neturiu laiko ieškoti, bet gal kas turit pasiūlymą, kaip WordPress priversti nedėti <code>aside</code> į <code>p</code>?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.d-b.lt/2009/07/kaip-html5-isisenejusi-skauduli-nueme.rss2.xml</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>hasFocus ir activeElement už 400 baitų</title>
		<link>http://www.d-b.lt/2009/03/hasfocus-ir-activeelement-uz-400-baitu.html</link>
		<comments>http://www.d-b.lt/2009/03/hasfocus-ir-activeelement-uz-400-baitu.html#comments</comments>
		<pubDate>Sat, 07 Mar 2009 19:42:16 +0000</pubDate>
		<dc:creator>Dominykas</dc:creator>
				<category><![CDATA[Tinklo kūrimas]]></category>
		<category><![CDATA[eksperimentai]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[kodas]]></category>
		<category><![CDATA[užknisantys dalykai internete]]></category>

		<guid isPermaLink="false">http://www.d-b.lt/2009/03/hasfocus-ir-activeelement-uz-400-baitu.html</guid>
		<description><![CDATA[Vienas labiausiai internete užknisančių dalykų yra tai, kad kai kurios svetainės visiškai manęs negerbdamos paima ir perrašo įvesties laukų turinį tada kai aš jau ten bandau kažką rašyti. Ši situacija kyla iš to, kad nėra paprasto būdo nustatyti ar (ir kuris) HTML elementas yra fokusuotas ar ne. Internet Exploreris jau senokai turi document.activeElement, bet kas [...]]]></description>
			<content:encoded><![CDATA[<p>Vienas labiausiai internete užknisančių dalykų yra tai, kad kai kurios svetainės visiškai manęs negerbdamos paima ir perrašo įvesties laukų turinį tada kai aš jau ten bandau kažką rašyti. Ši situacija kyla iš to, kad nėra paprasto būdo nustatyti ar (ir kuris) HTML elementas yra fokusuotas ar ne. Internet Exploreris jau senokai turi <code>document.activeElement</code>, bet kas iš to, jeigu tai negalioja kitoms naršyklėms. HTML5 specifikacijoje yra standartizuotos abi -<code>element.hasFocus</code> ir <code>document.activeElement</code> galimybės, tačiau ką daryti šiandien? <a href="http://www.d-b.lt/2009/03/hasfocus-ir-activeelement-uz-400-baitu.html#galutinis-sprendimas-20090307">Tingiu skaityti &#8211; duok galutinį sprendimą</a>.</p>
<p>Aprašytos problemos sprendimo algoritmas yra gana paprastas &#8211; prikabinti <dfn title="event handler">įvykių gaudytojus</dfn> prie reikalingų elementų ir pačiam nustatyti reikalingus parametrus. Tačiau jeigu nesusimąstytume &#8211; greitas ir paprastas įgyvendimas turėtų kelias problemas.</p>
<h2>Sprendimo problemos</h2>
<p>Pavyzdys: krauname puslapį, jame yra paieškos laukas, kurio viduje yra tekstas &#8220;Paieška&#8221;. Fokusuojant lauką tas tekstas turi pradingti. Be abejo, pats &#8220;standartinio teksto&#8221; <i>patternas</i> yra jau savaime nelabai geras, tačiau kartais be jo tiesiog neįmanoma išsiversti. Taigi, turime du variantus: a) tekstą įrašyti lauke iš anksto (<code>input value="Paieška"</code>), fokusuojant jį ištrinti; b) palikti tuščią lauką, ir užkrovus puslapį tą tekstą įrašyti. Pirmu atveju turime semantikos problemą, o taipogi jis nėra <dfn title="unobtrusive">netrukdantis</dfn>, t.y. tam, kad naudotis lauku, reikalingas įjungtas Javascript. Taip pat, abiem atvejais, neįdėjus papildomų pastangų, perrašymas gali įvykti jau po to kai vartotojas fokusuoja lauką (pvz. dėl lėtai kraunamų Javascript bibliotekų arba IE6 paspaudus <i>refresh</i>, kai kursorius yra viename iš laukų).</p>
<p>Konkrečiam pavyzdžiui yra dar ir trečiasis variantas &#8211; naudoti <code>onfocus</code> ir <code>onblur</code> atributus ir Javascript rašyti tiesiog HTML viduje (<i>inline Javascript</i>), tačiau šis būdas tinkamas tik tuo atveju, jeigu nesilaikote <dfn title="HTML - markup">sužymėjimo</dfn> ir <dfn title="Javascript - behaviour">elgsenos</dfn> atskyrimo principo. Be to, jis apkrauna kiekvieną siunčiamą puslapį papildomu kodu, kas nėra pageidautina, ypač jeigu tokių laukų yra ne vienas. Na ir aišku, jis neišsprendžia pagrindės šio įrašo problemos &#8211; <code>hasFocus</code> &#8211; vieningu, paprastu, universaliu būdu.</p>
<h3>Kodo kiekis ir geriausios praktikos</h3>
<p>Akivaizdu, kad <code>hasFocus</code> simuliavimui reikės kiekviename puslapyje įtraukti gabaliuką Javascript, kuris priešingai negu geriausios praktikos rekomendacijos, turės būti įvykdomas dar prieš galutiniai &#8220;nupiešiant&#8221; puslapį, t.y. <code>&lt;head&gt;</code> viduje. Tai reiškia, kad pats kodas turi būti minimalus &#8211; tiek instrukcijų kiekiu, tiek savo apimtimi, nes kiekvienas persiųstas baitas ir vykdymas <a href="http://glinden.blogspot.com/2006/11/marissa-mayer-at-web-20.html">kainuoja vertingas milisekundes</a> (<a href="http://home.blarg.net/~glinden/StanfordDataMining.2006-11-29.ppt">prezentacija</a>).</p>
<h3>Įvykių burbuliavimas</h3>
<p>Su ankstesniu reikalavimu atsiranda ir kitas &#8211; neturime galimybės įvykių gaudyti kiekvienam elementui individualiai. Net jeigu tai ir nebūtų idelaus sprendimas vien dėl apkrovimo priežasčių, tie elementai dar paprasčiausiai neegzistuoja dokumente. Taigi turime rinktis <a href="http://code.google.com/p/reglib/">reglib</a> požiūrį &#8211; prikabinti savo funkcijas prie viso dokumento ir jų viduje nustatinėti elementą, kuriame viskas vyksta. Šioje vietoje derėtų paminėti, kad remiantis standartais, <code>focus</code> ir <code>blur</code> įvykiai neburbuliuoja į viršų, t.y. tėvinis elementas teoriškai neturėtų žinoti, kad jo vaikuose vyksta būtent šie įvykiai.</p>
<h3>Naršyklių skirtumai</h3>
<p>Skirtingos naršyklės <i>eventus</i> gaudo skirtingais būdais, taipogi naudoja skirtingą metodiką perduoti susiijusius elementus. Tradiciškai ši problema buvo sprendžiama vykdant skirtingas kodo šakas skirtingoms naršyklėms, tai nustant pagal <code>user-agent</code> eilutę. Tokia metodika yra žalinga ir nėra amžina. Pastaruoju metu tiek jQuery, tiek kitos bibliotekos perėjo prie efektyvesnio būdo &#8211; tikrinti ar egzistuoja tam tikros galimybės, o ne tikrinti ar lankytojas naudoja konkrečią naršyklę. <i>Feature sniffing</i> taipogi yra reikalavimas šiai užduočiai.</p>
<h2>Sprendimas pažingsniui</h2>
<ol>
<li>Nusistatom įvykių gaudymo funkciją (<i>f</i>) &#8211; IE naudoja <code>attachEvent</code>, padorios naršyklės &#8211; <code>addEventListener</code>.
<li>Nusistatom įvykių vardus (<i>n</i>). <code>focus</code> ir <code>blur</code> kaip minėjau neturėtų burbuliuoti į viršų, todėl su IE reikia naudoti <code>onfocusin</code> ir <code>onfocusout</code>. Šia tema <a href="http://www.quirksmode.org/dom/events/blurfocus.html">galima pasiskaityti ir daugiau</a>, tačiau šiam sprendimui šito užtenka.</li>
<li>Pagrindinė fokuso nustatymo funkcija (<i>s</i>) ima du parametrus &#8211; pirmas nurodo ar fokusą įjungti, ar atjungti, antrasis gi nurodo elementą.</li>
<li>Neesu įsitikinęs, kad čia pats taupiausias variantas, tačiau įdedame dvi funkcijas &#8211; viena gaudo <code>focus</code> (<i>i</i>), kita <code>blur</code> (<i>o</i>), ir kviečia pagrindinę funkciją.</li>
<li>Viską sukišame į <code>closure</code> ir sutrumpinę iki minimumo pagaliau prisegame įvykius &#8211; <code>d[f](n[0],i,true);</code>.</li>
</ol>
<h2 id="galutinis-sprendimas-20090307">Galutinis sprendimas</h2>
<pre>
(function() {
    var d = document,
	s = function(h, t) {
		if (t.tagName) {
			t.hasFocus=h;
			if (a) document.activeElement=t;
		}
	},
	i = function(e) {
		s(true, e.target || e.srcElement); },
	o = function(e) {
		s(false, e.target || e.srcElement); },
	f = d.addEventListener ?
		"addEventListener" : "attachEvent",
	n = typeof d.onfocusin=="object" ?
		['onfocusin','onfocusout'] : ['focus','blur'],
	a = typeof document.activeElement=="object" ?
		false : true;

	d[f](n[0],i,true); d[f](n[1],o,true);
})();
</pre>
<p>Panaikinus bereikalingus tarpus ir <a href="http://developer.yahoo.com/yui/compressor/">suspaudus viską į vieną eilutę</a>, šis sprendimas užimtų vos daugiau nei 400 baitų &#8211; pakankamai maža kaina už funkcionalumą. Jeigu netyčia nepalikau kokios klaidos kur nors &#8211; viskas turėtų veikti su IE6/7, FF2/3, Opera 9.6 ir Safari 3.x.</p>
<p>Taipogi galite pasižiūrėti <a href="http://code.dominykas.com/js/hasFocus.html">veikiančią demonstraciją</a>. Po dviejų sekundžių nuo užkrovimo gausite iššokantį langą, kuriame bus surašyta kas turi fokusą.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.d-b.lt/2009/03/hasfocus-ir-activeelement-uz-400-baitu.rss2.xml</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Horizontalus centravimas</title>
		<link>http://www.d-b.lt/2008/05/horizontalus-centravimas-su-css.html</link>
		<comments>http://www.d-b.lt/2008/05/horizontalus-centravimas-su-css.html#comments</comments>
		<pubDate>Mon, 26 May 2008 22:18:12 +0000</pubDate>
		<dc:creator>Dominykas</dc:creator>
				<category><![CDATA[Tinklo kūrimas]]></category>
		<category><![CDATA[css]]></category>
		<category><![CDATA[eksperimentai]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[kodas]]></category>

		<guid isPermaLink="false">http://www.d-b.lt/2008/05/horizontalus-centravimas-su-css.html</guid>
		<description><![CDATA[Šitas įrašas yra visai ne apie tai, kas būtų jeigu Sabonis žaistų krepšinį gulėdamas ant grindų (tiesa, esu įsitikinęs, kad jis tai darytų puikiai). Ir tikiuosi iš pirmojo sakinio supratote, kad nesusipainiojau ir (beveik) neketinu kartotis vertikalaus centravimo tema.
Dažniausiai norint nežinomo pločio elementą išcentruoti horizontaliai kitame elemente problemų nekyla &#8211; užtenka tiesiog paprasto text-align:center; ar [...]]]></description>
			<content:encoded><![CDATA[<p>Šitas įrašas yra visai ne apie tai, kas būtų jeigu Sabonis žaistų krepšinį gulėdamas ant grindų (tiesa, esu įsitikinęs, kad jis tai darytų puikiai). Ir tikiuosi iš pirmojo sakinio supratote, kad nesusipainiojau ir (beveik) neketinu kartotis <a href="http://www.jakpsatweb.cz/css/css-vertical-center-solution.html">vertikalaus centravimo</a> tema.</p>
<p>Dažniausiai norint nežinomo pločio elementą išcentruoti horizontaliai kitame elemente problemų nekyla &#8211; užtenka tiesiog paprasto <code>text-align:center;</code> ar kiek sudėtingesnio <code>display:block; margin-left: auto; margin-right: auto;</code>. Šie abu variantai netinka tuo atveju, kai vidinis elementas yra platesnis negu išorinis. Jeigu tas vidinis elementas yra paveiksliukas, jį galima perkelti į foną ir uždėti <code>background-position: 50% 50%;</code>, tačiau kartais tiesiog nėra techninės galimybės nenaudoti <code>&lt;img&gt;</code>, o galbūt kai kam kiltų noro ir žaisti su kitokiais elementais.</p>
<p>Alternatyvus variantas, be abejo, yra naudoti tam JavaScript, tačiau pritaikom Auksinę Gero Tinklo Taisyklę: HTML naudojamas aprašymui (<i>mark-up</i>), CSS atvaizdavimui (<i>presentation</i>), o JS elgsenai/veikimui (<i>behavior</i>)- centravimas yra atvaizdavimas, taigi JS netinka.</p>
<h2>Praktinė užduotis</h2>
<p>Turime didelę duomenų bazę, kurioje sukauptas kalnas sumažintų paveiksliukų (<i>thumbnails</i>). Dauguma jų yra 150px pločio, tačiau pasitaiko ir kitokių. Kaip juos visus &#8220;apkarpyti&#8221; parodant tik vidurinę dalį 100px pločio rėmelyje? Galima naudotis tik CSS ir <code>&lt;img&gt;</code> dėl <i>accessibility</i>.</p>
<h2>Sprendimas: kaip centruoti nežinomo pločio vidinį elementą</h2>
<p><em>Nustok man kvaršinti galvą ir duok <a href="http://code.dominykas.com/css/centering/">pilną sprendimą</a>.</em></p>
<p>Jeigu turime fiksuoto pločio išorinį rėmelį, ir visiškai nežinomo pločio (platesnį arba siauresnį) vidinį elementą, tenka šiek tiek pavargti. Matematika atrodytų paprasta &#8211; kažkokiu būdu pastumti vidinį elementą per pusę išorinio elemento pločio, ir patraukti atgal per pusę vidinio elemento pločio, taip sulygiuojant jų centrines linijas. Lengviau pasakyti, negu padaryti&#8230;</p>
<h3>Pirmas žingsnis &#8211; pastumiam į šoną</h3>
<p>Išoriniam elementui <code>.frame</code> uždedame fiksuotą plotį ir <code>overflow: hidden;</code>, kad jokie išsiplėtę vidiniai elementai jo nepakeistų. Tada sukuriame pirmą vidinį rėmelį perkėlimui &#8211; <code>.shiftLeft</code>, kuris paprasčiausiai turi papildomą paraštę, kurios plotis yra pusė išorinio rėmelio. Sprendime naudoju pikselius, bet manau, kad turėtų veikti ir procentai.</p>
<h3>Antras žingsnis &#8211; patraukiam atgal</h3>
<p>Patraukti vidinį elementą per pusę jo paties pločio atgal yra kiek sudėtingiau &#8211; panaudoti neigiamos paraštės negalima, nes <strong>paraščių procentiniai pločiai</strong>, pagal standartus, <strong>yra skaičiuojami nuo tėvinio elemento pločio</strong>. Šią problemėlę galima išspręsti, jeigu vidinis elementas yra <i>&#8220;plaukiojantis&#8221;</i>. Kadangi kai kurios naršyklės <em>(ghkhmz)</em> tai palaiko ne visai tiksliai &#8211; tenka naudoti du elementus &#8211; vienam jų (<code>.floatToFix</code>) uždėti <code>float</code> ir užfiksuoti plotį, o su kitu (<code>.unshift</code>) traukti atgal. Į <code>.unshift</code> vidų jau galime įdėti neapibrėžto pločio paveiksliuką &#8211; nerekomenduočiau jam pačiam taikyti patraukimo atgal klasės&#8230;</p>
<h3>Trečias žingsnis &#8211; sprendžiam problemas</h3>
<p>Gana dažnai dėl klaidos kode (<i>double margin bug</i>) tam tikra naršyklė <em>(ghkhmz)</em> pritaiko dvigubą plotį plaukiančių elementų paraštėms &#8211; tai galima spręsti su <code>display: inline;</code>, tačiau šiuo atveju vistik tenka traukimo veiksmą pakeisti iš paraščių į santykinį pozicionavimą ir panaudoti tiesiog neigiamą <code>left: -50%;</code>. Su tuo santykiniu patraukimu atsiranda kita problema (toje pačioje, tam tikroje, naršyklėje <em>(ghkhmz)</em>) &#8211; vidinis elementas išlipa į viršų ir nebepaiso <code>overflow</code>. Tai galima išspręsti nustatant <code>position: relative;</code> ir visiems tėviniams elementams.</p>
<h2>Galutinis sprendimas</h2>
<p>Kažkodėl pažvelgus į jo kodą, atrodo, kad viskas taip elementaru, tačiau teko gerokai paeksperimentuoti, kol pasiekiau <a href="http://code.dominykas.com/css/centering/">veikiantį variantą</a>. Kas keisčiausia, vos vos jį pakeitus viskas sugriūna! Panašu, kad galutinė versija veikia teisingai su:</p>
<ul>
<li>Internet Explorer 6</li>
<li>Internet Explorer 7</li>
<li>Firefox 2</li>
<li>Opera 9.26</li>
<li>Safari 3.1</li>
</ul>
<p>Su Safari, tiesa, kartais atsiranda gana keistas perpiešimo efektas &#8211; dalis vidinio elemento pradingsta, tačiau pakeitus lango dydį viskas sugrįžta į vietas. Jeigu kas galite patikrinti su kitomis naršyklėmis &#8211; būtų malonu išgirsti rezultatus, o šiaip jeigu prireiks šio sprendimo &#8211; naudokit į sveikatą ir neminėkit piktuoju, jeigu kas nors neveiks. Bandysiu pritaikyti ir vertikalų centravimą, tačiau bijau, kad aukštesniems elementams jis neveiks&#8230; Todėl eksperimento rezultatuose yra variantas, kuris pakeičia vidinio paveikslėlio aukštį &#8211; darant tai naršyklėje vaizdas kiek sugenda, tačiau galbūt geriau negu nieko?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.d-b.lt/2008/05/horizontalus-centravimas-su-css.rss2.xml</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Paranoja: HTML5</title>
		<link>http://www.d-b.lt/2008/02/paranoja-html5.html</link>
		<comments>http://www.d-b.lt/2008/02/paranoja-html5.html#comments</comments>
		<pubDate>Tue, 05 Feb 2008 19:52:09 +0000</pubDate>
		<dc:creator>Dominykas</dc:creator>
				<category><![CDATA[Tinklo kūrimas]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[paranoja]]></category>
		<category><![CDATA[standartai]]></category>

		<guid isPermaLink="false">http://www.d-b.lt/2008/02/paranoja-html5.html</guid>
		<description><![CDATA[Vakar pagaliau prisiverčiau atidžiai perskaityti prieš kelias savaites paskelbto HTML5 juodraščio skyrių apie skirtumus nuo HTML4. Skaičiau ir norėjau verkti. Kažko pastaruoju metu dažnai taip nutinka skaitant ką nors apie technologijas &#8211; matyt ištižėlis pasidariau&#8230; Arba tiesiog trūksta atostogų.
O dėl verkimo, tai jis turi kelias labai konkrečias priežastis:

Džiaugsmas, dėl tobulėjimo, naujų galimybių, semantiškumo;
Nusivylimas, kad tai [...]]]></description>
			<content:encoded><![CDATA[<p>Vakar pagaliau prisiverčiau atidžiai perskaityti prieš kelias savaites paskelbto HTML5 juodraščio skyrių apie <a href="http://www.w3.org/html/wg/html5/diff/">skirtumus nuo HTML4</a>. Skaičiau ir norėjau verkti. Kažko pastaruoju metu <a href="http://www.d-b.lt/2008/01/kas-kaltas.html">dažnai taip nutinka</a> skaitant ką nors apie technologijas &#8211; matyt ištižėlis pasidariau&#8230; Arba tiesiog <a href="http://www.visitmalta.com/">trūksta atostogų</a>.</p>
<p>O dėl verkimo, tai jis turi kelias labai konkrečias priežastis:</p>
<ul>
<li><strong>Džiaugsmas</strong>, dėl tobulėjimo, naujų galimybių, semantiškumo;</li>
<li><strong>Nusivylimas</strong>, kad tai kas aprašyta specifikacijoje, turėsime (su implementacija) tik po, geriausiu atveju, penkių, jeigu ne penkiasdešimties, metų;</li>
<li><strong>Pyktis</strong> su klausimu &#8220;koks idiotas sugalvojo, kad tai yra reikalinga&#8221;;</li>
<li><strong>Tragiška panika</strong>, kad naujasis HTML5 suteiks galimybę Microsoft padaryti dar daugiau klaidų Internet Exploreryje&#8230;.</li>
</ul>
<h2>Žingsnis į priekį</h2>
<p><a href="http://www.ibm.com/developerworks/library/x-html5/">Pirmą kartą skaitydamas</a> apie tuos skirtumus atkreipiau dėmesį tik į naujus elementus. Labiausiai džiaugiuosi struktūriniais <code>&lt;section&gt;, &lt;article&gt;, &lt;header&gt;, &lt;footer&gt;, &lt;aside&gt;</code> elementais &#8211; jie bus <strong>labai naudingi SEO požiūriu</strong>. Didžioji dalis kitų naujų tag&#8217;ų taipogi nėra blogi iš esmės &#8211; jie visi turi savo pritaikymą.</p>
<h2>Du žingsniai atgal</h2>
<p>Na, dėl žengimo atgal gal per daug griežtai pasakyta, tačiau kai kurie dalykai atrodo mažų mažiausiai keisti. Labiausiai mane <strong>neramina esminiai pasikeitimai formose</strong>. Aš tikrai nepeikiu tų idėjų, netgi atvirkščiai &#8211; džiaugiuosi jomis, tačiau didysis klausimas yra <strong>ar šioms naujovėms vieta HTML standarte</strong>?</p>
<p>Nepaisant to, kad <code>&lt;input&gt;</code> elemento tipas <code>datetime</code> yra tikrai reikalingas, tereikia tinkamai apibrėžti siuntimo standartus į serverį (nes atvaizdavimo formatas skirtingas priklausomai nuo vartotojo lokalės), jis sukelia <strong>neigiamą postūmį tinklo kūrėjams</strong>.</p>
<h2>HTML mokymosi kreivė</h2>
<p>Daugiau nei pusė &#8220;PHP programuotojų&#8221;, kurie ateidavo pas mane į pokalbius dėl darbo, nežinojo arba <strong>nesugebėdavo apibrėžti kas yra &#8220;SQL injection&#8221;</strong>. Natūralus klausimas yra ar tie programuotojai suvoks kad <code>email</code> lauke įvestus duomenis reikia vistiek tikrinti ir server-side? Nemanau. Be abejo, galimi kažkokie priverstiniai sprendimai, kad ir reikalavimas kartu su siunčiama forma perduoti metaduomenis apie laukų tipus. juos automatiškai patikrintų, kad ir tas pats PHP &#8211; tačiau tam gali prireikti ir pakeitimų HTTP standarte &#8211; kas sukuria tik <strong>dar didesnį sniego kamuolį</strong>, besiritantį žemyn nuo kalno.</p>
<p>Be abejo, galimas kontra-argumentas yra tai, kad <strong>svetaines turėtų kurti profesionalai</strong>, bet juk HTML visada buvo standartas, kurio mokymosi kreivė nėra labai stati, be to idėja prieštarauja <i>user-generated content</i> principui. Kažkada žaidžiant žaidimus, teko susidurti su penkiasdešitmetėmis mamytėmis, kurios prižiūrėdamus vaikus, be didelio vargo tvarkydavo savo sritį žaidėjų aliansų svetainėse. Profesionalūs programuotojai jau beveik išmoko <strong>&#8220;teisingo HTML&#8221; taisykles</strong> &#8211; tačiau didžioji dauguma žmonių, kuriems teks susidurti su tuo, <strong>niekada nevargs dėl jų</strong>, bet puslapius tvarkyti norės. Tokie žmonės visada galvos <q>&#8220;Štai įdedu čia <code>number</code> lauką ir jis automatiškai išsisaugo duomenų bazėje &#8211; puiku! Paprasta! Dabar pradėsiu profesionalią tinklo kūrėjo karjerą!&#8221;</q></p>
<h2>Daugiau medžių</h2>
<p>HTML5 specifikacija gan neblogai atspindi tam tikras Web 2.0 tendencijas, o ypač &#8211; AJAX paplitimą. Tai ryškiai matosi iš tokių naujų atributų kaip <code>contenteditable, contextmenu, draggable, ping</code> ar elementų <code>&lt;menu&gt;, &lt;progress&gt;</code>. Vėlgi &#8211; beprotiškai džiaugiuosi didžiąją jų dalimi. Kasdieniame darbe ne kartą apie juos teko pasvajoti (tol kol nepradėjau žaisti su <a href="http://code.google.com/webtoolkit/">GWT</a> &#8211; JavaScript nėra pati dėkingiausia programavimo kalba).</p>
<p>Tačiau <strong>ar tikrai HTML yra ta kalba, kuria derėtų aprašinėti turinio <em>valdymo</em> sistemas</strong>? Kiek pamenu, HTML buvo sukurta tam, kad sužymėti hiper-tekstą &#8211; tai yra dokumentą su išorinėmis nuorodomis. Evoliucija link semantiško HTML yra natūrali. Tačiau realybėje tinklas išsiplėtė ir &#8220;interneto svetainė&#8221;, dabar gali reikšti ir &#8220;tinkle veikiantis programinis paketas&#8221; (think: Google Apps). Lyg ir nebūtų problemos tame, tačiau tą evoliuciją griauna esminis rudimentas:</p>
<blockquote><p>To keep the authoring language relatively simple <strong>for authors</strong> several elements and attributes <strong>are not included</strong> &lt;..&gt; <strong>User agents</strong>, however, will always <strong>have to support</strong> these older elements.</p>
</blockquote>
<p>Ši frazė iš esmės reiškia, kad kūrėjas neturi teisės naudoti tam tikrų senų elementų, bet naršyklės privalo juos palaikyti. Sakyčiau visiškas absurdas. Panašiai kaip ir su greičio limitais. Mieste lyg ir 50km/h, bet Vilniuje visi važiuoja 70km/h ar greičiau. Tai kur gi dingo ta aktyviai W3C propaguojama semantika? Iš vienos pusės jie nori suteikti kuo daugiau lankstumo, tačiau tuo <strong>sukelia absoliutų chaosą</strong> savo diegiamoje tvarkoje. Iš vienos pusės jie skatina naudoti CSS turinio formatavimui, tačiau iš kitos &#8211; bando palikti meniu iš &#8220;tipinio interfeiso&#8221;. Tiesa, neįsivaizduoju kaip galima būtų su CSS aprašyti iššokantį kalendorių (kurį sukuria naršyklė, pagal OS standartus). Nors&#8230; ne bėda juk. &lt;SELECT&gt;&#8217;ų po IE neina formatuoti &#8211; matyt teks gyventi šiame pragare ir toliau&#8230;</p>
<h2>Šaunam į kiškius</h2>
<p>Kaip ten bebūtų &#8211; pagrindinė <strong>W3C problema kuriant HTML5 yra siekimas patenkinti visus</strong>. Tiek naršyklių kūrėjus, tiek tinklo kūrėjus. Tiek patyrusius HTML ekspertus, tiek entuziastiškus mėgėjus. O juk jie galėtų atsižvelgti į vieną elementarią usability taisyklę &#8211; ekspertai nepyksta, kai dalykai yra pritaikyti <del>kvailesniems</del> mažiau patyrusiems už juos ir todėl yra nesudėtingi.</p>
<p>Juk galima vos vos pataisyti esamą HTML standartą, iš jo pašalinant kelis &#8220;per sudėtingus&#8221; elementus bei neįtraukiant naujovių ir publikuoti tai kaip <i>HTML5 basic</i>. O visus sudėtinguosius dalykus perkelti į <i>HTML5 strict</i> standartą, kuriame vertinimas būtų daug griežtesnis. Panašiai jau yra padaryta su HTML4, tačiau svarbiausias dalykas kurio reikia &#8211; norint naudoti pažangius dalykus, privalu naudoti <em>strict</em> standartą. Tai yra, mamytė kovinio alianso žaidime vadovė ir toliau gali naudoti paprastą HTML, o komanda, kurianti corporate level web programą būtų <strong>priversta <em>pilnai</em> laikytis standartų, nes kitaip aplikacija neveiktų išvis</strong>.</p>
<p>Labiausiai paguodžiantis, tačiau tuo pačiu virkdantis dalykas visame dokumente yra ši eilutė:</p>
<blockquote><p>The HTML 5 specification will not be considered finished before there are at least two complete implementations of the specification.</p>
</blockquote>
<p>Paguodžia todėl, kad jeigu Microsoft nesugebės to įdiegti 19.5 IE versijoje be klaidų &#8211; jie atsiliks. Virkdo dėl dviejų priežasčių. Pirma &#8211; Microsoft pasakys, kad standartas yra tai, kaip klaidos veikia 19.5 IE versijoje, o antra &#8211; tinklo kūrėjai pirmo žingsnio diegiant standartus negalės žengti, o naršyklių kūrėjai gali gerokai užtrukti priiminėdami sprendimus, nes visi kabės ore dėl galimų pasikeitimų standarto specifikacijoje.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.d-b.lt/2008/02/paranoja-html5.rss2.xml</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Naršyklinė realybė</title>
		<link>http://www.d-b.lt/2008/01/narsykline-realybe.html</link>
		<comments>http://www.d-b.lt/2008/01/narsykline-realybe.html#comments</comments>
		<pubDate>Thu, 24 Jan 2008 20:15:50 +0000</pubDate>
		<dc:creator>Dominykas</dc:creator>
				<category><![CDATA[Tinklo kūrimas]]></category>
		<category><![CDATA[html]]></category>
		<category><![CDATA[Internet Explorer]]></category>
		<category><![CDATA[Microsoft]]></category>
		<category><![CDATA[standartai]]></category>

		<guid isPermaLink="false">http://www.d-b.lt/2008/01/narsykline-realybe.html</guid>
		<description><![CDATA[Šią savaitė A List Apart paskelbė du vienas kitam prieštaraujančius straipsnius. Čia ne kritika &#8211; prieštarą jie sukėlė sąmoningai. Ir ta prieštara išaugo į gana rimtą diskusiją, kurioje teisių nėra ir nebus. Išskyrus mane.
Trumpai: problemos aprašymas
Sulig kiekviena kiekvienos naršyklės versija, pasikeičia HTML ir CSS kodo interpretacija ir atvaizdavimas. Visi jau seniai įprato rašyti pseudo-standartinį kodą, [...]]]></description>
			<content:encoded><![CDATA[<p>Šią savaitė A List Apart paskelbė du <a href="http://www.alistapart.com/articles/beyonddoctype">vienas</a> kitam <a href="http://www.alistapart.com/articles/fromswitchestotargets">prieštaraujančius</a> straipsnius. Čia ne kritika &#8211; prieštarą jie sukėlė sąmoningai. Ir ta prieštara išaugo į gana rimtą diskusiją, kurioje <a href="http://www.456bereastreet.com/archive/200801/standards_mode_is_the_new_quirks_mode/">teisių nėra ir nebus</a>. Išskyrus mane.</p>
<h2>Trumpai: problemos aprašymas</h2>
<p>Sulig kiekviena kiekvienos naršyklės versija, <strong>pasikeičia HTML ir CSS kodo interpretacija</strong> ir atvaizdavimas. Visi jau seniai įprato rašyti pseudo-standartinį kodą, su papildomais browser-hack&#8217;ais. Tam, kad ateityje išvengti šios problemos, vienas iš List Apart autorių, teigia, kad sprendimas <strong>naudoti papildomą HTTP headerį/META eilutę su naršyklės versija</strong>, kuriai pritaikyta svetainė yra geras, o kitas tuo tarpu teigia, kad blogesnės idėjos būti negali.</p>
<h2>Realybė</h2>
<p>Šiaip pats sprendimas lyg ir atrodytų neblogas &#8211; nurodau, kad mano svetainė gerai veikia su FF3 ir IE8, o toliau &#8211; nusispjaunu. Vartotojas jokio skirtumo nepajaučia, išskyrus tai, kad kiekviena nauja naršyklė veikia vis lėčiau ir tenka atsinaujinti techninę įrangą. Ir įsidiegti Vista.</p>
<p>Tačiau realybėje jis nieko nekeičia &#8211; ir ateityje visi <strong>tinklo meistrai turės spręsti naršyklių klaidas</strong>, bei priedo nurodyti kurios naršyklės problemos yra <strike>nulaužtos</strike> išspręstos. Šis sprendimas tereiškia viena &#8211; Microsoft, su visa galybe savo pinigų ir programuotojų, pasiduoda ir tiesiai šviesiai sako: <strong>&#8220;mes niekada neišspręsime suderinamumo problemų&#8221;</strong>. Paranojikas galėtų pasakyti, kad MS verslas yra paremtas marketingu ir rinkos kontrole, o naujos programų versijos niekuo nepasikeičia (&#8220;buvo blogai, tapo kitaip, bet vistiek blogai&#8221;) &#8211; vartotojas yra priverčiamas jas naudoti apgaulės būdu.</p>
<h2>Kur dingo semantinis tinklas?</h2>
<p>Kiek teko girdėti (ghkhmz), tai web 3.0 bus sematinis tinklas &#8211; t.y. &#8220;naujojo tipo&#8221; svetainės bus struktūriškai tvarkingos ne tik sužymėjimo/kodo atžvilgiu, bet ir to kodo prasmingumo atžvilgiu tam, kad įvairūs programiniai robotai galėtų aptažinti sužymėto turinio prasmę. Tačiau visa šita &#8220;<strong>standartizavimo&#8221; banga stabdo</strong> vieną esminį elementą &#8211; <strong>išvaizdos individualumą</strong>. <em>Pašalinė mintis: Tarybų Sąjunga būtų išsivysčiusi į labai semantinę valstybę. Pasiilgau mėlynų ir rudų mokyklinių uniformų.</em></p>
<p>Ką reiškia nauja žyma &#8220;pritaikyta XX naršyklės YY versijai&#8221; semantine <em>HTML</em> prasme? Absoliučiai nieko (meta). Ji tik nurodo kokį &#8220;piešimo&#8221; variklį derėtų naudoti tam, kad svetainė atrodytų &#8220;idealiai&#8221;. Vienas pirmų dizainerių, su kuriais teko dirbti, atsiuntęs man PSD failą vis sakydavo &#8211; galutinis rezultatas naršyklėje turi būti tiksliai toks, be menkiausio, net 1px nukrypimo. Ši nauja žyma tik parodo, kad tokie dizaineriai, bei už jų stovintys marketingo žmonės vis dar valdo tinklą.</p>
<h2>Lankytojui tikslumas nesvarbu</h2>
<p>Be abejo, IE6 turi daug šlykščių piešimo problemų, tačiau ar eiliniam vartotojui taip jau svarbu, kad svetainės vaizdas yra šiek tiek kitoks negu buvo planuota? Juk lankytojas net nežino kaip svetainė &#8220;turi&#8221; atrodyti! Vienintelis dalykas, kuris jam svarbus &#8211; tai, kad jis ta svetaine gali naudotis ir matomas vaizdas neturi aiškių &#8220;nesklandumų&#8221;, kaip pvz. balti tarpai žaliame fone.</p>
<p>Tiek aš, tiek galybė kitų tinklo meistrų jau seniai išmoko padaryti taip, kad svetainės atrodytų <strong><em>beveik</em> identiškai</strong> atsidarius jas skirtingose naršyklėse. Įdėjus papildomų pastangų &#8211; vaizdas gali būti ir absoliučiai identiškas, tačiau ar tai yra galutinis tikslas ir ar jis vertas tų pastangų?</p>
<h2>Paprastas sprendimas</h2>
<p><strong>Tiems, kas susiiję su svetainių kūrimu</strong>, siūlyčiau tiesiog spjauti į šią MS diegiamą &#8220;naujovę&#8221;, spjauti į tikslų atvaizdavimą, o svetaines kurti <strong>pagal W3C standartus</strong>. Negana to &#8211; apie šią problemą turėtų aiškiai žinoti ir užsakovai, bei visi kiti ne tokie techniniai žmonės &#8211; jie privalo suvokti, kad universalaus metodo pasiekti idealiai vienodą rezultatą nėra ir artimoje ateityje nebus (nes MS to nenori). Mano nuomone, geriausia yra <strong>nenaudoti jokių browser hack&#8217;ų</strong> ir padaryti išlygas rezultate (išvaizdoje) &#8211; gera svetainė pritrauks lankytojus pati savaime, o investicijos į tos svetainės išlaikymą ir pritaikymą kiekvienai naujai naršyklės versijai bus nereikalingos.</p>
<p><strong>Tiems, kas kuria naršykles</strong> derėtų paprasčiausiai nepaisyti blogo kodo ir kurti naršyklę <strong>pagal W3C standartus</strong>. Blogas kodas yra vistiek atvaizduojamas vienokiu ar kitokiu būdu. Gera naršyklė nereikalauja browser hack&#8217;ų ir pritraukia naudotojus savaime. Šiuo metu juk turime atvirkštinį variantą, kai visi rekomenduoja naudoti Firefox, nes IE tiesiog neteisingai veikia. <strong>Jeigu Exploreris darytų tai ką privalo daryti &#8211; tinklo meistrai nepyktų</strong>, nesikeiktų ir nesiūlytų visiems naudoti kitą produktą!</p>
<h2>Ginčas be galo</h2>
<p>Kita vertus, ši diskusija &#8211; kaip ir visos temos apie web standartus &#8211; yra uždaras ratas. Bet kuriam argumentui visada galima surasti kontrargumentą. Net pasakymas &#8220;reikalingi standartai&#8221; pats savaime sukelia dilemą &#8211; juk <strong>internetas yra laisvės išraiška</strong> ir bet koks autoritetas jame tą laisvę riboja. Žmonija yra perdaug skirtinga tam, kad turėtų vieningą nuomonę, o <strong>radikalai yra reikalingi tam, kad skatinti progresą</strong> ir žemė nenustotų suktis.</p>
<p>Kita vertus, jeigu HTML+CSS standartizavimą palikti W3C, bei sukurti pvz. <dfn title="Jūs Idiotai Modeling Language">JIML</dfn>+<dfn title="Soberaną Gerti Gerai">SGG</dfn>, kurį administruotų <dfn title="Qemm for Dummies">Q4D</dfn>, bei pasiekti, kad naršyklės (tegul ir skirtingai) palaikytų juos abu &#8211; turėtume konkurenciją, progresą bei pasirinkimo laisvę. O naršyklės, kurios nepalaiko abiejų, arba palaiko juos blogai &#8211; numirtų. <a href="http://www.ipv6porn.com/">Pradėti nuo pornografijos</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.d-b.lt/2008/01/narsykline-realybe.rss2.xml</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

