<?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; IT</title>
	<atom:link href="http://www.d-b.lt/category/it.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>Wed, 08 Sep 2010 00:02:47 +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>Apie prioritetus ir kodo grožį</title>
		<link>http://www.d-b.lt/2010/09/apie-prioritetus-ir-kodo-grozi.html</link>
		<comments>http://www.d-b.lt/2010/09/apie-prioritetus-ir-kodo-grozi.html#comments</comments>
		<pubDate>Tue, 07 Sep 2010 23:20:07 +0000</pubDate>
		<dc:creator>Dominykas</dc:creator>
				<category><![CDATA[Tinklo kūrimas]]></category>
		<category><![CDATA[geekiška filosofija]]></category>

		<guid isPermaLink="false">http://www.d-b.lt/?p=280</guid>
		<description><![CDATA[Sėdėdamas ir žiūrėdamas eilinę prezentaciją apie Javascript ir accessibility YDN teatre prisiminiau mintį: programuotojai nemėgsta usability, nes reikia rašyti daug if&#8216;ų. Užsimąsčiau apie tai, kad programuotojo darbas susideda iš labai daug balansavimo.
Taigi, tam, kad sukurti pakankamai patogų interfeisą, reikia rašyti daug kodo eilučių. Tai natūraliai turi įtakos veikimo greičiui. Tam, kad sistema veiktų greitai, kartais [...]]]></description>
			<content:encoded><![CDATA[<p>Sėdėdamas ir žiūrėdamas eilinę prezentaciją apie Javascript ir <i>accessibility</i> <a href="http://developer.yahoo.net/blogs/theater/">YDN teatre</a> prisiminiau mintį: <em><a href="http://www.sadauskas.lt/index.php/2007/04/09/usability-ir-programuotojai/">programuotojai nemėgsta <i>usability</i>, nes reikia rašyti daug <i>if</i>&#8216;ų</a></em>. Užsimąsčiau apie tai, kad programuotojo darbas susideda iš labai daug balansavimo.</p>
<p>Taigi, tam, kad sukurti pakankamai patogų interfeisą, reikia rašyti daug kodo eilučių. Tai natūraliai turi įtakos veikimo greičiui. Tam, kad sistema veiktų greitai, kartais tenka aukoti funkcionalumą, o kartais tenka rašyti visiškai nesuprantamą galvosūkį keistų simbolių, kurių net patyrę programuotojai nesupranta. Tam, kad kodas būtų lengvai skaitomas ir nekeltų daug problemų, kai reikia jį tvarkyti, tenka aukoti kitus dalykus, pvz. tą patį <i>accessibility</i>. Kad padaryti kažką arčiau tobulumo, tenka sugaišti begalybę laiko ir pinigų, ir tada atsiranda problema su tais, kas užsakinėja muziką.</p>
<p>Žiūrint prezentacijas, įvairūs specialistai vis kartoja savo srities mantras &#8211; &#8220;daryk taip ar anaip, ir sutaupyk trečdalį sekundės siuntimo laiko&#8221;, &#8220;<i>agile</i> procesas sako, kad nereikia per daug laiko skirti planavimui&#8221;, &#8220;<i>user centered</i> procesas sako, kad reikia skirti pakankamai laiko vartotojų tyrimams ir pasiruošimui&#8221;. Dar anądien ir pats norėjau parašyti blog&#8217;ą apie tai, kaip paprasta naudojant naujus HTML5 atributus ir elementarias &#8220;geriausias praktikas&#8221; suprogramuoti patvirtinimo dialogą, kuris veikia visose situacijose, įdedant &#8220;vos keletą eilučių daugiau&#8221; kodo (gal ir parašysiu kada kai bus gera nuotaika).</p>
<p>Atmetus seną gerą taisyklę, kad iš &#8220;gerai&#8221;, &#8220;pigiai&#8221; ir &#8220;greitai&#8221; galima pasirinkti tik du, aš savo kasdieniame darbe, kodą rašau remdamasis maždaug tokiais principais:</p>
<ol start="0">
<li><strong>Kodo grožis</strong> &#8211; žr. paskutinį punktą šiame sąraše.</li>
<li><strong>Produkto patogumas</strong> &#8211; aš linkęs paaukoti labai daug kitų dalykų tam, kad galutinis rezultatas patenkintų galutinį vartotoją &#8211; ar tai būtų klientas, ar kitas programuotojas naudojantis mano <abbr title="Application Programming Interface">API</abbr>.</li>
<li><strong>Minimalizmas</strong> &#8211; jeigu kažko galima nedaryti &#8211; aš padarysiu viską, kad to nedaryti. Šitas principas iš esmės paaiškina du žemiau esančius punktus. Papildoma taisyklė &#8211; <strong>blogas programuotojas tas, kuris nėra tinginys</strong>.</li>
<li><strong>Palaikymo kaina</strong> &#8211; iš esmės susiveda į tai, kad reikia rašyti mažiau kodo ir reikia jį organizuoti kuo mažesniais, suprantamais gabaliukais. Visa tai galutiniam rezultate reiškia a) mažiau šansų vabaliukams b) lengviau suvokti. Be abejo, sutrauktas ir minimalizuotas kodas nereiškia, kad jis yra lengviau suprantamas ar palaikomas (čia ypač tinka kalbant apie tokius dalykus kaip visa Perl kalba, regex arba LINQ) &#8211; šis principas yra iš esmės narciziškas ir remiasi į tai, kad atėjęs kitas žmogus nesugadins veikiančio dalyko.</li>
<li><strong>Sukūrimo kaina / produktyvumas</strong> &#8211; šis punktas yra skiriamoji linija &#8211; dėl visko, kas yra aukščiau jo, aš linkęs aukotis ir sėdėti viršvalandžius. O kalbant apie tai, kas yra žemiau jo, tai tikėtinas variantas yra, kad aš paliksiu <code>@todo</code> žymeles.</li>
<li><strong>Standartai, <i>best practices</i> ir &#8220;teisingumas&#8221;</strong> &#8211; šis principas anksčiau būdavo gerokai aukščiau šiame sąraše &#8211; turbūt dėl to dabar dėl tokių dalykų nebereikia jaudintis, nes jie ateina natūraliai. Tiesiog, įvertindamas kitus faktorius mieliau pasirinksiu paprastumą vietoj devynaukščio objektinio dizaino <i>pattern</i>&#8216;o. &#8220;Teisingumas&#8221; šiuo požiūriu reiškia puritoniškumą ir naivų idealo siekimą, o ne tiesiog &#8220;veikiantį kodą&#8221;.</li>
<li><strong><i>Accessibility</i></strong> &#8211; iš dalies čia truputį gėda. Iš kitos pusės, lygiai kaip ir su standartais ir &#8220;teisingumu&#8221; &#8211; tiesiog esu įpratęs padaryti tam tikrą kiekį šito darbo automatiškai ir nesistengdamas, o daugiau papildomų pastangų tam nededu, nes jos daugiau kainuoja, negu duoda naudos.</li>
<li><strong>Plečiamumas</strong> &#8211; praktiškai niekada nededu papildomų pastangų vien tam, kad patenkinti vidinį spirgėjimą &#8220;o jeigu netyčia prireiktų padaryti XYZ&#8221; &#8211; net jeigu ateityje nepavyksta padaryti chirurgiškai tikslaus, vienos kodo eilutės dydžio, įpjovimo tam, kad sukurti papildomų funkcijų, susumavus vistiek išeina tiesiog pigiau <i>refactorinti</i> ar net perrašyti.</li>
<li><strong>Veikimo greitis</strong> &#8211; čia nekalbu apie varotojo suvokimą/įsivaizdavimą apie interfeisą &#8211; daugiau apie realius CPU/atminties resursus. Manau, kad geriausia yra žinoti tobulintinus dalykus, tačiau pasitenkinti tiesiog &#8220;gerais programavimo įpročiais&#8221; tol, kol nereikia to tvarkyti. O kai prisireikia tvarkyti &#8211; visų pirma gerai pamatuoti!</li>
<li><strong>Kodo grožis</strong> &#8211; paminėjau šitą dalyką pirmu numeriu, tačiau labai retai darau taip, kad kodas atrodytų &#8220;gražus&#8221;. Grožis yra subjektyvus, o <strong>patenkinus visus aukščiau esančius reikalavimus, kodas pats savaime atrodo gražus</strong>.</li>
</ol>
<p>Dabar kai jau surašiau <del>juodu ant balto</del> klaviatūra į ekraną, viskas atrodo taip akivaizdu&#8230; Ką praleidau? Kokia jūsų prioritetų tvarka?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.d-b.lt/2010/09/apie-prioritetus-ir-kodo-grozi.rss2.xml</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Naudoti svetimus JS failus yra nemandagu ir nesaugu</title>
		<link>http://www.d-b.lt/2010/03/naudoti-svetimus-js-failus-yra-nemandagu-ir-nesaugu.html</link>
		<comments>http://www.d-b.lt/2010/03/naudoti-svetimus-js-failus-yra-nemandagu-ir-nesaugu.html#comments</comments>
		<pubDate>Fri, 26 Mar 2010 01:19:59 +0000</pubDate>
		<dc:creator>Dominykas</dc:creator>
				<category><![CDATA[Tinklo kūrimas]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[saugumas]]></category>

		<guid isPermaLink="false">http://www.d-b.lt/?p=276</guid>
		<description><![CDATA[Vos prieš porą mėnesių garsiai nuskambėjo Ajaxian, kai paėmė ir įdėjo besisukančios Coca Cola skardinės pavyzdį į iframe tiesiogiai iš autoriaus svetainės. Gana panašus atvejis buvo ir su Douglas Crockford JSON2 biblioteka bent keletoje didokų svetainių (žr. pirmą šaltinio eilutę).
Moralas toks &#8211; jeigu įtrauki į savo kodą failus tiesiogiai iš kitų žmonių serverių, ypač jeigu [...]]]></description>
			<content:encoded><![CDATA[<p>Vos prieš porą mėnesių garsiai nuskambėjo <a href="http://ajaxian.com/">Ajaxian</a>, kai paėmė ir įdėjo <a href="http://www.techkumar.com/showcase/rolling-coke-pure-css-code/">besisukančios Coca Cola skardinės</a> pavyzdį į <code>iframe</code> tiesiogiai iš <a href="http://www.romancortes.com/blog/pure-css-coke-can/">autoriaus svetainės</a>. Gana panašus atvejis buvo ir su Douglas Crockford <a href="http://www.json.org/js.html">JSON2 biblioteka</a> bent keletoje didokų svetainių (žr. pirmą <a href="http://www.json.org/json2.js">šaltinio</a> eilutę).</p>
<p>Moralas toks &#8211; jeigu įtrauki į savo kodą failus tiesiogiai iš kitų žmonių serverių, ypač jeigu jų nepažįsti ir nepaklausi jų sutikimo, viskas gali baigtis blogai. Štai pvz. mano blog&#8217;as naudoja html5.js &#8211; aš galėčiai ramiai pakeisti jį taip, kad jis vogtų jūsų svetainės lankytojų slaptažodžius ir siųstų man. Bet aš neesu blogietis ir to nedarysiu.</p>
<p>Jeigu kam nors reikia įsijungti HTML5 Internet Exploreryje &#8211; galima gi paimti ir parsisiųsti tą JS ir pasidėti savo svetainėje. Bet jeigu jau taip gaila srauto &#8211; <a href="http://remysharp.com/2009/01/07/html5-enabling-script/">Remy Sharp leidžia</a> tiesiogiai naudoti jo sukurtą <a href="http://html5shiv.googlecode.com/svn/trunk/html5.js">versiją iš Google Code SVN</a>.</p>
<p>Man iš tikro negaila, bet pagunda bent pajuokauti yra&#8230; Tu žinai kas tu esi. Ar ne?</p>
]]></content:encoded>
			<wfw:commentRss>http://www.d-b.lt/2010/03/naudoti-svetimus-js-failus-yra-nemandagu-ir-nesaugu.rss2.xml</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Kam reikalingos &#8220;rašytinės&#8221; raidės?</title>
		<link>http://www.d-b.lt/2010/01/kam-reikalingos-rasytines-raides.html</link>
		<comments>http://www.d-b.lt/2010/01/kam-reikalingos-rasytines-raides.html#comments</comments>
		<pubDate>Sun, 31 Jan 2010 19:00:55 +0000</pubDate>
		<dc:creator>Dominykas</dc:creator>
				<category><![CDATA[Filosofija]]></category>
		<category><![CDATA[futurizmas]]></category>
		<category><![CDATA[raštas]]></category>
		<category><![CDATA[švietimas]]></category>

		<guid isPermaLink="false">http://www.d-b.lt/?p=264</guid>
		<description><![CDATA[Dienos klausimas &#8211; vis tik, kodėl pirmoje klasėje vaikai mokomi tokio beverčio įgūdžio kaip dailyraštis? Šią tingią sekmadienio popietę praleidau klaidžiodamas internetų gūdybėse, kol užkliuvau už šio &#8220;Ar žinote, kad&#8230;&#8221; video klipuko. Vienas iš faktų jame &#8211; geidžiamiausios darbo vietos prieš dešimtmetį tiesiog dar nebuvo išrastos. Tokiu greičiu judančiame pasaulyje, kai tai, ką išmoksti universitete [...]]]></description>
			<content:encoded><![CDATA[<p>Dienos klausimas &#8211; vis tik, kodėl pirmoje klasėje vaikai mokomi tokio beverčio įgūdžio kaip dailyraštis? Šią tingią sekmadienio popietę praleidau klaidžiodamas internetų gūdybėse, kol užkliuvau už šio <a href="http://www.youtube.com/watch?v=jpEnFwiqdx8">&#8220;Ar žinote, kad&#8230;&#8221;</a> video klipuko. Vienas iš faktų jame &#8211; geidžiamiausios darbo vietos prieš dešimtmetį tiesiog dar nebuvo išrastos. Tokiu greičiu judančiame pasaulyje, kai tai, ką išmoksti universitete pirmais metais, jau būna pasenę kai baigi, <em>privalomai</em> mokyti dalykų, kurie yra atgyvenę, reiškia elementarų resursų švaistymą ir praktiškai sukelia ekonominį atsilikimą ateityje.</p>
<p>Pirmas argumentas, kurį gavau uždavęs šį klausimą, buvo tai, kad <strong>ranka rašyti, atseit, yra greičiau</strong>. Kodėl tuomet teismo stenografuotojai &#8211; žmonės, kurių darbas yra rašyti pačiu greičiausiu įmanomu būdu, naudoja (tegul ir specializuotą) aparatūrą? Turint omeny, kaip veikia žmogaus smegenys, kai jis atlieka darbą, kuris jam įaugęs į kraują, aparatūra teikia garantuotą privalumą.</p>
<p>Patogumo požiūriu, tam tikrose situacijose aš pats vis dar teikiu pirmenybę popieriui. Jeigu mokykloje būčiau mokytas kitaip &#8211; tokio įpročio neturėčiau. Ir nuo to visai nenukentėčiau &#8211; esu įsitikinęs, kad būčiau tik dar efektyvesnis. Turint omeny Twitter paplitimą ir kiek žmonių savo užrašus konferencijose atlieka tiesiai į kompiuterį ir į internetą, akivaizdu, kad <strong>patogumas tėra tik įprotis</strong>.</p>
<p>Nepaisant to, kad galbūt nukenčia rašymo greitis, aš <strong>naudoju spausdintines raides</strong> savo užrašuose. Ir nuo to taipogi <strong>nieko neprarandu</strong> &#8211; netgi laimiu, nes mano užrašus kiti žmonės gali įskaityti lengviau. Tiesą pasakius, turbūt rašytinėmis raidėm ir nebemokėčiau rašyt &#8211; reiškias lieka galvoj daugiau vietos dalykams, kurie yra naudingesni.</p>
<p>Be abejo, šiame reikale yra ir emocinis aspektas &#8211; ranka rašyti laiškai, atseit, yra kažkokiu būdu &#8220;žmogiškesni&#8221;. Aš nestudijavau psichologijos &#8211; nežinau ar tikrai pagrįstas yra šis argumentas, tačiau aš manau, kad mano būsimi vaikai pradės su manim bendrauti &#8220;mašininiu būdu&#8221; anksčiau, negu pradės eiti į mokyklą &#8211; SMS, Skype ir pan. Lygiai taip pat bus ir su jų bendraamžiais. Emocinis aspektas išliks tik siekiant parodyti, kad tai yra mano &#8220;rankų darbas&#8221; &#8211; lygiai kaip ir ranka pieštas, o ne pirktas, gimtadienio atvirukas. Tačiau juk <strong>piešti atvirukų žmonės privalomai mokykloje nemokomi</strong>. Na, bent jau ne visus metus ir ne kiekvieną dieną. Lygiai taip pat ir su bet kuriais kitais rankdarbiais. </p>
<p>Nesupraskit manęs neteisingai. Aš neteigiu, kad rašyti ranka yra apskritai nereikalingas įgūdis &#8211; <strong>sugebėti perduoti informaciją primityviais įrankiais yra labai svarbu</strong>. Maždaug taip, kaip svarbu mokėti sukurti laužą ir sužvejoti žuvį &#8211; elementarus išlikimas. Ir turint omeny, kad visiškai popieriaus atsikratyti artimu metu tikrai nepavyks, treniruotis greitai užpildyti formas derėtų, tačiau mes juk kalbame apie ateinančią kartą &#8211; tą, kuri turės gyventi gerokai po to, kai baigsis mūsų pačių galiojimo laikas.</p>
<p>Šiuo metu, nėra nei vieno žmogaus, kuris turi nusipirkęs iPad. Tačiau prieš šimtą metų nebuvo nei vieno žmogaus, kuris turėjo nusipirkęs radiją. Po šimto metų, būsim visi prijungti prie matricos, ir nei rašymas, nei spausdinimas, nei išvis diktavimas nebebus aktualūs. Tačiau šiuo pereinamuoju laikotarpiu, septynmetis, kuris sugeba kompiuteriu atlikti namų darbus yra ateities žmogus, kuris savo laiku galės konkuruoti su milijonais kitų dėl darbo ir mokės jūsų pensijas.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.d-b.lt/2010/01/kam-reikalingos-rasytines-raides.rss2.xml</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Užrašai iš FullFrontal 2009</title>
		<link>http://www.d-b.lt/2009/11/uzrasai-is-fullfrontal-2009.html</link>
		<comments>http://www.d-b.lt/2009/11/uzrasai-is-fullfrontal-2009.html#comments</comments>
		<pubDate>Sat, 28 Nov 2009 21:46:42 +0000</pubDate>
		<dc:creator>Dominykas</dc:creator>
				<category><![CDATA[Tinklo kūrimas]]></category>
		<category><![CDATA[accessibility]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[standartai]]></category>

		<guid isPermaLink="false">http://www.d-b.lt/?p=193</guid>
		<description><![CDATA[Prėjusį penktadienį Brighton&#8217;e vyko FullFrontal 2009 JavaScript konferencija, kurioje turėjau progą apsilankyti. Tikrai nenusivyliau!
Šiame blogo įraše susidėjau tai, ką pasižymėjau pats sau beklausydamas kalbėtojų. Pačių kalbų tikrai neketinu aprašinėti &#8211; tai puikiai padarė Ajaxian (nuorodas pateikiu), o skaidrės taipogi prieinamos viešai.
Jeigu kažkuris punktas sudomino &#8211; palikit komentarą &#8211; išplėsiu!
Christian Heilmann &#8211; Frontloaded and zipped up [...]]]></description>
			<content:encoded><![CDATA[<p>Prėjusį penktadienį Brighton&#8217;e vyko FullFrontal 2009 JavaScript konferencija, kurioje turėjau progą apsilankyti. Tikrai nenusivyliau!</p>
<p>Šiame blogo įraše susidėjau tai, ką pasižymėjau pats sau beklausydamas kalbėtojų. Pačių kalbų tikrai neketinu aprašinėti &#8211; tai puikiai padarė Ajaxian (nuorodas pateikiu), o skaidrės taipogi prieinamos viešai.</p>
<p>Jeigu kažkuris punktas sudomino &#8211; palikit komentarą &#8211; išplėsiu!</p>
<h2><a href="http://www.wait-till-i.com/">Christian Heilmann</a> &#8211; Frontloaded and zipped up &#8211; do loose types sink ships</h2>
<p><a href="http://ajaxian.com/archives/full-frontal-09-chris-heilmann-on-javascript-security">Ajaxian santrauka</a>; <a href="http://www.wait-till-i.com/2009/11/21/frontloaded-and-zipped-up-the-full-frontal-2009-keynote/">skaidrės</a>; <a href="http://www.archive.org/download/FrontloadedAndZippedUp-FullFrontalJavascriptConference2009/FrontloadedAndZippedUp-FullFrontalConference2009.mp3">garso įrašas</a>.</p>
<ul>
<li>Apie &#8220;AJAX&#8221; programuotojus kalbama žymiai pagarbiau negu apie &#8220;JavaScript&#8221; programuotojus. <i>Abydna, vienok.</i></li>
<li>JS nėra programavimo kalba skirta kiekvienam &#8211; ir ne kiekvienas save vadinantis &#8220;tinklo kūrėju&#8221; turėtu ja užsiimti.</li>
<li>JS egzistavo gerokai prieš jQuery.</li>
<li>Naudojant JS kalbą, reikėtų ją naudoti taip, kaip ji buvo suplanuota &#8211; gana kurti įvairias abstrakcijas pagal tradicinius OO modelius. JS turi savo stilių &#8211; privalu jį išnaudoti ir įsisavinti.</li>
<li>Saugumo skylės (XSS, XSRF ir t.t.) yra <i>server-side</i> problema &#8211; JS dažniausiai yra nekaltas (nors ir išnaudojamas)</li>
<li>Nepamiršti: http-only sausainiukai sesijoms</li>
<li>Bet kuris API yra iš esmės saugumo skylė &#8211; Firefox greičiausiai yra pati nesaugiausia naršyklė būtent dėl savo plėtinių architektūros. Priminė kažkieno sakinį, kad mash-up&#8217;ai yra XSS atakos prieš save patį.</li>
<li>Išbandyti: dažnos ir paprastos apklausėlės kaip mokymosi metodas komandoje</li>
<li>Pasidomėti: adsafe.org saugumo rekomendacijos</li>
<li>Pasidomėti: <a href="http://code.google.com/p/google-caja/">Google Caja</a> (yra informacijos <a href="http://developer.yahoo.com/yap/guide/caja-support.html">ir YDN</a>)
<ul>
<li>Kas per saugumo skylė IE su <code>radio</code> mygtukais?</li>
<li>Kodėl <code><a href="http://www.positioniseverything.net/easyclearing.html">clearfix</a></code> nevartotinas pagal Caja?</li>
<li>Kodėl tiek daug CSS apribojimų?</li>
</ul>
</li>
<li><code>javascript:void(0)</code> turi mirti (žiauria ir negarbina mirtimi)!</li>
<li><a href="http://ejohn.org/">John Resig</a> yra, lyg ir, pažadėjęs, kad jeigu pakankamai žmonių to reikalaus &#8211; jQuery pritaikys Caja rekomendacijas</li>
<li>Pasidomėti: ar įmanoma padaryti <i>YQL injection</i>?</li>
<li>Pasidomėti: jau egzistuoja OAuth implementacija vien su JS</li>
</ul>
<h2><a href="http://robertnyman.com/">Robert Nyman</a> &#8211; JavaScript: from birth to closure</h2>
<p><a href="http://ajaxian.com/archives/full-frontal-09-robert-nyman-on-the-javascript-language">Ajaxian santrauka</a>; <a href="http://www.slideshare.net/robnyman/javascript-from-birth-to-closure">skaidrės</a>.</p>
<ul>
<li>Kas čia per įprotis, tikrinti ar dižiąjame ekrane bėgantis Twitter srautas yra cenzūruojamas? Įdomus kultūrinis pokrypis, besivystant technologijoms&#8230;</i>
<li>Nepamiršt: skaityti <a href="http://dmitry.baranovskiy.com/">Dmitry Baranovskiy&#8217;o</a> blogą</li>
<li>Pasikartot: <code>typeof kint == 'undefined'</code> naudojimas</li>
<li>Pasidomėt: Koks yra globalus <code>this</code> Rhino variklyje (t.y. <code>window</code> atitikmuo naršyklėse)?</li>
<li>Pasidomėt: <a href="http://yuiblog.com/blog/2007/06/12/module-pattern/">YAHOO Module Pattern</a></li>
</ul>
<h2><a href="http://www.quirksmode.org/">Peter-Paul Koch</a> &#8211; W3C Widgets</h2>
<p><a href="http://ajaxian.com/archives/full-frontal-09-ppk-on-mobile-quirks-and-practices">Ajaxian santrauka</a>; <a href="http://www.quirksmode.org/blog/archives/2009/11/presentations_t.html">skaidrės</a>.</p>
<ul>
<li>Pasidomėt: Ar Nokia N900 naršyklė yra fennec? (Atsakymas: taip)</li>
<li>Mobilaus telefono naudojimas interneto naršymui yra puikus būdas pasimokyti &#8211; visos vartojiškumo pamokos gali būti pritaikytos eilinėms naršyklėms</li>
<li>Ar <code>@media</code> kartu su iPhone&#8217;o <code>&lt;meta name="viewport" /&gt;</code> galėtų išspręsti problemą, kad <i>user-agentai</i> savaip interpretuoja pločius kai svetainė yra <i>išzoominta</i>? (Prie alaus PPK patvirtino, kad ketina tą patikrinti artimiausiu metu)</li>
<li>Kai kuriuose aukšto DPI telefonuose kartais būna sunku paspausti tą vietą kurią nori &#8211; ar gali spaudimo jautrumo DPI ir ekrano DPI gali būti skirtingi?</li>
<li>Nejaugi mobilūs telefonai neturi &#8220;ilgai trunkančio skripto&#8221; perspėjimų?</li>
<li>Dėl greičio problemų, rekomenduojama nenaudoti <code>iframe</code> mobiliems telefonams skirtose svetainėse &#8211; kaip įgyventi AJAX-išką naršyklės istoriją (<i>back/forward</i>)?</li>
<li>Dingstantis ryšys yra problema &#8211; ir <code>online/offline</code> įvykiai jos visiškai nepadeda spręsti</li>
<li>Mobilių telefonų kešas yra ~200kb &#8211; būtina dar protingiau optimizuoti kodą</li>
<li>W3C specifikacijos <i>widgetai</i> leidžia tik vieną HTML puslapį &#8211; potenciali problema?</li>
<li>Dalintis <i>widgetais</i> per Bluetooth yra pavojinga</li>
<li>Animacijos efektai mobiliuose telefonuose veikia lėtai. Iš patirties &#8211; ne viskas taip jau blogai, bet optimizuoti ir apskritai elgtis protingai privalu</li>
</ul>
<h2><a href="http://www.kryogenix.org/">Stuart Langridge</a> &#8211; New things that HTML5 provides to JavaScript hackers</h2>
<p><a href="http://ajaxian.com/archives/full-frontal-09-stuart-langridge-on-html5-features">Ajaxian santrauka</a></p>
<ul>
<li>Pasidomėti: <a href="http://documentcloud.github.com/underscore/">underscore.js</a></li>
<li>Internetas jau nebėra &#8220;programų rašymo platforma&#8221;. Tavo <em>svetainė</em> gali būti ta platforma, jeigu atidarysi savo API. Ir net jeigu neatidarysi &#8211; yra GreaseMonkey. Reikia tam būti pasiruošus!</li>
<li>Idėja: naršyklių gamintojai, galėtų turėti standartinį būdą palaikymo tikrinimui, t.y. jeigu tu rašai savo kodą laikydamasis <i>progressive enhancement</i> principo, kartais turi paprastus būdus patikrinti, ar kažkas veiks &#8211; o kartais ne (pvz. Operos <code>&lt;event-source/&gt;</code>). O galėtų būti kas nors paprasto, pvz. <code>window.navigator.supports("event-source");</code></li>
</ul>
<h2><a href="http://twitter.com/toddkloots">Todd Kloots</a> &#8211; More accessible user interfaces with ARIA</h2>
<p><a href="http://ajaxian.com/archives/full-frontal-09-todd-kloots-on-aria-and-acessibility">Ajaxian santrauka</a>, <a href="http://www.yuiblog.com/blog/2009/11/23/video-kloots-yuiconf2009-a11y/">video įrašas</a> ta pačia tema iš YUI konferencijos</p>
<ul>
<li>Idėja: YUI3 šiuo moment palaiko ARIA pridėdami roles ir atributus elementams, su kuriais dirba, pvz. sukuriant YUI meniu JS, susiiję elementai yra teisingai pažymimi. Ar neturėtų viskas būti atvirkščiai? T.y. rolės ir atributai nustatomi tiesiai HTML dar serveryje, o YUI (ar kita biblioteka) inicializuojasi jau naudodami tas roles.</li>
<li>Toddas kalbėjo apie tai, kaip galima &#8220;uždėti ARIA sluoksnį savo sistemoje&#8221;. Bet argi nebūtų paprasčiau laikytis &#8220;ARIA palaikymo&#8221; kaip pagrindinio principo, t.y. tai yra kažkas tokio, ką tiesiog darai natūraliai, negu tai, ką darai pabaigoje, ant viršaus? Lygiai taip, kaip kažkada reikėjo pakeisti mastymą rašant HTML ir CSS, bei išmokti naudoti <i>progressive enhancement</i>, o ne <i>graceful degradation</i>.</li>
<li>YUI2 palaiko <i>&#8220;<a href="http://yuiblog.com/blog/2007/01/17/event-plan/">event delegation</a>&#8220;</i>? Čia nuo kada? (Atsakymas: pasirodo, nuo YUI 2.8 &#8211; pamiršęs buvau&#8230; <i>&#8220;event delegation&#8221;</i> valdo!)</li>
<li>Žmonės su normaliu regėjimu, turbūt savo protiniuose modeliuose (kaip išversti <i>mental model</i>?) turbūt be problemų priima, kad meniu dažnai eina iš kairės į dešinę. Kaip tai suvokia aklieji? T.y. kaip jų modeliai susitvarko su tuo, kad meniu navigacija vykdoma &#8220;kairė/dešinė&#8221; mygtukais, o ne &#8220;viršus/apačia&#8221;, kai naudojamos ekrano skaityklės?</li>
<li>Pasidomėti: ar ARIA turi kokį nors &#8220;fokusuotos grupės&#8221; apibrėžimą, o ne vien tik &#8220;fokusuoto elemento&#8221;?</li>
<li>Pasidomėti: <i>accessibility</i> šiuo metu dažniausiai siejasi su pele ir klaviatūra, kaip įvesties įrenginiais &#8211; kokie modeliai naudojami kitiems įrenginiams?</li>
<li>Pasidomėti: ką HTML5 specifikacija sako apie <code>&lt;section/&gt;</code> <i>web application</i> kontekste?</li>
<li>Pasidomėti: klaviatūros greitųjų klavišų atrandamumas lankytojams su <em>normalia</em> rega</li>
</ul>
<h2><a href="http://twitter.com/jaffathecake">Jake Archibald</a> &#8211; Optimising where it hurts</h2>
<p><a href="http://ajaxian.com/archives/full-frontal-09-jake-archibald-on-performance-optimisation">Ajaxian santrauka</a>; <a href="http://www.jakearchibald.co.uk/jsperformance/">tyrimas ir skaidrės</a></p>
<ul>
<li>Ar jis čia skaidres varto su savo WII kontroleriu? Geras!</li>
<li>Niekada nenaudoti <code>eval()</code>, ypač <i>closure</i> viduje &#8211; tai iš esmės nužudo visas JS variklių (V8, TraceMonkey ir t.t.) optimizacijas, nes <code>eval()</code> gali nesunkiai pakeisti kintamųjų aprėptį (kaip išversti <i>scope</i>?)</li>
<li>Nenaudoti <i>closure</i> per dideliam gyliui, jeigu galima to išvengti</li>
<li><em>Niekada nenaudoti</em> eilučių sujungimo, kai jos rašomos į <code>innerHTML</code>, t.y. ne <code>el.innerHTML="&lt;div&gt;"+kint+"&lt;/div&gt;"</code>, o <code>var s="&lt;div&gt;"+kint+"&lt;/div&gt;"; el.innerHTML=s;</code></li>
<li>Vengti <code>window.onunload</code> naudojimo, nes nužudomas kešinimas (jQuery jau turi šią problemą &#8211; bet ketina išspręsti)</li>
<li>Švarus ir paprastas HTML, neturintis bereikalingų tagų, pats savaime paspartina selektorių darbą (nes reikia perfiltruoti mažesnį kiekį elementų). Žodžiu, rašyti didelį kiekį nesemantinio HTML (ar tai būtų nereikalingi <code>div</code>, ar <code>table</code>) yra blogai!</li>
<li>Kiekvienas turėtų pasimokyti pats rašyti vykdymo greičio testus (tik reikia nepamiršti apie &#8220;<a href="http://ejohn.org/blog/accuracy-of-javascript-time/">16ms problemą</a> JS&#8221;)</li>
<li>&#8220;Optimizuok ten kur skauda&#8221; iš tikro tereiškia &#8220;nebūk durnas&#8221; &#8211; visos diskusijos, apie tai kuris ciklas optimalesnis (<code>for</code> prieš <code>while</code>) yra bevertės (nes sutaupo 0.002 <em>mili</em>sekundės). Iš tikro reikia izoliuoti tą dalį, kuri veikia lėčiausiai, ir tvarkyti būtent ją. Vargti stengiantis rašyti &#8220;teisingą kodą&#8221; iš anksto yra beprasmiška &#8211; žinot istoriją su &#8220;priešlaikine optimizacija&#8221;, ar ne?</li>
</ul>
<h2><a href="http://simonwillison.net/">Simon Willison</a> &#8211; Beating server side engineers in their own game</h2>
<p><a href="http://ajaxian.com/archives/full-frontal-09-simon-willison-on-server-side-javascript-and-node-js">Ajaxian santrauka</a>; <a href="http://simonwillison.net/2009/Nov/23/node/">autoriaus santrauka</a></p>
<ul>
<li>Pasidomėti plačiau apie <a href="http://en.wikipedia.org/wiki/ECMAScript_for_XML">E4X</a></li>
<li>Mac&#8217;ų vartotojai elgiasi&#8230; kitaip. Tiesiog kitaip ir tiek.</li>
<li>Ar eitų NodeJS panaudoti kaip <i>unit testų</i> konsolę? Integruoti į <i>continuous build&#8217;us</i>?</li>
<li>JS nėra &#8220;strongly typed&#8221; kalba &#8211; tai natūraliai yra sunkiau dirbant komandoje. Pasidomėti: kaip tai galima spręsti</li>
<li><a href="http://nodejs.org/">NodeJS</a> ir <a href="http://couchdb.apache.org/">CouchDB</a> yra labai labai <i>seksi</i>! Kiekvienas turėtų pasidomėti kaip jie veikia, kaip optimizuoja procesus ir kokiais principais yra paremti!</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.d-b.lt/2009/11/uzrasai-is-fullfrontal-2009.rss2.xml</wfw:commentRss>
		<slash:comments>8</slash:comments>
<enclosure url="http://www.archive.org/download/FrontloadedAndZippedUp-FullFrontalJavascriptConference2009/FrontloadedAndZippedUp-FullFrontalConference2009.mp3" length="40572024" type="audio/mpeg" />
		</item>
		<item>
		<title>Apie &#8220;ne vagystę&#8221;</title>
		<link>http://www.d-b.lt/2009/11/apie-ne-vagyste.html</link>
		<comments>http://www.d-b.lt/2009/11/apie-ne-vagyste.html#comments</comments>
		<pubDate>Wed, 18 Nov 2009 07:27:32 +0000</pubDate>
		<dc:creator>Dominykas</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[106]]></category>
		<category><![CDATA[lanva]]></category>
		<category><![CDATA[piratavimas]]></category>
		<category><![CDATA[vagys]]></category>

		<guid isPermaLink="false">http://www.d-b.lt/?p=190</guid>
		<description><![CDATA[Gyveno kartą bomžas. Biednas buvo, neturėjo pinigų, šalo žiemą lauke.
Vieną dieną sužinojo, kad kai kurie butai būna neužrakinti. Gal dėl savininkų žioplumo, gal dėl to, kad pametė raktus &#8211; nesvarbu kodėl.
Nuėjo bomžas į laiptinę ir pradėjo tikrinti duris. Na ir rado atrakintas. Įėjo į vidų ir šiltai sau miega.
Juk tai nėra įsibrovimas į svetimą valdą, [...]]]></description>
			<content:encoded><![CDATA[<p>Gyveno kartą bomžas. Biednas buvo, neturėjo pinigų, šalo žiemą lauke.</p>
<p>Vieną dieną sužinojo, kad kai kurie butai būna neužrakinti. Gal dėl savininkų žioplumo, gal dėl to, kad pametė raktus &#8211; nesvarbu kodėl.</p>
<p>Nuėjo bomžas į laiptinę ir pradėjo tikrinti duris. Na ir rado atrakintas. Įėjo į vidų ir šiltai sau miega.</p>
<p>Juk tai nėra įsibrovimas į svetimą valdą, nes nu juk bomžui šalta. Ir tai nėra neteisėta, nes nu juk žalos tai jis nepadarė &#8211; išsimiegojo, neprišiko, išėjo. Butas vietoje, visi daiktai vietoje. Vagystės nėra. Žalos lyg irgi nėra.</p>
<p>Anglijoje, gi, žmonės, sakoma, daug uždirba. Todėl pas juos bomžai geriau gyvena. Prisirenka daugiau išmaldos, todėl gali miegoti nakvynės namuose. Todėl Lietuvoje bomžai tiesiog turi teisę eiti į svetimus namus ir ten miegoti.</p>
<p>Ir apskritai, bomžai turėtų įsteigti bomžų partiją, ir kovoti už teisę, kad visi žmonės paliktų duris atrakintas, kad jie galėtų ateiti ir miegoti kada nori. Nes na juk ne įsibrovimas į svetimą valdą ir visi turėtų turėt teisę miegoti svetimuose butuose.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.d-b.lt/2009/11/apie-ne-vagyste.rss2.xml</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Prieš kelias savaites daug žmonių</title>
		<link>http://www.d-b.lt/2009/10/pries-kelias-savaites-daug-zmoniu.html</link>
		<comments>http://www.d-b.lt/2009/10/pries-kelias-savaites-daug-zmoniu.html#comments</comments>
		<pubDate>Thu, 01 Oct 2009 20:29:13 +0000</pubDate>
		<dc:creator>Dominykas</dc:creator>
				<category><![CDATA[Blogosfera]]></category>
		<category><![CDATA[nepriimti per daug rimtai]]></category>
		<category><![CDATA[trumpai]]></category>

		<guid isPermaLink="false">http://www.d-b.lt/?p=187</guid>
		<description><![CDATA[Kaip jau kažkada minėjau, kiekvieną dieną, net nesusimąstydami, visi su tuo susiduria. Tikriausiai esate girdėję, kad dažnas naudojasi, tačiau kas kartą greičiausiai pagalvojate, kad ne vienam pasitaiko, kad dažniausiai tenka sutikti tokią situaciją, kurioje, atrodo, kiekvienam sekasi sunkiai sulaukti, kol pasieks žinia, kad kartais niekaip nepavyksta daugybę kartų gerokai supaprastinti to, kas gana ilgai leidžia [...]]]></description>
			<content:encoded><![CDATA[<p>Kaip jau kažkada minėjau, kiekvieną dieną, net nesusimąstydami, visi su tuo susiduria. Tikriausiai esate girdėję, kad dažnas naudojasi, tačiau kas kartą greičiausiai pagalvojate, kad ne vienam pasitaiko, kad dažniausiai tenka sutikti tokią situaciją, kurioje, atrodo, kiekvienam sekasi sunkiai sulaukti, kol pasieks žinia, kad kartais niekaip nepavyksta daugybę kartų gerokai supaprastinti to, kas gana ilgai leidžia daryti išvadą, kad kai kurie vartotojai, kaip pastebėjote, niekada nebus patenkinti. Ne kartą sakiau &#8211; tai ne atsitiktinumas!</p>
<p>Apie tai šiandien ir papasakosiu.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.d-b.lt/2009/10/pries-kelias-savaites-daug-zmoniu.rss2.xml</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Eskizų paskirtis</title>
		<link>http://www.d-b.lt/2009/08/eskizu-paskirtis.html</link>
		<comments>http://www.d-b.lt/2009/08/eskizu-paskirtis.html#comments</comments>
		<pubDate>Wed, 19 Aug 2009 08:04:21 +0000</pubDate>
		<dc:creator>Dominykas</dc:creator>
				<category><![CDATA[Usability]]></category>
		<category><![CDATA[kūrybos procesas]]></category>
		<category><![CDATA[usability]]></category>

		<guid isPermaLink="false">http://www.d-b.lt/?p=158</guid>
		<description><![CDATA[Neseniai perskaičiau Bill Buxton knygą &#8220;Sketching User Experiences&#8221;. Nepaisant to, kad aš jau seniai vertinu prototipų gamybą, kai tai leidžia biudžetas, knyga atvėrė akis, tuo kad prototipų daryti pačioje pradžioje išvis nereikia &#8211; užtenka tiesiog eskizų. Būtent tas atskyrimas tarp eskizų ir prototipų ir yra esminis dalykas, kurį iš jos pasiėmiau. Iš tiesų, eskizas kartais [...]]]></description>
			<content:encoded><![CDATA[<p>Neseniai perskaičiau Bill Buxton knygą <a href="http://www.amazon.com/Sketching-User-Experiences-Interactive-Technologies/dp/0123740371/ref=sr_1_1?ie=UTF8&#038;s=books&#038;qid=1250629470&#038;sr=8-1">&#8220;Sketching User Experiences&#8221;</a>. Nepaisant to, kad aš jau seniai vertinu prototipų gamybą, kai tai leidžia biudžetas, knyga atvėrė akis, tuo kad prototipų daryti pačioje pradžioje išvis nereikia &#8211; užtenka tiesiog eskizų. Būtent tas atskyrimas tarp eskizų ir prototipų ir yra esminis dalykas, kurį iš jos pasiėmiau. Iš tiesų, eskizas kartais gali būti daug vertingesnis negu pats prototipas, dėl savo savybių.</p>
<h2>Pigumas</h2>
<p>Kartais kuriant prototipą norisi perteikti kuo daugiau jo smulkmenų, o tai reikalauja investicijų. Automobilių gamintojai pastoviai išleidžia koncepcinius modelius, kurie iš tikro neveikia, nepaisant to, kad atrodo gražiai ir beveik išbaigtai. Tas poliravimas yra labai brangus, o rezultatą vistiek tenka išmesti. Eskizai, tuo tarpu, privalo tik perteikti idėją. Jeigu laikytis senos geros Pareto taisyklės, tai sukurti 80% produkto, užtenka 20% pastangų. <strong>Eskizai yra milžiniški žingsniai link produkto, už praktiškai nulį pastangų</strong>.</p>
<p>Ši savybė labai padeda vienam iš sėkmės principų &#8211; <strong>klysk dažnai ir klysk anksti</strong>. Išmetant pigiai kainavusias klaidas širdies per daug neskauda.</p>
<h2>Neišbaigtumas</h2>
<p>Nepaisant to, kad darant greitą &#8220;tep lep&#8221; darbą rezultatas niekada nebus patenkinamas, kuriant eskizus privalu išlaikyti tą stilių priverstinai. Netiesios linijos, nesulygiuotas tekstas ir mygtukai, jokių specialiųjų efektų &#8211; visa tai tiesiog šaukia &#8220;<strong>aš tik noriu sužadinti tavo vaizduotę</strong>&#8220;. Juk vieną kartą pamačius, geriau negu šimtą kartų išgirdus &#8211; tiek vidiniai, tiek išoriniai klientai idėjas priima lengviau, kai į jas gali pažiūrėti. Eskizai sumažina jų lūkesčius &#8211; kuriant prototipą dažnai per daug dėmesio skiriama detalėms. Pristatant eskizą, daug lengviau nuteikti žmogų, priimantį sprendimus, kad tai toli gražu nėra produktas, o tiesiog &#8220;dokumentuota idėja&#8221;.</p>
<h2>Diskusija</h2>
<p>Jeigu cituoti Billą Buxtoną, tai viena iš eskizo paskirčių yra užduoti klausimus, kai tuo tarpu prototipo &#8211; juos atsakyti. Iš šitos dalies, labai svarbu pasiimti tai, kad <strong>net drebančia ranka nupieštą eskizą galima panaudoti <a href="http://www.d-b.lt/2008/01/usability-lietuviskai-vartojiskumas.html" title="Usability">vartojiškumo</a> testams</strong> &#8211; ar produktas juda tinkama linkme? Ar tenkina vartotojo poreikius ir padeda siekti tikslų? Ar aišku, kas įvyks paspaudus vieną ar kitą nuorodą? Greitas, paprastas bandymas taipogi padeda įvertinti ir galimas kliūtis ateityje.</p>
<p>Kaip programuotojas, turiu didelį aplanką mažų failų, kuriuose tėra po 10 eilučių kodo tam, kad tiesiog patikrinti <em>ar įmanoma</em>, kad paprastos idėjos tiesiog veiktų (su visomis naršyklėmis) &#8211; tiek <a href="http://www.d-b.lt/2009/03/hasfocus-ir-activeelement-uz-400-baitu.html">hasFocus/activeElement</a>, tiek <a href="http://www.d-b.lt/2008/05/horizontalus-centravimas-su-css.html">horizontalaus centravimo</a> sprendimai gimė būtent iš to.</p>
<p>Aukštesniame <i>Метод научного тыка</i> galioja bet kokiam darbui &#8211; įskaitant ir <i>user interaction</i> dizainą!</p>
<h2>Dokumentacija</h2>
<p>O dabar gali pasirodyti, kad prieštarauju pats sau. Nepaisant to, kad eskizai yra pigūs, jų nevalia išmesti. Vykdant projektą, svarbu turėti juos kaip istorinius duomenis &#8211; jeigu kartojimas yra mokslų motina, tai būtent žiūrint į savo klaidas ir pasikartojant kokios jos buvo, galima iš jų mokytis. Užrašai, anotacijos, atsiliepimai ir vertinimai &#8211; visą šią informaciją privalu išsaugoti ateičiai (dabar gali dar kartą pasirodyti, kad prieštarauju pats sau), nes ilgesniu laikotarpiu, viena iš eskizų paskirčių yra būtent nutraukti diskusijas, t.y. kiekvienas eskizo užduotas klausimas, ir kiekviena pateikta idėja turi būti atsakyta prieš pradedant tikrąjį darbą, kad išvengti bereikalingo laiko švaistymo grįžtant prie jau patikrintų problemų.</p>
<p>Kas iš viso to? Ech&#8230; Prieš porą savaičių pats pačiulbėjau, kad <a href="http://twitter.com/dymonaz/status/3133443920">abstraktūs dalykai patys savaime neturi prasmės</a>. Reiškias ateina įrašas, su daugiau prasmės. Продолжение следует&#8230;</p>
<p>PS žodis &#8220;vartojiškumas&#8221; yra tik eskizas. Vienas iš kelių variantų. Gal reiktų &#8220;š&#8221; pakeisti į &#8220;ž&#8221;, kad atrodytų neišbaigčiau? Imu jį į praktiką, žiūrėsim kas gausis &#8211; kiek galima apie tai vien galvoti ar kalbėti.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.d-b.lt/2009/08/eskizu-paskirtis.rss2.xml</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Formų validacija: netrukdyk man!</title>
		<link>http://www.d-b.lt/2009/07/formu-validacija-netrukdyk-man.html</link>
		<comments>http://www.d-b.lt/2009/07/formu-validacija-netrukdyk-man.html#comments</comments>
		<pubDate>Tue, 14 Jul 2009 21:30:16 +0000</pubDate>
		<dc:creator>Dominykas</dc:creator>
				<category><![CDATA[Tinklo kūrimas]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[usability]]></category>
		<category><![CDATA[užknisantys dalykai internete]]></category>

		<guid isPermaLink="false">http://www.d-b.lt/?p=139</guid>
		<description><![CDATA[Alanas Cooperis savo knygose pastoviai kartoja, kad blogiausias dalykas, kurį galima padaryti vartotojui, tai priversti jį jaustis kvailu. Bene lengviausia šį &#8220;tikslą&#8221; pasiekti yra validacijoje &#8211; kiekvienas bereikalingas klaidos pranešimas ir kiekviena sistema, kuri man trukdo daryti dalykus mano būdu, tiesiog ir verčia mane daužyti galvą į sieną su klausimu &#8220;Nu, kodėl šito reikia?&#8221; Šiandien [...]]]></description>
			<content:encoded><![CDATA[<p><cite>Alanas Cooperis</cite> savo knygose pastoviai kartoja, kad blogiausias dalykas, kurį galima padaryti vartotojui, tai priversti jį jaustis kvailu. Bene lengviausia šį &#8220;tikslą&#8221; pasiekti yra validacijoje &#8211; kiekvienas bereikalingas klaidos pranešimas ir kiekviena sistema, kuri man trukdo daryti dalykus mano būdu, tiesiog ir verčia mane daužyti galvą į sieną su klausimu &#8220;<i>Nu</i>, kodėl šito reikia?&#8221; Šiandien aptikau puikų to pavyzdį:</p>
<pre>function isNumberKey(evt)
{
     var charCode = (evt.which) ? evt.which : event.keyCode
     if (charCode > 31 &#038;&#038; (charCode < 48 || charCode > 57))
        return false;

     return true;
}</pre>
<p>Ši funkcija naudojama kaip <code>onkeypress</code> <i>event handler</i>. Ką ji daro iš tikro? Kai įvesties lauke paspaudžiamas klavišas, kuris nėra skaičius, ir nėra vienas iš kontrolinių klavišų (<kbd>Enter</kbd>, <kbd>Backspace</kbd> ir tt), klavišo paspaudimas yra sustabdomas ir ignoruojamas. Konkrečiu atveju, man reikėjo įvesti svetainėje savo 8 skaitmenų prisijungimo kodą, na ir lyg būtų logiška, kad man nereikia spausti kitų klavišų, tik skaičius, ir po to <kbd>Tab</kbd>, kad įvesti slaptažodį. <strong>Netiesa!</strong></p>
<p>Visiškai galima kombinacija, kurią galiu įvesti yra <kbd>Ctrl+V</kbd>. Nes paprasčiausiai naudojuosi konkrečia svetaine kartą per metus, todėl prisijungimo vardą, kuris yra generuojamas automatiškai, galiu surasti tik el. pašto archyve. Ar tai veiks? Be abejo ne (išskyrus Chrome &#8211; nesigilinau kodėl), nes tokio paspaudimo atveju <code>charCode</code> bus lygus 118, t.y. &#8220;v&#8221; raidės ASCII kodas, ir mano <i>Paste</i> veiksmas bus sustabdytas.</p>
<h2>Patarimas: leisk vartotojui elgtis kaip jis įpratęs</h2>
<p>Galima, be abejo sakyti, kad prisijungimo formoje tokia validacija išvis nereikalinga, nes įvedus neteisingą vartotojo vardą (pvz. <code>' OR ''='</code>), prisijungti tiesiog nepavyks, su pranešimu &#8220;Neteisingas vartotojo vardas ir/arba slaptažodis&#8221;. Tačiau lygiai taip pat galima teigti, kad siekiama vartotoją apsaugoti nuo to klaidos pranešimo, arba, kad toks validacijos veikimas kai kuriais atvejais gali būti pageidautinas. <strong>Netiesa!</strong></p>
<h2>Patarimas: nepasikliauk naršyklės API</h2>
<p>Javascript palaikymas interneto naršyklėse yra labai ribotas. Jis negali suteikti standartinių OS galimybių, kaip pvz. garsinis signalas paspaudus netinkamą klavišą. Negana to, konkrečioje formoje nėra suteikiama jokių užuominų, kad &#8220;leidžiama įvesti tik skaičius&#8221; (tuo atveju galima būtų tiesiog keikti programuotoją, už neteisingą vykdymą). Tačiau net jeigu viso to implementacija būtų teisinga, o puslapis pateiktų visas užuominas apie tai, ką galima daryti ir ko negalima, vistiek aš pasisakyčiau prieš tokį dalyką, ir ne vien tik todėl, kad <a href="http://www.quirksmode.org/blog/archives/2009/03/testing_mobile_1.html#link10">Nokia telefonai neteisingai perduoda <code>keyCode</code></a>.</p>
<p>Dar vienas pavyzdys būtų validacijos vykdymas, kai nuspaudžiamas <kbd>Enter</kbd> klavišas &#8211; ši problema mane nervuoja pragare, kuris vadinamas <a href="http://www.o2.ie">o2.ie</a> kasdien. Kodėl? Ogi tiek Firefox, tiek Chrome (su Opera svetainė neveikia išvis) <i>autocomplete</i> pasirinkus reikšmę, ir paspaudus <kbd>Enter</kbd>, įvykis perduodamas į Javascript, todėl pasirinkęs iš sąrašo savo telefoną, gaunu malonų pranešimą, kad neįvedžiau slaptažodžio, nors dar net nespėjau prieiti iki to žingsnio!</p>
<h2>Patarimas: nedėk apribojimų ten, kur jie visiškai nereikalingi</h2>
<p>Problema slypi tame, kad ribojama mano veiksmų laisvė. Neverta to daryti. Štai pvz. <code>textarea</code> elementas neturi <code>maxlength</code> atributo &#8211; galima to palaikymą sukurti su JS, bet daug geresnis variantas yra tiesiog parodyti kiek yra likę galimų įvesti simbolių, o <strong>klaidos pranešimą rodyti tik tada, kai klaida yra <em>tikrai</em> padaryta</strong>. Įsivaizduokite, jei Twitter neleistų įvesti daugiau negu 140 simbolių ir nesuteiktų galimybės redaguoti tekstą tol, kol jis telpa į juos.</p>
<p>Lygiai taip ir šiuo validacijos atveju, derėtų leisti vartotojui spausti tuos klavišus, kuriuos jis nori spausti, o įvestus duomenis tikrinti tik tada, kai vartotojas pasako &#8220;taip, aš žinau, kad noriu tokius duomenis išsiųsti&#8221;, t.y. <code>onsubmit</code> įvykio metu, arba tiesiog <i>server-side</i>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.d-b.lt/2009/07/formu-validacija-netrukdyk-man.rss2.xml</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>HTML5: naudoti negalima laukti</title>
		<link>http://www.d-b.lt/2009/07/html5-naudoti-negalima-laukti.html</link>
		<comments>http://www.d-b.lt/2009/07/html5-naudoti-negalima-laukti.html#comments</comments>
		<pubDate>Sun, 05 Jul 2009 21:15:33 +0000</pubDate>
		<dc:creator>Dominykas</dc:creator>
				<category><![CDATA[Tinklo kūrimas]]></category>
		<category><![CDATA[eksperimentai]]></category>
		<category><![CDATA[html5]]></category>
		<category><![CDATA[html5 mitai]]></category>
		<category><![CDATA[semantinis tinklas]]></category>
		<category><![CDATA[standartai]]></category>

		<guid isPermaLink="false">http://www.d-b.lt/?p=96</guid>
		<description><![CDATA[Jau kuris laikas pavydėjau Bruce Lawson, kad jis paėmė ir sužymėjo savo blog&#8217;ą HTML5. Kentėjau, tingėjau ir atidėliojau, kol va pagaliau šį savaitgalį paėmiau ir pasidariau tai pats. Tiesa, ne iki galo ir ne visai taip kaip norėjau, bet hell &#8211; HTML5 galima privaloma, bent dalinai, naudoti jau šiandien.

Struktūriniai elementai veikia puikiai
Naujieji elementai (header, footer, [...]]]></description>
			<content:encoded><![CDATA[<p>Jau kuris laikas pavydėjau Bruce Lawson, kad jis paėmė ir <a href="http://www.brucelawson.co.uk/2009/redesigning-with-html-5-wai-aria/">sužymėjo savo blog&#8217;ą HTML5</a>. Kentėjau, tingėjau ir atidėliojau, kol va pagaliau šį savaitgalį paėmiau ir pasidariau tai pats. Tiesa, ne iki galo ir ne visai taip kaip norėjau, bet hell &#8211; HTML5 <del>galima</del> privaloma, bent dalinai, naudoti jau šiandien.</p>
<p style="text-align:center;"><img src="http://www.d-b.lt/uploads/2009/07/html5.png" alt="HTML5 struktūra" title="HTML5 struktūra" width="450" height="189" class="aligncenter size-full wp-image-103" style="border: 1px solid #000;" /></p>
<h2>Struktūriniai elementai veikia puikiai</h2>
<p><a href="http://www.w3.org/TR/html5-diff/">Naujieji elementai</a> (<code>header</code>, <code>footer</code>, <code>time</code>, etc) veikia (beveik) puikiai. Nėra nei vienos rimtos priežasties, kodėl reiktų delsti su jų naudojimu. Vienintelė išimtis (kurios aš net nesistengiau išspręsti) &#8211; Firefox 2. IE šeimos naršyklės taipogi nenori pripažinti naujų žymų ir pritaikyti joms stilių, tačiau tai nesunkiai <a href="http://html5doctor.com/how-to-get-html5-working-in-ie-and-firefox-2/">išsprendžiama Javascript pagalba</a>. Jeigu vien Javascript sprendimas netenkina (<i>unobtrussive, progressive enhancement, etc</i>) &#8211; visada galima naudoti tarpinį sprendimą &#8211; naudoti naujas HTML5 žymas semantikai, o stiliams prikaišioti <code>div</code>&#8216;ų.</p>
<p>Be viso šito, perrašydamas savo blog&#8217;o HTML, nesusidūriau su jokiom problemom, išskyrus <code>header</code> ir <code>h1</code> semantinėm reikšmėm, bet tai yra verta atskiro įrašo. Dar turėjau šiek tiek dvejonių dėl <code>section</code> naudojimo, tačiau priėjau išvados, kad geriau šiandien eksperimentuoti, o rytoj padaryti teisingai &#8211; be klaidų progreso nebus.</p>
<h2>Formos elementų tipus naudoti galima</h2>
<p>Aš pats nenaudojau naujų formų elementų tipų (<code>type=email</code>, <code>type=url</code>), tačiau kai tik turėsiu daugiau laiko paeksperimentuoti &#8211; naudosiu ir juos. Kol kas juos palaiko tik <a href="http://www.opera.com/">Opera naršyklė</a>, tačiau kitos netruks prisivyti, o tos kurios jų nepalaiko &#8211; atvaizduos laukus tiesiog kaip <code>type=text</code> &#8211; <a href="http://people.opera.com/brucel/demo/html5-forms-demo.html">demo</a>. Vėlgi &#8211; truputėlis JS šen bei ten, truputėlis CSS ir ateitis bus šiandien.</p>
<h2><code>canvas</code>, <code>video</code> ir <code>audio</code> palaikymas</h2>
<p>Na, šitie trys žvėrys man šį savaitgalį, ir juo labiau eiliniam blog&#8217;ui, buvo visai neaktualūs, tačiau jie jau veikia bent dalyje naršyklių.</p>
<p>Turint omeny, kad iš dalies HTML5 yra kuriamas kaip standartas, dokumentuojantis jau egzistuojančią tinklo ir naršyklių būklę, tai <code>canvas</code> yra tas dalykas, kuris turi mažiausiai palaikymo problemų (neskaitant vienos, ghkhmz, naršyklės). <a href="http://ajaxian.com/">Ajaxian</a> vos ne kas antrą dieną paskelbią kokį nors naują demo su <code>canvas</code>. <a href="http://www.nihilogic.dk/labs/mario/mario_small_music.htm">Super Mario</a> žaidimas &#8211; sukurtas prieš daugiau nei metus! Aš ir pats dar užpernai naudojau vieną iš jQuery pluginų grafikų paišymui.</p>
<p>Su <code>video</code> problemos yra kur kas didesnės. Kas nors dar atsimenat, kaip prieš daug daug metų tekdavo vargti ieškant codec packų? Internete tai būtų visos &#8220;video be pluginų (skaityti: Flash)&#8221; idėjos žudikas. Safari palaiko Quick Time, Opera 10 ir Firefox &#8211; OGG Vorbis ir Theora, Chrome &#8211; OGG ir H.264, ir nei vieni, nei kiti neketina pasiduoti.</p>
<p>Kodekų problema yra iš esmės tai, kad dauguma jų yra uždari, apsaugoti patentų ir brangiai kainuoja. Tie, kurie yra atviri &#8211; netenkina kokybės reikalavimų (Google, kaip didžiausias video turinio teikėjas, nenori naudoti OGG, nes na interneto srautas yra brangus dalykas).</p>
<h2>Ateitis</h2>
<p>Kadangi <a href="http://www.w3.org/News/2009#item119">XHTML2 mirė</a>, tai HTML5 lieka vienintelis ateities standardas. Ir jis nors ir nėra tobulas, tačiau panašu, kad neketina sugriauti egzistuojančio interneto. Naršyklės pradeda jį po truputį palaikyti, tinklo kūrėjai taipogi jau turi galimybę juo naudotis. Kartais atrodo, kad jis gal ir nėra reikalingas &#8211; juk internetas veikia ir dabar, tačiau tikrasis postūmis bus tada, kai paieškos robotukai pradės labiau gerbti semantinį tinklą. Tai nutiks tik tuo atveju, jeigu HTML5 bus naudojamas jau dabar &#8211; nereikia laukti galutinės W3C rekomendacijos (juk ji bus tik tada, kai bus 2 pilnai įgyventintos realizacijos).</p>
<h2>Šaltiniai ir tolesnis skaitymas</h2>
<ul>
<li><a href="http://html5doctor.com/">HTML5 doctor</a></li>
<li><a href="http://remysharp.com/2009/01/07/html5-enabling-script/">HTML5 enabling script</a></li>
<li><a href="http://www.sitepoint.com/article/html-5-snapshot-2009/">Yes, You Can Use HTML 5 Today!</a></li>
<li><a href="http://blog.whatwg.org/">HTML5 darbo grupės blog&#8217;as</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.d-b.lt/2009/07/html5-naudoti-negalima-laukti.rss2.xml</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Atiduodu 50 eurų AdWords</title>
		<link>http://www.d-b.lt/2009/06/atiduodu-50-euru-adwords.html</link>
		<comments>http://www.d-b.lt/2009/06/atiduodu-50-euru-adwords.html#comments</comments>
		<pubDate>Mon, 15 Jun 2009 22:42:01 +0000</pubDate>
		<dc:creator>Dominykas</dc:creator>
				<category><![CDATA[Tinklo kūrimas]]></category>
		<category><![CDATA[adwords]]></category>

		<guid isPermaLink="false">http://www.d-b.lt/2009/06/atiduodu-50-euru-adwords.html</guid>
		<description><![CDATA[Taip jau nutiko, kad gyvenu Airijoje, o Google sugalvojo padaryti fantastišką promo, ir panašu, kad visiems Airijos ir Didžiosios Britanijos Analytics vartotojams padovanojo 100 eurų be įsipareigojimų. 50 jų ketinu panaudoti savo Piktiems Kėslams, o likusiems skelbiu konkursą, nes, na, taip įdomiau, o ir Piktų Kėslų ne tiek ir daug.
Taisyklės

Jūs arba rašot komentarą čia, arba [...]]]></description>
			<content:encoded><![CDATA[<p>Taip jau nutiko, kad gyvenu Airijoje, o Google sugalvojo padaryti fantastišką promo, ir panašu, kad visiems Airijos ir Didžiosios Britanijos Analytics vartotojams padovanojo 100 eurų be įsipareigojimų. 50 jų ketinu panaudoti savo Piktiems Kėslams, o likusiems skelbiu konkursą, nes, na, taip įdomiau, o ir Piktų Kėslų ne tiek ir daug.</p>
<h2>Taisyklės</h2>
<ol>
<li>Jūs arba rašot komentarą čia, arba rašot blog&#8217;ą (tik įsitikinkit, kad atėjo trackbackas, ar palikit komentarą &#8211; aš ne Džiugas &#8211; visos LT blogosferos neskaitau).</li>
<li>Sėkmingas pretendentas turėtų papasakoti:
<ol>
<li>Kokiam projektui reikalinga reklama (d&#8217;oh)</li>
<li>Kodėl tam projektui reikalinga reklama</li>
<li>Ką tas projektas darys su papildomu lankytoju srautu</li>
<li>Kaip projektas įvertins reklamos sėkmę</li>
</ol>
</li>
<li>Labai sėkmingas pretendentas taipogi galėtų papasakoti (jei drovisi &#8211; privačiai į hello prie dominykas taškas com):
<ol>
<li>Apie savo realius &#8220;konkurentus&#8221;</li>
<li>Apie raktažodžius</li>
<li>Apie landing puslapius</li>
<li>Apie dabartinę lankytojų statistiką</li>
<li>Apie tikslinę auditoriją</li>
</ol>
</li>
<li>Laimėtojas privalo sutikti su šiom sąlygom:
<ol>
<li>AdWords kampaniją valdysiu aš, per savo vartotoją</li>
<li>Aš turėsiu priėjimą prie visos statistikos (ar tai būtų Analytics, ar jei naudojat kokią kitą sistemą)</li>
<li>Visą projekto vertinimą (įskaitant kritiką) aš galiu paskelbti (o galiu ir nepaskelbti) čia, viešai</li>
<li>Kai būsiu Lietuvoje &#8211; nueisim alaus ar tai arbatos</li>
</ol>
</li>
<li>Reklamuojamas projektas jau turi būti pasiekiamas viešumoje &#8211; būsimos kampanijos vėliausia pabaigos data &#8211; už trijų mėnesių. Projektas taipogi turėtų būti realistiškas ir naudingas.</li>
<li>Už visa tai aš neimsiu jokio atlygio.
<ul>
<li>Jeigu jūsų projektas komercinis &#8211; tuo geriau jums &#8211; komerciniai projektai varžosi lygiomis teisėmis! Aš vistiek neimsiu atlygio.</li>
</ul>
</li>
<li>Visi kas nelaimės 50 eurų, vistiek yra laimėtojai, nes prie komentarų, o gal vėliau ir atskiru įrašu, bus sudėtos nuorodos į jų projektus. Galutinis sprendimas kam padovanosiu šiuos pinigus yra mano ir jokių pretenzijų nepriimu.</li>
<li>Sprendimą aš priimsiu birželio 29 vakare &#8211; jei nespėsit &#8211; patys kalti.</li>
</ol>
<p><del style="color:#999;"><strong>Pastaba.</strong> Google taisyklėse parašyta: &#8220;The promotional credit is non-transferable and may not be sold or bartered.&#8221; Parašiau jiems emeilą, ar galiu daryti taip, kaip čia viską išdėsčiau. <em>Neigiamo atsakymo atveju <strong>konkursas vistiek įvyks, o nugalėtojas gaus 50 eurų AdWords</strong></em> iš mano kišenės, o Piktiems Kėslams sunaudosiu visą voucherį. Tiesa, gali nutikti taip, kad jūsų kampaniją gali tekti pradėti jau po to, kai išleisiu tuos 100 eurų.</del> Gavau Google atsakymą:</p>
<blockquote><p>You can advertise third-party website through your account but you&#8217;ll have to abide by the AdWords advertising policies mentioned at: <a href="https://adwords.google.com/support/bin/static.py?page=guidelines.cs#links">https://adwords.google.com/support/bin/static.py?page=guidelines.cs#links</a></p>
</blockquote>
<h2>Pavyzdys</h2>
<p>Potencialus nugalėtojas, galėtų parašyti ką nors tokio:</p>
<blockquote><p>Sveikas Dominykai, aš esu Vardenis Pavardenis ir turiu projektą VažiuojamSuDviračiu.lt Projekto tikslas yra skatinti &#8220;žalesnį&#8221; miestą. Rugpjūčio pabaigoje su draugais organizuojame žygį, ir ieškome kuo daugiau jo dalyvių bei rėmėjų. Žygio pasiruošimo metu rašome blog&#8217;ą, taip pat kalbiname visuomenines organizacijas. Papildomi 50 eurų galėtų suteikti mums apie 500 papildomų lankytojų. Jeigu bent keli iš jų bus atsidavę gamtos mylėtojai &#8211; daug didesnis efektas bus tai, kad jie ne tik dalyvaus, bet galbūt ir pritrauks savo draugų, bei padės skleisti žodį plačiau.</p>
</blockquote>
<p>Sakyčiau paprasta?</p>
<p>PS baisiausia dalis rašant tokį įrašą yra tai, kad atsiliepimų taip ir nesulauksiu.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.d-b.lt/2009/06/atiduodu-50-euru-adwords.rss2.xml</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
	</channel>
</rss>
