<?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; geekiška filosofija</title>
	<atom:link href="http://www.d-b.lt/tag/geekiska-filosofija.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>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>5</slash:comments>
		</item>
		<item>
		<title>Noriu pastovios adresų ir turinio struktūros</title>
		<link>http://www.d-b.lt/2007/12/noriu-pastovios-adresu-ir-turinio-strukturos.html</link>
		<comments>http://www.d-b.lt/2007/12/noriu-pastovios-adresu-ir-turinio-strukturos.html#comments</comments>
		<pubDate>Mon, 10 Dec 2007 21:34:36 +0000</pubDate>
		<dc:creator>Dominykas</dc:creator>
				<category><![CDATA[Tinklo kūrimas]]></category>
		<category><![CDATA[blogo pradžia]]></category>
		<category><![CDATA[duplicate content]]></category>
		<category><![CDATA[geekiška filosofija]]></category>
		<category><![CDATA[seo]]></category>
		<category><![CDATA[url]]></category>

		<guid isPermaLink="false">http://www.d-b.lt/2007/12/noriu-pastovios-adresu-ir-turinio-strukturos.html</guid>
		<description><![CDATA[Praėjusiame įraše privėliau filosofijos apie URL prasmę iš web skaitytojo pozicijos. Senamadiško, techniško ir well&#8230; geekiško web skaitytojo pozicijos &#8211; iš esmės tai, ko aš tikiuosi iš adresų, kuriuos &#8220;sukuria&#8221; kiti. Šiame įraše dar keletas pastabų, kurių nedera pamiršti tinklapio administratoriui.
Renkantis turinio valdymo sistemą, visada dera įvertinti tai, kad ją reikės keisti. Štai WP nėra [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.d-b.lt/2007/12/noriu-padorios-adresu-strukturos.html">Praėjusiame įraše</a> privėliau filosofijos apie URL prasmę iš web skaitytojo pozicijos. Senamadiško, techniško ir <i>well</i>&#8230; geekiško web skaitytojo pozicijos &#8211; iš esmės tai, ko aš tikiuosi iš adresų, kuriuos &#8220;sukuria&#8221; kiti. Šiame įraše dar keletas pastabų, kurių nedera pamiršti tinklapio administratoriui.</p>
<p>Renkantis turinio valdymo sistemą, visada dera įvertinti tai, kad ją <strong>reikės keisti</strong>. Štai WP nėra pritaikytas PHP5 &#8211; ką jau bekalbėti apie PHP6, be to laikas nuo laiko išeina naujos jo versijos. Ir apskritai soft&#8217;as nėra amžinas &#8211; jo keitimas yra tiesiog garantuotas ilgalaikiu laikotarpiu. Tuo tarpu renkantis svetainės struktūrą reikėtų atsiminti, kad jos keitimas gali brangiai kainuoti. Renkantis adresų struktūrą visų svarbiausia įsidėmėti, kad jos keitimas užtruks ilgą laiką &#8211; tokio pragaro nelinkiu niekam.</p>
<h2>Robotams ir vartotojams</h2>
<p>Pirma adreso taisyklė SEO (einanti po nulinės &#8220;prikišk daug keywordų&#8221;) &#8211; jis neturėtų keistis ir idealiame pasaulyje turėtų būti amžinas. Jeigu jis pasikeitė &#8211; be abejo galima sudėlioti teisingus HTTP redirektus (301 Moved Permanently į naują adresą, vėliau laikui bėgant pakeisti į 410 Gone). Tačiau net su redirektais, adreso keitimas užsitraukia paieškos robotų nemalonę. Pavyzdys iš realybės: dar dabar kai kurie paieškos varikliai yra sucache&#8217;inę seno mano darbovietės puslapio variantą su ASP adresais ir nenori jo užmiršti. Keitimas įvyko prieš 2 metus. </p>
<p>Adreso pasikeitimas taipogi turi reikšmės tarp lankytojų &#8211; jų išsaugotos nuorodos pradingsta &#8211; nesvarbu ar tai buvo tiesiog browseryje, digg&#8217;e, del.ici.ous ar kaip.tikten.lt. Jeigu siekiate gero ir ilgalaikio rezultato &#8211; svetainės (ar blog&#8217;o) struktūra turėtų išlikti pastovi, net išėjus naujai PHP ar WordPress versijai, o tuo labiau pasikeitus pačiam administravimo įrankiui.</p>
<p>Dar viena SEO taisyklė yra &#8220;Vienas turinys &#8211; vienas adresas&#8221;. Google gana aiškiai yra išreiškusi savo poziciją apie <dfn title="Pasikartojantis turinys">duplicate content</dfn> &#8211; ir nors dažnai jis gali atsirasti &#8220;netyčia&#8221;, į tai reikia atsižvelgti ir bent pasistengti to vengti. WordPress iki 2.3 versijos leisdavo pasiekti tą patį įrašą bent 3-4 būdais. Nors dažniausiai tos nuorodos būdavo standartinės, tai mažų mažiausiai kėlė betvarkę &#8211; fui. Net nepaisant papildomos paieškos variklių <strike>nuobaudos</strike> &#8220;<a href="http://searchengineland.com/070315-100022.php">neįvertinimo</a>&#8221; pasikartojančiam turiniui, nesilaikant vieningos nuorodų struktūros prarandama dalis <i>link juice</i> &#8211; t.y. turinio (įrašo) reitingas padalinamas keliems adresams, o ne vienam.</p>
<h2>Tai ko aš nepatenkintas?</h2>
<p>WP 2.3 versija standartiškai stengiasi perkelti į <i>canonical</i> adresą &#8211; t.y. adresų taisyklė yra <i>enforce&#8217;inama</i>. Tačiau ar to pakanka? Naršant po kategorijas, archyvus, žymes ir kt. WP standartiškai rodo visą įrašo tekstą (nebent naudojama <i>more</i> žymė ir/arba papildomi nustatymai. Tai reiškia, kad <i>duplicate content</i> problema nėra išspręsta. Taipogi problematiška dalis yra puslapiavimas &#8211; įdėjus naują įrašą, viskas persislenka žemyn &#8211; tuo pačiu, tas pats turinys kuriam laikui atsiranda keliuose puslapiuose (bent laikinai &#8211; page/2, page/3). Viena bjauriausių situacijų su radinukais paieškoje būna kai ieškomas tekstas yra pvz. adrese forum.php?page=10 &#8211; tačiau kadangi virš ieškomo teksto jau žmonės yra papildomai ką nors parašę &#8211; tikrasis tekstas yra atsidūręs jau forum.php?page=12.</p>
<p>Paprasto sprendimo šiai problemai nėra, tačiau tiek kategorijos, tiek archyvai blog&#8217;e tėra rodyklės (<i>turinys, index, sugalvok savo žodį</i>) &#8211; todėl jie ir turėtų elgtis kaip tokie. Kadangi blog&#8217;as pagal savo <i>definitioną</i> yra chronologinis dalykas, manau, kad vienas iš mažiausiai kenksmingų variantų būtų rodyti kategorijos (tago) puslapyje kelis paskutinius įrašus, o toliau leisti browsinti pagal datą &#8211; jeigu kategorija (ar visas blogas) ganėtinai aktyvus &#8211; rodyti sakykim mėnesio įrašus, jeigu mažiau aktyvus &#8211; rodyti visus metų įrašus, taip atsikratant puslapiavimo poreikio, o tuo pačiu &#8211; niekam tikusių puslapiuotų adresų.</p>
<p>Adreso bei turinio pastovumas ir &#8220;patikimas&#8221; buvo dvi esminės problemos, kurios mane ilgiausiai stabdė paleidžiant savo blog&#8217;ą &#8211; norėjosi skirti pakankamai laiko apmąstymams ir šiaip dėsningumų įvertinimui tam, kad nesigailėčiau tada kai pradėsiu pasitikėti <a href="http://habariproject.org/">Habari</a>. Artimiausiame įraše &#8211; mano apsisprendimas dėl struktūros.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.d-b.lt/2007/12/noriu-pastovios-adresu-ir-turinio-strukturos.rss2.xml</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Noriu padorios adresų struktūros</title>
		<link>http://www.d-b.lt/2007/12/noriu-padorios-adresu-strukturos.html</link>
		<comments>http://www.d-b.lt/2007/12/noriu-padorios-adresu-strukturos.html#comments</comments>
		<pubDate>Fri, 07 Dec 2007 07:40:03 +0000</pubDate>
		<dc:creator>Dominykas</dc:creator>
				<category><![CDATA[Tinklo kūrimas]]></category>
		<category><![CDATA[blogo pradžia]]></category>
		<category><![CDATA[geekiška filosofija]]></category>
		<category><![CDATA[semantinis tinklas]]></category>
		<category><![CDATA[semantiškas tinklas]]></category>
		<category><![CDATA[url]]></category>

		<guid isPermaLink="false">http://www.d-b.lt/2007/12/noriu-padorios-adresu-strukturos.html</guid>
		<description><![CDATA[Renkantis bet kokią web turinio valdymo sistemą vienas iš pagrindinių klausimų yra jos pritaikomumas SEO. Kaip žinia, gana svarbus to faktorius yra URL optimizacija. Kas yra optimalus URL galima diskutuoti daug, tačiau mano asmeniniai kriterijai yra šie:

URL, kaip failų sistemos atspindys, reiškia failą
URL identifikuoja failo vietą &#8211; direktoriją, kurioje jis guli
URL identifikuoja failo turinį (failo [...]]]></description>
			<content:encoded><![CDATA[<p>Renkantis bet kokią web turinio valdymo sistemą vienas iš pagrindinių klausimų yra jos pritaikomumas SEO. Kaip žinia, gana svarbus to faktorius yra URL optimizacija. Kas yra optimalus URL galima diskutuoti daug, tačiau mano asmeniniai kriterijai yra šie:</p>
<ul>
<li>URL, kaip failų sistemos atspindys, reiškia failą</li>
<li>URL identifikuoja failo vietą &#8211; direktoriją, kurioje jis guli</li>
<li>URL identifikuoja failo turinį (failo pavadinimas &#8211; turinio pavadinimas)</li>
<li>URL identifikuoja failo tipą (pagal išplėtimą)</li>
<li>URL padeda indetifikuoti failo statiškumą/dinamiškumą</li>
</ul>
<h2>URL identifikuoja failą</h2>
<p>
Pati URL sąvoka reiškia būtent tai, kad jis yra <strong>nuoroda į kažkokį resursą</strong>. Jeigu kalbėti apie web svetaines &#8211; senų senovėje HTTP metodas GET reikšdavo &#8220;atsiųsk man šitą hipertekstinį failą, iš anos direktorijos, iš to serverio&#8221;. Tai be abejo tiko statiškam turiniui, ir atsiradus visokiai dinamikai tai nustojo šiek tiek galioti.
</p>
<h2>URL identifikuoja failo vietą</h2>
<p>
Aš esu per jaunas, kad atsiminti vienos dimensijos failų sistemas, nors ir teko naudotis santakomis, kurios užsikraudavo iš kasečių. Bet kuri padori <strong>failų sistema yra hierarchija</strong> suskirstyta į direktorijų medį, su failais juose. Bet kuri didesnė web svetainė taipogi turi savo struktūrą &#8211; dažniausiai užtenka elementaraus medžio. Kalbant apie blog&#8217;us &#8211; to pakanka.
</p>
<h2>URL identifikuoja failo turinį</h2>
<p>
Šitą principą jau seniai įsikando visi optimizuotojai ir dauguma turinio valdymo sistemų jam yra pritaikytos. Paprastais žodžiais kalbant &#8211; puslapio/įrašo <strong>turinys privalo sutapti su tuo, ką matome adrese</strong>, t.y. iš esmės su jo pavadinimu.
</p>
<h2>URL identifikuoja failo tipą</h2>
<p>
Žiūrint iš vartotojo pusės, jeigu adrese nesimato turinio formos &#8211; turinys gali būti pavojingas. Iš dalies, tai yra optinė apgaulė (hell &#8211; sandros papai ir panašūs virusai būtent remiasi tuo, kad vartotojas matydamas .jpg išplėtimą tikisi .jpg failo), tačiau aš visiškai nemėgstu spausti nuorodos ir ten netikėtai rasti PDF dokumentą. Ši taisyklė šiek tiek gadina reikalą, jeigu kalbame apie <i>mobile content</i>, nes priklausomai nuo aparato/naršyklės tenka keisti failo tipą (WML <-> cHTML, etc.), tačiau kol kas tą ketinu ignoruoti, nes pradžioje mano turinys vistiek nebus pritaikytas WAP&#8217;ui.
</p>
<h2>URL identifikuoja turinio statiškumą</h2>
<p>
Kaip jau minėjau aukščiau, atsiradus dinamiškam turiniui tinkle, šiek tiek nustojo galioti principas, kad URL rodo į failą. Mano nuomone, dinamiškumas turi būti atspindėtas <dfn title="paieškos parametrų eilutė?">query string</dfn> (elementariaus pavyzdys &#8211; paieškos filtras ir jo parametrai adrese). Jeigu kalbėti apie blog&#8217;us ir šiaip didžiąją dalį svetainių &#8211; <strong>turime gana statiškų resursų rinkinį</strong> (t.y. nekeičiančių savo prasmės ir turinio) &#8211; daug įrašų, kurie iš esmės tėra HTML failai, gulintys savo vietoje. Tam ir yra skirti <i>permalinks</i>.
</p>
<h2>URL ir SEO yra skirti žmogui</h2>
<p>
<a href="http://www.google.com/support/webmasters/bin/answer.py?hl=en&#038;answer=35769">Google savo nurodymuose</a> teigia, kad nereikėtų rūpintis puslapio optimizavimu robotams &#8211; reikia rūpintis vartotojais. Net jeigu dalis iš mano išvardintų reikalvimų adresui neturi jokios reikšmės paieškos robotams, jie yra svarbūs lankytojui. Gera nuoroda lengva dalintis, be to ji gerai atrodo ir <dfn title="Search Engine Results Page">SERP</dfn>. Šiuolaikiniame internete, paieškos robotai privalo prisitaikyti prie žmogaus ir prie internetinės realybės (t.y. didelio <i>bardako</i>), tačiau aš mėgstu tvarką ir prasmę. Adresas <code>/2007/12/noriu-padorios-adresu-strukturos.rss2.xml</code> man yra tiesiog malonesnis ir prasmingesnis už <code>/2007/12/noriu-padorios-adresu-strukturos/feed/</code> ar tuo labiau už <code>/index.php?p=4&#038;feed=rss2</code>
</p>
<p>Šiame įraše paminėjau tik esminius meta reikalavimus URL struktūrai &#8211; tačiau vien to geram adresui negana. Turint plačias galimybes, galima nesunkiai viską sugadinti, o be to žvelgiant iš SEO perspektyvos &#8211; yra ir keletas papildomų reikalavimų, kuriuos dera apžvelgti atskirai.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.d-b.lt/2007/12/noriu-padorios-adresu-strukturos.rss2.xml</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

