<?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>Arūnas Liuiza &#187; Tinklapių kūrimas</title>
	<atom:link href="http://liuiza.lt/category/kompiuteriai-ir-internetas/tinklapiu-kurimas/feed/" rel="self" type="application/rss+xml" />
	<link>http://liuiza.lt</link>
	<description>Vizitinė kortelė internete</description>
	<lastBuildDate>Sat, 10 Dec 2011 00:03:42 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Ponai ir ponios: tiny.lt</title>
		<link>http://liuiza.lt/2009/03/11/ponai-ir-ponios-tinylt/</link>
		<comments>http://liuiza.lt/2009/03/11/ponai-ir-ponios-tinylt/#comments</comments>
		<pubDate>Wed, 11 Mar 2009 12:59:52 +0000</pubDate>
		<dc:creator>Arūnas Liuiza</dc:creator>
				<category><![CDATA[Apžvalgos]]></category>
		<category><![CDATA[Kompiuteriai ir Internetas]]></category>
		<category><![CDATA[Programinė įranga]]></category>
		<category><![CDATA[Projektai (archyvas)]]></category>
		<category><![CDATA[Tinklapių kūrimas]]></category>

		<guid isPermaLink="false">http://www.liuiza.lt/?p=117</guid>
		<description><![CDATA[Drįstu pristatyti jums savo naująjį projektą: Tiny.lt interneto nuorodų trumpininimo paslaugą. Tiems, kas jau naudojasi užsienietiškų analogų, tokių kaip TinyURL, paslaugomis aiškinti kas tai [...]]]></description>
			<content:encoded><![CDATA[<p>Drįstu pristatyti jums savo naująjį projektą: <a title="Tiny.lt" href="http://tiny.lt">Tiny.lt</a> interneto nuorodų trumpininimo paslaugą. Tiems, kas jau naudojasi užsienietiškų analogų, tokių kaip TinyURL, paslaugomis aiškinti kas tai per žvėris nėra reikalo, likusiems rekomenduoju TinyURL <a title="TinyURL @ wikipedia.org" href="http://en.wikipedia.org/wiki/TinyURL">aprašymą angliškoje Wikipedijoje</a>.</p>
<p>Trumpai tariant, Tiny.lt leidžia ilgą nuorodą:</p>
<blockquote><p><a href="http://www.balsas.lt/naujiena/242608/lietuvos-rytas-pralaimejo-ispanijoje/rubrika:naujienos-sportas-krepsinis">http://www.balsas.lt/naujiena/242608/lietuvos-rytas-pralaimejo-ispanijoje/rubrika:naujienos-sportas-krepsinis</a> </p></blockquote>
<p>sutrumpinti iki gerokai trumpesnės:</p>
<blockquote><p><a href="http://tiny.lt/k43yd8m">http://tiny.lt/k43yd8m</a></p></blockquote>
<p><span id="more-117"></span>Šiuo atveju nuoroda nuo 109 simbolių buvo sutrumpinta iki 22. Kam to reikia? Trumpomis nuorodomis lengviau operuoti, jų nesugadins automatiškai eilutes trumpinantis el. pašto klientas. Tokias nuorodas dažnai naudoja mikroblogintojai (<a title="Twitter" href="http://twitter.com">Twitter</a>, <a title="Blake.lt" href="http://blake.lt">Blake.lt</a>), nes jiems nuorodos trumpumas yra labai svarbus.</p>
<p>Be to, tokią nuorodą patogu naudoti, kai dėl vienų ar kitų priežasčių ją reikia nusirašyti ir vėl įvesti ranka &#8211; sumažėja klaidų tikimybė, be to taip patogiau ir greičiau. Šiuo atveju pavyzdys galėtų būtį žurnaluose prie straipsnių pateikiamos nuorodos.</p>
]]></content:encoded>
			<wfw:commentRss>http://liuiza.lt/2009/03/11/ponai-ir-ponios-tinylt/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Apie TVS &#124;&#124; Re: Kuriam savo TVS @ pixel.lt</title>
		<link>http://liuiza.lt/2008/03/31/apie-tvs-re-kuriam-savo-tvs-pixellt/</link>
		<comments>http://liuiza.lt/2008/03/31/apie-tvs-re-kuriam-savo-tvs-pixellt/#comments</comments>
		<pubDate>Mon, 31 Mar 2008 21:51:44 +0000</pubDate>
		<dc:creator>Arūnas Liuiza</dc:creator>
				<category><![CDATA[Diskusija]]></category>
		<category><![CDATA[Kompiuteriai ir Internetas]]></category>
		<category><![CDATA[Pamąstymai]]></category>
		<category><![CDATA[pixel.lt]]></category>
		<category><![CDATA[Tinklapių kūrimas]]></category>

		<guid isPermaLink="false">http://www.liuiza.lt/pamastymai/apie-tvs-re-kuriam-savo-tvs-pixellt_57/</guid>
		<description><![CDATA[NePo greičiausiai vėl pasiilgo peštynių. Tik šį kartą diskusiją šaukia ne savo asmeniniame bloge, o pixel.lt erdvėje. Kadangi apie TVS žinau ne tik [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.nepo.lt" title="NePo">NePo</a> greičiausiai vėl pasiilgo peštynių. Tik šį kartą diskusiją šaukia ne savo asmeniniame bloge, o <a href="http://pixel.lt/kuriam-savo-tvs.html" title="Pixel.lt" target="_blank">pixel.lt</a> erdvėje. Kadangi apie TVS žinau ne tik iš nuogirdų, pabandysiu pridėti savo tris kapeikas&#8230;</p>
<p>Per savo jau netrumpą amželį praleistą internete, teko naudoti nemažai skirtingų TVS (kas nežino &#8211; tai Turinio Valdymo Sistema, plačiau &#8211; <a href="http://en.wikipedia.org/wiki/Content_management_system" title="CMS @ en.wikipedia.org" target="_blank">čia</a>), ne vieną &#8211; diegti, o dėl vienos atsiradimo virtualiame pasaulyje esu &#8220;kaltas&#8221; asmeniškai. Pastarosios vertinti nesiimsiu &#8211; tegu tai daro mano klientai &#8211; o šiame straipsnyje pabandysiu pažvelgti į idealios TVS klausimą iš rimto vartotojo (angl. <em>power user</em>) pozicijos.<span id="more-57"></span></p>
<p>Kalbėdamas apie &#8220;rimtą vartotoją&#8221; turiu omeny ne pilietį su minimaliomis IT žiniomis, sugebantį tik prisijungti prie TVS ir, jei pasiseks, nieko nesugadinant pridėti naują įrašą, o apie nusimanantį žmogų, kuris ne tik sugeba naudotis daugeliu TVS funkcijų, bet ir jas įsidiegti bei, esant poreikiui, modifikuoti. Taigi, kokia TVS būtų ideali tokiam vartotojui? Prisiminkime, kad tai nėra &#8220;tikras programuotojas&#8221;, kuriam svarbios visos techninės smulkmenos. Šiam vartotojui svarbu lengvai ir neskausmingai atlikti visus reikalingus veiksmus.</p>
<p>Pažintis su kiekviena TVS prasideda nuo diegimo. Kokią sistemą galima paprastai ir greitai įdiegti? Drįsčiau teigti, kad ji turėtų būti parašyta PHP programavimo kalba &#8211; ją palaiko didžioji dalis talpinimo paslaugų tiekėju, o &#8220;rimtas vartotojas&#8221; greičiausiai bent šiek tiek nusimanys šioje kalboje. Smagu, kai didžioji dalis diegimo procedūrų yra automatizuota &#8211; nereikia rankiniu būdu kurti duomenų bazių ir pan. <a href="http://www.wordpress.org" title="WordPress" target="_blank">WordPress</a> kūrėjai teigia, kad jų sistemą galima įdiegti <a href="http://codex.wordpress.org/Installing_WordPress#Famous_5-Minute_Install" title="Famous 5-Minute Install @ codex.wordpress.org" target="_blank">per penkias minutes</a> &#8211; realybėje tai trunka kiek ilgiau bet iš tiesų ši diegimo sistema labai paprasta ir greita.</p>
<p>Malonu, kai išvaizdos (temų) failai laikomi atskirai ir juos nesunkiai galima redaguoti. Jei dar yra patogi priedų (angl. <em>plug-ins</em>) sistema, likusi rinkmenų struktūra tokiam žmogui visiškai nesvarbi. NePo nemėgsta kai valdymo sritis yra atskirta tuo pagrindinės sąsajos. Mano nuomonė priešinga &#8211; gerai kai valdymo sritis išlieka vienoda ir standartizuota, o pagrindinė sąsaja gali būti keičiama pagal poreikius. Kai nereikia rūpintis valdymo elementais, pagrindinę sąsają galima keisti gerokai lanksčiau.</p>
<p>Svarbi tema &#8211; daugiakalbystė. Ši funkcija nėra taip jau dažnai reikalinga, bet kai prireikia, norisi, kad ji veiktų gerai ir patogiai. Deja, kol kas gerai išspręstos šios problemos dar neteko matyti.</p>
<p>Kalbant apie funkcijas, greta įprastinių turinio valdymo savybių, jau standartu tampančių naujienų srauto (RSS ar ATOM) funkcijų, dažnai prireikia tokių priedų kaip apklausos, reklaminių skydelių modulių. Lankomumo statistika &#8211; reikalingas ir patogus dalykas, bet &#8220;rimti vartotojai&#8221; greičiausiai naudojasi tikslesnėmis ir patikimesnėms programomis, analizuojančiomis serverio &#8220;log&#8217;us&#8221;. Turbūt pati geidžiamiausia savybė būtų patogi plėtinių sistema ir platus jų pasirinkimas &#8211; tuomet &#8220;rimti vartotojai&#8221; galėtų priderinti savo sistemą prie savo poreikių.</p>
<p>Tai tų pamąstymų apie idealią TVS. O kaip galvojate Jūs?</p>
]]></content:encoded>
			<wfw:commentRss>http://liuiza.lt/2008/03/31/apie-tvs-re-kuriam-savo-tvs-pixellt/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Projektas: Eco-sim ADAM</title>
		<link>http://liuiza.lt/2007/06/11/projektas-eco-sim-adam/</link>
		<comments>http://liuiza.lt/2007/06/11/projektas-eco-sim-adam/#comments</comments>
		<pubDate>Mon, 11 Jun 2007 17:44:50 +0000</pubDate>
		<dc:creator>Arūnas Liuiza</dc:creator>
				<category><![CDATA[Kompiuteriai ir Internetas]]></category>
		<category><![CDATA[Projektai (archyvas)]]></category>
		<category><![CDATA[Tinklapių kūrimas]]></category>

		<guid isPermaLink="false">http://www.liuiza.com/new/?p=26</guid>
		<description><![CDATA[Vakar vėlai vakare baigėsi registracija į INDAGO žaidimų kūrėjų konkursą. Per paskutinę parą dalyvaujančių komandų padaugėjo nuo 20 iki 26.  Tarp paskutiniųjų, spėjusių [...]]]></description>
			<content:encoded><![CDATA[<p>Vakar vėlai vakare <a href="http://www.games.lt/g/news.full/8480" title="games.lt" target="_blank">baigėsi</a> registracija į INDAGO žaidimų kūrėjų konkursą. Per paskutinę parą dalyvaujančių komandų padaugėjo nuo 20 iki 26.  Tarp paskutiniųjų, spėjusių į traukinį buvo ir tokių garsių vardų kaip <a href="http://www.games.lt/g/game.apie/3020" title="Aras!" target="_blank">Aras Pranskevičius</a> iš Nesnausk! Tiesa, gamdev.lt <a href="http://forums.gamedev.lt/viewtopic.php?p=12215#12215" title="forums.gamedev.lt" target="_blank">forume</a> Aras išdavė paslaptį, kad žaidimo planuoja nebaigti :) taip kad šansų dar liko ir kitiems :) Visą projektų sąrašą galite rasti <a href="http://www.games.lt/g/pc.zanras/9" title="INDAGO dalyvių sąrašas" target="_blank">čia</a>, aš tuo tarpu tik pasakysiu, kad mano ausys kyšo iš dviejų projektų: <a href="http://www.games.lt/g/game.apie/2991" target="_blank">A Taste Of Blood</a>, kur mano vaidmuo bus daugiau epizodinis, ir mano asmeninis projektas &#8211; <a href="http://www.games.lt/g/game.apie/2973" title="Eco-sim ADAM @ Games.lt" target="_blank">Eco-sim ADAM</a>, kuriam ir skirtas ši blog&#8217;o tema. Taigi:<span id="more-26"></span>Ponios ir ponai, prašau susipažinti su <strong>Eco-Sim ADAM</strong>, pirmuoju mano projektu, apie kurį bus kalbama šiame blog&#8217;e. Na, tiksliau paskaityti projekto aprašymą,  nes kol kas jokia žaidimo versija viešai dar nėra prieinama. Kai tik bus, pažadu kad jūs sužinosite pirmieji. Tiesa, greitu laiku man reikės gan nemažo būrio žmonių <em>alfa</em> versijos testavimui, tad jei esate pasiryžę dėl kilnaus tikslo paaukoti vieną kitą pusdienį savo brangaus laiko, parašykit man adresu <a href="mailto:arunas%20%5Beta%5D%20liuiza%20%5Btaskas%5D%20com">arunas [eta] liuiza [taskas] com</a> arba susisiekite per <a href="idea_g?chat">skype</a>.</p>
<p>Šis tas apie patį žaidimą. Kadangi esu prisiekęs ekonominių simuliacijų, tokių kaip VEMP, Bankų konkurencija, Capitalism, <a href="http://www.perfectcompetition.net" title="PerfectCompetition" target="_blank">perfectcompetition.net</a> gerbėjas, natūralu, kad mano kuriamas žaidimas taip pat priklauso šiam žanrui. Tai bus daugelio žaidėjų interaktyvus žaidimas (angl. <em>massive multiplayer online</em>), kuriame žaidėjas pateks į aukščiausio lygio verslo vadovų, savininkų ir investuotojų pasaulį. Pradėdamas gyvenima šiame žaidime žaidėjas gaus tam tikrą sumą pinigų, kuriuos galės panaudoti savo nuožiūra &#8211; įkurti nuosavą verslą, investuoti į kitų įmonių akcijas. Kiekviena įmonė turi savo vadovą (CEO), kurį balsavimu išrenka įmonės akcininkai.</p>
<p>Gyvenimas Eco-sim ADAM pasaulyje yra suskirstytas į sąlyginius laiko tarpus &#8211; periodus. Kiekvienas periodas teoriškai atitinka 3 mėnesius realaus laiko. Kiekvienam periodui įmonės vadovas turi priimti 6 sprendimus apie įmonės veiklą: nustatyti produkcijos pardavimo kainą, gamybos apimtis, išlaidas rinkodarai, tyrimams bei rinkos vystymui. Įmonės akcininkai gali duoti vadovui tam tikrus patarimus, tačiau galutinį sprendimą priima vadovas. Pasibaigus periodui atsižvelgiant į įmonės ir konkurentų sprendimus apskaičiuojami įmonės veiklos rezultatai ir vadovui bei akcininkams pateikiama ataskaita, kuria remdamiesi jie gali priimti tolimesnius sprendimus. Sprendimų priėmimą taip pat gali įtakoti visiems prieinama bendra rinkos ataskaita, kur nurodomi bendrieji rinkos rodikliai, taip pat, pagrindiniai konkurentų rezultatai. Žaidimo tikslas &#8211; tapti &#8220;kalno karaliumi&#8221;, virtualiu Bilu Geitsu &#8211; turtingiausiu ir įtakingiausiu žmogumi visame pasaulyje.</p>
<p>Toks būtų trumpas žaidimo pristatymas, daugiau detalių pateiksiu vėliau. Tiesą pasakius, dar ne viską iki galo esu apgalvojęs :) Be to, INDAGO konkursas reikalauja, kad šitame bloge kas savaitę atsirastų bent vienas įrašas, taigi šiek tiek medžiagos pataupysiu ateičiai, jei kokia savaitė bus labai &#8216;slow&#8217; ir nebus ką daugiau rašyti ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://liuiza.lt/2007/06/11/projektas-eco-sim-adam/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mano pirmas AJAX scenarijus</title>
		<link>http://liuiza.lt/2007/06/01/mano-pirmas-ajax-scenarijus/</link>
		<comments>http://liuiza.lt/2007/06/01/mano-pirmas-ajax-scenarijus/#comments</comments>
		<pubDate>Fri, 01 Jun 2007 12:25:17 +0000</pubDate>
		<dc:creator>Arūnas Liuiza</dc:creator>
				<category><![CDATA[Kompiuteriai ir Internetas]]></category>
		<category><![CDATA[pixel.lt]]></category>
		<category><![CDATA[Straipsniai]]></category>
		<category><![CDATA[Tinklapių kūrimas]]></category>

		<guid isPermaLink="false">http://www.liuiza.com/new/?p=19</guid>
		<description><![CDATA[Straipsnis pirmą kartą publikuotas pixel.lt 2006 metų liepos 7 dieną. Kai pirmą sykį išgirdau apie Ajax, tai atrodė kažkas keisto, egzotiško ir, ko [...]]]></description>
			<content:encoded><![CDATA[<p>Straipsnis pirmą kartą publikuotas <a href="http://pixel.lt/mano-pirmas-ajax-scenarijus.html" title="Pixel.lt" target="_blank">pixel.lt</a> 2006 metų liepos 7 dieną.</p>
<p>Kai pirmą sykį išgirdau apie Ajax, tai atrodė kažkas keisto, egzotiško ir, ko gero, labai sudėtingo. Sudėtingos šiai technologijai sukurtos bibliotekos šį įspūdį tik sustiprino, tačiau kai pradėjau gilintis ir domėtis, paaiškėjo, kad taip tikrai nėra. Man labai patiko <a href="http://rajshekhar.net/blog/archives/85-Rasmus-30-second-AJAX-Tutorial.html">Rasmus’ 30 second Ajax Tutorial</a>, kuriuo ir remsiuosi šiame straipsnelyje. Kas mane pažįsta, žino, kad stengiuosi vadovautis šūkiu <em>keep it simple</em> &#8211; į viską žiūrėti kuo paprasčiau. Taigi čia pabandysiu pateikti paprastą požiūrį į Ajax. Čia mes nekalbėsim apie Ajax bibliotekas, tokias kaip SAJAX, XAJAX ir pan. Kalbėsime apie keletą JavaScript’o eilučių, kurios sudaro pačią technologijos esmę.<span id="more-19"></span></p>
<p>Kaip rašo <a href="http://en.wikipedia.org/wiki/Ajax_%28programming%29">vikipedija</a>, Ajax (Asynchronous Javascript and XML) technologija naudoja šių technologijų kombinaciją:</p>
<ul>
<li><strong>XHTML </strong>(ar HTML) ir <strong>CSS</strong> informacijos pateikimui.</li>
<li>Dokumento Objektinį Modelį (<strong>DOM</strong>) bei <strong>JavaScript</strong> kalbą dinamiškam vaizdavimui bei interaktyvumui</li>
<li><strong>XMLHttpRequest</strong> objektą asinchroniniam duomenų apsikeitimui su serveriu.</li>
<li><strong>XML</strong> dažnai naudojamas kaip duomenų mainų tarp serverio ir kliento formatas, bet čia viskas priklauso nuo programuotojo pasirinkimo &#8211; galima naudoti ir paprastą tekstą, ir HTML, ir bet kurį kitą formatą.</li>
</ul>
<p>Ko gero ir šis paaiškinimas gali nuskambėti komplikuotai, todėl nedelsdamas parodysiu paprastutį pavyzdį, kaip viskas veikia praktikoje. Pirmiausiai JavaScript’as:</p>
<pre>function createRequestObject() {
  var ro;
  var browser = navigator.appName;
  if (browser == “Microsoft Internet Explorer”) {
    ro = new ActiveXObject(“Microsoft.XMLHTTP”);
  } else {
    ro = new XMLHttpRequest();
  }
  return ro;
}
var http = createRequestObject();function sndReq(action) {
  http.open(‘get’, ‘rpc.php?action=’+action);
  http.onreadystatechange = handleResponse;
  http.send(null);
}

function handleResponse() {
  if (http.readyState == 4) {
    var response = http.responseText;
    var update = new Array();

    if (response.indexOf(‘|’ != -1)) {
      update = response.split(‘|’);
      document.getElementById(update[0]).innerHTML = update[1];
    }
  }
}</pre>
<p>Pirmoji funkcija sukuria užklausimo objektą, antroji skirta užklausos siuntimui į serverį, o trečioji interpretuoja iš serverio gautus duomenis.<br />
Norint paleisti šią Ajax mini ‘biblioteką’ į darbą tereikia tiesiog įterpti šį kodo gabaliuką į html dokumentą ir onclick atribute ar tiesiog nuorodoje kreiptis į sndReq() funkciją. Pavyzdžiui štai taip:</p>
<pre>
  <a href="“sndReq(’alio’)”">[valio]</a></pre>
<p>Tokia nuoroda reiškia, kad kai kas nors paspaus šią nuorodą, neperkraunant puslapio į serverį bus nusiūsta tokia užklausa: <em>rpc.php?action=alio</em><br />
Dabar tereikia sukurti tokį rpc.php, kuris priimtų ir suprastų tokią užklausą, bei gražintų kažkokią informaciją. Pavyzdys galėtų būti štai toks:</p>
<pre>
switch($_GET[‘action’]) {
        case ‘alio’:
                / darom kažką rimto /
                echo “alio|alio tekstas”;
                break;
}
?&gt;</pre>
<p>Tai labai paprastas pavyzdėlis &#8211; iš tiesų rpc.php gali atlikti aibę užklausų į duomenų bazę, matematinių skaičiavimų ir gražinti rezultatą, atsižvelgdama į pateiktą užklausą &#8211; viskas priklauso nuo programuotojo poreikių.<br />
Grąžintą atsakymą interpretuoja handleResponse() funkcija. Šiuo atveju pasirinktas paprastas vertikaliu brūkšniu sustaidyto teksto formatas, tačiau lygiai taip pat tai galėjo būti XML, HTML ar dar kažkas… Ši konkreti funkcija atpažįsta suskaidyto teksto dalis ir pirmąją interpretuoja kaip html elemento id, o antrąją &#8211; kaip to elemento vidinį HTML turinį. pavyzdžiui jei turime tokį kodą:</p>
<pre>

&nbsp;
</pre>
<p>tai įvykdžius pavydzinę užklausą šis kodas pasikeistu štai taip:</p>
<pre>

alio tekstas
</pre>
<p>ir visa tai vyksta dinamiškai, neperkraunant viso puslapio.</p>
<p>Štai ir visas pagrindas. Visa kita yra tiesiog piramidės statymas ant šių pamatų &#8211; užklausos gali būti žymiai sudėtingesnės, jų apdorojimas, rezultatų pateikimas &#8211; visą tai riboja tik programuotojo fantazija. Bet pagrindą sudaro štai šios kelios eilutės. Todėl prieš aklai naudojant didžiules Ajax bibliotekas labai rekomenduoju pagalvoti &#8211; galbūt jums reikia tiesiog keleto paprastų funkcijų? Ajax iš tiesų yra labai naudingas ir galingas įrankis &#8211; padeda sutaupyti duomenų srautą, paspartinti internetinių sistemų veikimą. <em>Bet</em>, kaip ir visos kitos technologijos, tai nėra panacėja, tinkanti visiems gyvenimo atvejams. Ajax turi daug privalumų, bet jai nesvetimi ir trūkumai &#8211; pavyzdžiui, Ajax paremtos sistemos labai nesvetingos paieškos variklių atžvilgiu, nėra galimybės duoti kolegai nuorodą į tiksliai reikalingą vietą ir pan. Per dažnas Ajax vartojimas gali privesti prie anekdotinių situacijų: vienas žmogeliukas omnitel.php naujienų grupėje klausė, kaip su Ajax pakeisti visą dokumento <em>body</em>. Niekaip nesuprantu kam šiuo atveju reikia naudoti Ajax, jei galima tiesiog perkrauti puslapį &#8211; rezultatas bus tas pats. Taigi, tiesiog draugiškas perspėjimas &#8211; jauskite saiką <img src="http://pixel.lt/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" /></p>
]]></content:encoded>
			<wfw:commentRss>http://liuiza.lt/2007/06/01/mano-pirmas-ajax-scenarijus/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Už švarų kodą&#8230; ir patogius tinklapius</title>
		<link>http://liuiza.lt/2007/05/18/uz-svaru-koda-ir-patogius-tinklapius/</link>
		<comments>http://liuiza.lt/2007/05/18/uz-svaru-koda-ir-patogius-tinklapius/#comments</comments>
		<pubDate>Thu, 17 May 2007 23:09:58 +0000</pubDate>
		<dc:creator>Arūnas Liuiza</dc:creator>
				<category><![CDATA[Kompiuteriai ir Internetas]]></category>
		<category><![CDATA[pixel.lt]]></category>
		<category><![CDATA[Straipsniai]]></category>
		<category><![CDATA[Tinklapių kūrimas]]></category>

		<guid isPermaLink="false">http://www.liuiza.com/new/?p=18</guid>
		<description><![CDATA[Straipsnelis pirmą kartą publikuotas pixel.lt 2oo6 metų rugpjūčio 1 d. Kaip tinklapių kūrėjas, negalėjau neperskaityti asterisk straipsnio Už gražų kodą. Deja, gažus kodas [...]]]></description>
			<content:encoded><![CDATA[<p>Straipsnelis pirmą kartą publikuotas <a href="http://pixel.lt/uz-svaru-koda-ir-patogius-tinklalapius.html" target="_blank">pixel.lt</a> 2oo6 metų rugpjūčio 1 d.</p>
<p>Kaip tinklapių kūrėjas, negalėjau neperskaityti asterisk straipsnio <a href="http://pixel.lt/uz-grazu-koda.html">Už gražų kodą</a>. Deja, gažus kodas &#8211; toli gražu dar ne viskas, kaip kažkas pastebėjo komentaruose. Kaip pavyzdėlį paimkime tinklalapį su ‘gražiu kodu’ &#8211; <a href="http://www.zipfm.lt/">ZipFM</a>. Kodą validatorius sukramto be problemų, tačiau jų nemažai kyla vos pabandžius atidaryti tinklapį. Laukiau lygiai 5 minutes, bet tas grožis man iki galo taip ir neatsidarė. Nežinau, gal čia kaltas Tako (atsiprašau, dabar jau ‘Zebra’) bazinis internetas, dienos metu tikrai nepasižymintis dideliu greičiu, bet kažkodėl esu tikras, kad tikrai nedaugelis interneto vartotojų Lietuvoje turi didelės spartos interneto linijas (geek’ai nesiskaito <img src="http://pixel.lt/wp-includes/images/smilies/icon_smile.gif" alt=":)" class="wp-smiley" />  ).<span id="more-18"></span></p>
<p>Bet tiek to, pirmiausia pasižiūrėkime, koks gi tas kodas, kurį validatorius pripažino be priekaištų. Nieko nuostabaus &#8211; tik 21 eilutė, iš kurių 14 sudaro <em>head</em> blokas. Štai šis kodas:</p>
<p><a href="http://paste.lt/paste/bddbee7308d43ffdb0d46e8c664e6561" target="_blank" title="Pixel PasteBin">http://paste.lt/paste/bddbee7308d43ffdb0d46e8c664e6561</a></p>
<p>Ką gi mes čia turim? O gi seną pažįstamą &#8211; frames. Tai jau galime vadinti pirmąja rimta problema, net nepažvelgus į patį puslapio vaizdą. Kodėl? <a href="http://www.apptools.com/rants/framesevil.php">Šiame straipsnyje</a> pateikiama dešimt bene didžiausių frames keliamų accessibility (nerandu lietuviško atitikmens, bet toliau vadinsiu tai <em>‘patogumu’</em>) problemų. Pradedant nuo to, kad Back, Refresh, PageUp ir PageDown mygtukai dažnai veikia ne taip kaip tikimasi ir baigiant prastais santykiais su paieškos varikliais.<br />
Ir tai tik pradžia…<br />
Antra rimta patogumo problema &#8211; griozdiškas flash puslapio viršuje. Ką ten viršuje &#8211; jis užima didesnę pusę naršyklės lango mano 1024×768 raiškos vaizduoklyje. Padidinus raišką santykis kiek pagerėja, bet paaiškėja, kad tinklapis vis tik kurtas 1024×768 raiškai, nes ją padidinus dešinėje lieka didelis baltas plotas. Tai verčia susimąstyti. Ir dėl to, kad šitas griozdas užsikrautų, aš laukiau 5 minutes. Ne dėkui, juo labiau kad vienintelės to daikto atliekamos funkcijos &#8211; elementarus meniu.<br />
Žvilgtelėkime į kodą, kuriuo šis flash įterpiamas:<br />
<a href="http://paste.lt/paste/cabf1a10a055b4dac1e771f608b91f99" target="_blank" title="Pixel PasteBin">http://paste.lt/paste/cabf1a10a055b4dac1e771f608b91f99</a></p>
<p>Validatorius pasimetęs, nes nedeklaruotas doctype. Kai rankutėm nurodau, kad doctype yra HTML 4.01 Transitional, klaidų neranda. Šaunu, bet jei į 17 eilučių kodo dar būtų privelta klaidų, būtų jau visai prastai. Tiesa, dėl įdomumo dar patikrinau su XHTML 1.00 Strict &#8211; 53 klaidos, dauguma susiję su tuo, kad HTML žymos parašytos didžiosiomis raidėmis. Ką galima pasakyti apie kodą? Beveik nieko &#8211; flash įterpiamas naudojant javascript’a, taip pat čia pridėtas Google Analytics kodas &#8211; kiek keista, kad pačiame puslapio viršuje &#8211; aš stengiuosi dėti jį į galą, kad dirbdamas savo darbą netrukdytų vartotojams naudotis tinklapiu &#8211; dabar tenka laukti, kol skaitliukas nusiųs informaciją, o tai kartais užtrunka.<br />
Dabar klaikioji dalis &#8211; pagrindinio rėmelio freimas. Pasižiūrėkite <a href="http://paste.lt/paste/20eb342244129a395c020dfdec9be2fb" target="_blank">čia</a>. Pirmiausia apie validatorių &#8211; 96 klaidos su HTML 4.01 Transitional, kurį nurodo patys kūrėjai (apie 562 klaidas tikrinant su XHTML 1.0 Strict nekalbėsim &#8211; tikrinau tik dėl smalsumo). Bet klaidų kiekis dar ne viskas, kaip minėjo kolega, <em>aklai</em> vaikytis validumo yra kvaila, nors naudojamas doctype šiaip leidžia labai daug. Panagrinėkime klaidas atidžiau. Pirmoji kyla dėl ne visai tvarkingai įterpto javascript’o. Aš asmeniškai laikausi pozicijos, kad javascript’us verta laikyti atskiruose failuose &#8211; tuomet ir dėl validatoriaus netenka galvos sukti, ir galima skriptą panaudoti keliuose puslapiuose nekopijuojant viso kodo, ir taisymas palengvėja. Bet jei jau nusprendėte dėti skriptą tiesiai į kodą &#8211; apgaubkite jį html komentaro ženklais ir nekils validumo problemų. Štai taip:<br />
<a href="http://paste.lt/paste/ba1dda67052e37a33e15a13890cddd47" target="_blank" title="Pixel PasteBin">http://paste.lt/paste/ba1dda67052e37a33e15a13890cddd47</a></p>
<p>Taigi, žvelgiame toliau, ir matome table-based layout’ą. Man jau darosi gaila žmogaus, kuriam teks šį kodą taisyti. Naudojamas neegzistuojantis lentelės <em>height</em> atributas, toliau visa šūsnis praleistų paveikslėlio <em>alt</em> atributų. Nesuprantu, negi taip sunku prirašyti ten porą žodžių? Tai pagerintų puslapio informatyvumą žmonėms, naudojantiems screenreaderius ir panašią techniką. Vėliau vėl seka problemos dėl javascript (netgi pamirštama naršyklei nurodyti, kad tai &#8211; javascript’as). Daugybė pamirštų kabučių, sumaišyta tag’ų tvarka ir taip toliau… Kodui labai toli iki švaraus ar gražaus, o apimtis irgi didoka &#8211; 18,81 KB. Nelabai supratau, kam ten iš viso įtrauktas css failas, nes, kaip labai būdinga table based layout’ams, kodas mirga marga nuo <em>font</em> tagų ir pačiuose elementuose aprašomų stilių. Pabandykit jūs dabar pakeisti tarkim žodžių Zip FM salotinę spalvą į oranžinę. Visame puslapyje. Tai tikrai užtruktų, ir ko gero ne vieną valandą…<br />
Apibendrindamas galiu pasakyti tik tiek &#8211; šis puslapis &#8211; puikus pavyzdys iš serijos “kaip nereikėtų daryti”. O MediaPro &#8211; gal ir geri dizaineriai, bet kalbant apie tinklapius, jų darbo technika ir kokybė atsilieka geru penkmečiu.<br />
Pabaigai &#8211; keletas mano patarimų:</p>
<ol>
<li><strong>Jokių <em>frames</em></strong> &#8211; tiek patogumo, tiek SEO požiūriu tai labai prastas pasirinkimas</li>
<li><strong>Lentelės</strong> skirtos <em>lentelinių duomenų</em> atvaizdavimui, o ne tinklapio <em>sturktūrai</em>.</li>
<li>Pamirškite <em>font</em> tagą &#8211; tam yra css</li>
<li><em>style=”&#8221;</em> taip pat patartina vengti &#8211; <strong>turinį reikia atskirti nuo išvaizdos aprašymų</strong>, todėl visi stiliai turėtų būti aprašyti atskirame css faile.</li>
<li><em>Javascript’us</em> irgi geriausia laikyti atskirame faile, o jei tai neįmanoma, reikia pridengti juos HTML komentarų žymėmis. Nepamirškite naršyklei nurodyti skripto tipo.</li>
<li>Dideli <em>flash</em> intarpai yra blogis.</li>
<li><em>Aklai</em> laikytis validumo nėra reikalo, bet standartai buvo sukurti ne be reikalo, todėl protingai jų prisilaikant, galima sutaupyti nemažai laiko, ypač jei kodą reikia taisyti praėjus ilgesniam laikui.</li>
<li>Ir svarbiausias patarimas &#8211; tinklalapis kuriamas ne meno parodai, ne validatoriui ir ne paieškos varikliui (na, čia būna ir išimčių), o žmogui &#8211; vartotojui, todėl patogumas turėtų būti svarbiau už neeilinį dizaino sprendimą ir įspūdingą vaizdą.</li>
</ol>
]]></content:encoded>
			<wfw:commentRss>http://liuiza.lt/2007/05/18/uz-svaru-koda-ir-patogius-tinklapius/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

