<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss 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" version="2.0">

<channel>
	<title>Pixel.lt</title>
	
	<link>http://pixel.lt</link>
	<description>Coding: priceless</description>
	<pubDate>Sat, 05 Jun 2010 09:12:58 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/Pixel" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="pixel" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><feedburner:emailServiceId xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">Pixel</feedburner:emailServiceId><feedburner:feedburnerHostname xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0">http://feedburner.google.com</feedburner:feedburnerHostname><item>
		<title>And we are back!</title>
		<link>http://pixel.lt/and-we-are-back.html</link>
		<comments>http://pixel.lt/and-we-are-back.html#comments</comments>
		<pubDate>Sat, 05 Jun 2010 09:05:24 +0000</pubDate>
		<dc:creator>asterisk</dc:creator>
		
		<category><![CDATA[Pixel.lt]]></category>

		<category><![CDATA[backup]]></category>

		<guid isPermaLink="false">http://pixel.lt/?p=710</guid>
		<description><![CDATA[HI! :)
Po šiokių tokių nuotykiu su susvilusiu hdd pavyko atrasti seną backupą. Gaila, bet viena įmonė prižadėjusi atstatyti duomenis, kažkodėl apskritai pasisavino hdd. Galbūt kurią nors dieną pavyks atgauti ir likusią dalį duomenų, tačiau kolkas teks pasitenkinti 2008-09-26 @ 19:06 padarytu backup&#8216;u :)
Mokykitės iš klaidų - dažniau darykit duomenų kopijas ir viskas bus čiki piki. [...]]]></description>
			<content:encoded><![CDATA[<p>HI! :)<br />
Po šiokių tokių nuotykiu su susvilusiu hdd pavyko atrasti seną <a href="http://pixel.lt/tag/backup" class="st_tag internal_tag" rel="tag" title="Posts tagged with backup">backup</a>ą. Gaila, bet <a href="http://bgm.lt" target="_blank">viena įmonė</a> prižadėjusi atstatyti duomenis, kažkodėl apskritai pasisavino hdd. Galbūt kurią nors dieną pavyks atgauti ir likusią dalį duomenų, tačiau kolkas teks pasitenkinti 2008-09-26 @ 19:06 padarytu <a href="http://pixel.lt/tag/backup" class="st_tag internal_tag" rel="tag" title="Posts tagged with backup">backup</a>&#8216;u :)</p>
<p>Mokykitės iš klaidų - dažniau darykit duomenų kopijas ir viskas bus čiki piki. O ta proga, gal kas nori kokiu nors straipsniuku pasidalinti? :)</p>

	Gairės: <a href="http://pixel.lt/tag/backup" title="backup" rel="tag">backup</a>, <a href="http://pixel.lt/tag/pixellt" title="Pixel.lt" rel="tag">Pixel.lt</a>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Pixel?a=ofxbgzO9iB8:f8MvE-K-4rY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Pixel?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Pixel/~4/ofxbgzO9iB8" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pixel.lt/and-we-are-back.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>ROLF LMAO… LOL MAN LOL</title>
		<link>http://pixel.lt/rolf-lmao-lol-man-lol.html</link>
		<comments>http://pixel.lt/rolf-lmao-lol-man-lol.html#comments</comments>
		<pubDate>Sun, 01 Jun 2008 11:05:22 +0000</pubDate>
		<dc:creator>NePo</dc:creator>
		
		<category><![CDATA[Kita]]></category>

		<category><![CDATA[lolcode]]></category>

		<guid isPermaLink="false">http://pixel.lt/?p=703</guid>
		<description><![CDATA[LOL MAN niekada negalvojau, kad pasakysiu tokius žodžius ir dar šitame puslapyje, bet vis dėl to LOL. Tačiau šiandien Pixel.lt gimtadienis ir mes darom tai ką norim. Lygiai prieš du metus buvo publikuotas pirmasis mano straipnis nuo kurio ir prasidėjo Pixel.lt žygis į žvaigždes. Nubraukiam ašarą, vis tik daug laiko praėjo&#8230;
O dabar pereikime prie labai [...]]]></description>
			<content:encoded><![CDATA[<p><strong>LOL MAN</strong> niekada negalvojau, kad pasakysiu tokius žodžius ir dar šitame puslapyje, bet vis dėl to LOL. Tačiau šiandien <a href="http://pixel.lt/tag/pixellt" class="st_tag internal_tag" rel="tag" title="Posts tagged with Pixel.lt">Pixel.lt</a> gimtadienis ir mes darom tai ką norim. Lygiai prieš du metus buvo publikuotas <a href="http://pixel.lt/kas-skaito-jusu-pasta.html" target="_blank" title="Kas skaito jūsų paštą">pirmasis mano straipnis</a> nuo kurio ir prasidėjo <a href="http://pixel.lt/tag/pixellt" class="st_tag internal_tag" rel="tag" title="Posts tagged with Pixel.lt">Pixel.lt</a> žygis į žvaigždes. Nubraukiam ašarą, vis tik daug laiko praėjo&#8230;<br />
O dabar pereikime prie labai rimto straipsnio apie programavimo kalbą. Kokią kalbą? <a href="http://pixel.lt/tag/lolcode" class="st_tag internal_tag" rel="tag" title="Posts tagged with lolcode">LOLCODE</a>, jeigu neteko girdėti, tai kaip tik bus puiki proga susipažinti.</p>
<p>Idėja sukurti <a href="http://pixel.lt/tag/lolcode" class="st_tag internal_tag" rel="tag" title="Posts tagged with lolcode">LOLCODE</a> gimė, 2006 metų gale, pats jos kūrimo pikas vyko lygiai prieš metus 2007 metų birželio - liepos mėnesiais. Po to jos kūrimas aprimo. Tai tiek istorijos, kadangi pats puslapis jos gaili, o aš išgalvoti negaliu, tai iš karto pereisime prie kodo rašymo.</p>
<p><a href="http://pixel.lt/tag/lolcode" class="st_tag internal_tag" rel="tag" title="Posts tagged with lolcode">LOLCODE</a> įdomi, tuo kad galima rasti daug skirtingų realizacijų, aš atkreipiau dėmesį į <a href="http://www.fordi.org/lulz/">javascript</a>, <a href="http://www.tetraboy.com/lolcode/">PHP</a> ir <a href="http://code.google.com/p/lolcode-dot-net/downloads/list?can=1&#038;q=&#038;colspec=Filename+Summary+Uploaded+Size+DownloadCount">.NET</a>. Kadangi visos implementacijos šiek tiek skiriasi, tai toliau visus pavyzdžius rašysiu ant .NET, kas reiškia, kad tie pavyzdžiai gali neveikti kitose interpretatoriuose.</p>
<p>Turbūt netempiant ilgai gumos iškarto pateiksiu kodo pavyzdį.</p>
<pre>
HAI
CAN HAS STDIO?
	VISIBLE "HPPY BRDEI PIXEL"!
KTHXBYE
</pre>
<p>Paprastai aš nerašau &#8220;Hello World&#8221; tipo programų, bet šiuo atveju tai geriausia nuo ko galėjau pradėti. Taigi truputi apie gramatiką: <strong>HAI</strong> - pažymi programos pradžią, o <strong>KTHXBYE</strong> - atitinkamai pabaigą. <strong>CAN HAS STDIO?</strong> įtraukia stdio biblioteką. Šias tris eilutes matysite visose programuose. <strong>VISIBLE</strong> - išveda kodą į ekraną. Čia idomioji dalis, mano atveju kodas išvedamas konsolės lange, visai kas kitą jeigu jūs pasirinksite <a href="http://pixel.lt/tag/php" class="st_tag internal_tag" rel="tag" title="Posts tagged with PHP">PHP</a> interpretatoriaus versiją. Žinot, šitą kalbą turėtų dėstyti universitetuose.</p>
<p>Pereikime prie sudėtingesnio pavyzdžio.</p>
<pre>
HAI
CAN HAS STDIO?
I HAS A VAR
IM IN YR LOOP
	UPZ VAR!!1
	VISIBLE VAR
	IZ VAR BIGR THAN 10? ENUF.KTHX

KTHX
KTHXBYE
</pre>
<p>Ši programa išveda skaičius nuo vieno iki 10 ekrane. Pirmiausiai ką mes matome tai kintamųjų deklaravimas <strong>I HAS A</strong>, VAR - kintamojo pavadinimas. Toliau eina ciklas - <strong>IM IN YR</strong>, o LOOP yra ciklo pavadinimas. <strong>UPZ</strong> reiškia padidinti kintamąjį vienetu ir pirskirti jam reikšmę. <strong>IZ</strong> atitinka if salygą, o <strong>BIGR</strong> ženklą daugiau. Neesu tikras, bet rodos ENUF yra specifinis dalykas būtent .NET realizacijoje, nes visur yra parašyta GTFO kas atitinka programavimo teiginį GO TO, kokia gi kalba be GO TO? <strong>KTHX</strong> yra break funkcija, kuri leidžia pabėgti iš ciklo.</p>
<p>Norėtumėte interaktyvesnės programos?</p>
<pre>
HAI
CAN HAS STDIO?
I HAS A VAR
VISIBLE "Nter nmber"!
GIMMEH VAR
VISIBLE "You said "! VISIBLE VAR!
KTHXBYE
</pre>
<p>Ši programa paprašo įvesti jūsų infroamciją ir ją atvaizduoja ekrane. Šiuo atveju matote tik vieną naują komandą <strong>GIMMEH</strong>, kuri priima jūsų įvestas reikšmes.</p>
<p>Dar galėčiau paminėti vieną dalyka <strong>BTW</strong> komentarų žymė. Ar galima padaryti kokią nors prasmingą programą? Teoriškai aš galiu užrašyti įvairius uždavinius, deja mano pasirinkta .NET realizacija tokiu dalykų neleidžia. </p>
<p>Daugiau informacijos ieškokite <a href="http://lolcode.com/">oficialiame puslapyje</a>.</p>
<p>KTHXBYE</p>

	Gairės: <a href="http://pixel.lt/tag/lolcode" title="lolcode" rel="tag">lolcode</a>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Pixel?a=K0DMCB14"><img src="http://feeds.feedburner.com/~f/Pixel?d=41" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Pixel/~4/_cr9Uhv7BDk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pixel.lt/rolf-lmao-lol-man-lol.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Pixel.lt - 2 metai!</title>
		<link>http://pixel.lt/pixellt-2-metai.html</link>
		<comments>http://pixel.lt/pixellt-2-metai.html#comments</comments>
		<pubDate>Sun, 01 Jun 2008 06:57:33 +0000</pubDate>
		<dc:creator>asterisk</dc:creator>
		
		<category><![CDATA[Pixel.lt]]></category>

		<guid isPermaLink="false">http://pixel.lt/?p=704</guid>
		<description><![CDATA[Sveiki,
antrus metus iš eilės džiaugiuosi galėdamas pranešti, jog šiandien yra Pixel.lt projekto gimtadienis! Jam suėjo 2 metukai. Į sentimentalius dalykus nenukrypsiu ir tiesiog ta proga pateiksiu šiek tiek metinės statistikos:
Pixel.lt šiemet negavo apdovanojimo blogerių konferencijoje, tačiau buvo jame nominuotas ir neoficialiomis žiniomis užėmė 2 vietą technologijų tinklaraščių kategorijoje.
Šiais metais publikuota 133 įrašai (šiek tiek mažiau [...]]]></description>
			<content:encoded><![CDATA[<p>Sveiki,<br />
antrus metus iš eilės džiaugiuosi galėdamas pranešti, jog šiandien yra <a href="http://pixel.lt/tag/pixellt" class="st_tag internal_tag" rel="tag" title="Posts tagged with Pixel.lt">Pixel.lt</a> projekto gimtadienis! Jam suėjo 2 metukai. Į sentimentalius dalykus nenukrypsiu ir tiesiog ta proga pateiksiu šiek tiek metinės statistikos:<br />
<a href="http://pixel.lt/tag/pixellt" class="st_tag internal_tag" rel="tag" title="Posts tagged with Pixel.lt">Pixel.lt</a> šiemet negavo apdovanojimo blogerių konferencijoje, tačiau buvo jame nominuotas ir neoficialiomis žiniomis užėmė 2 vietą technologijų tinklaraščių kategorijoje.<br />
Šiais metais publikuota 133 įrašai (šiek tiek mažiau negu pernai), sulaukti 1008 komentarai (kur kas daugiau negu pernai).<br />
Taip pat šiais metais buvo surengtas Microsoft ir <a href="http://pixel.lt/tag/pixellt" class="st_tag internal_tag" rel="tag" title="Posts tagged with Pixel.lt">Pixel.lt</a> konkursas, kurio metu išdalinta daugybė prizų, bei parašyta daugybė straipsnių.</p>
<p>P.s. tikimės, jog šie metai bus dar geresni, daugiau kokybiškų straipsnių, konkursų, komentarų, projektų ir kito gėrio. Nepamirškite, jog prie <a href="http://pixel.lt/tag/pixellt" class="st_tag internal_tag" rel="tag" title="Posts tagged with Pixel.lt">Pixel.lt</a> prisidėti gali visi norintys, tiesiog prisiregistruokite ir parašykite straipsnį arba savo idėjas galite pasidalinti el. paštu info@<a href="http://pixel.lt/tag/pixellt" class="st_tag internal_tag" rel="tag" title="Posts tagged with Pixel.lt">pixel.lt</a></p>
<p>Ačiū žmonėms, kurie pasidalino savo mintis rašydami.<br />
Ačiū mūsų nuostabiajai redaktorei, kuri netingi taisyti mūsų rašliavas. :)<br />
<strong>Na Ir žinoma ačiū JUMS!</p>
<p>Su gimtadieniu!</strong></p>

	Gairės: <a href="http://pixel.lt/tag/pixellt" title="Pixel.lt" rel="tag">Pixel.lt</a>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Pixel?a=HYhtU5cI"><img src="http://feeds.feedburner.com/~f/Pixel?d=41" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Pixel/~4/Ft8xRrGuw1E" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pixel.lt/pixellt-2-metai.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Skaitiniai #56</title>
		<link>http://pixel.lt/skaitiniai-56.html</link>
		<comments>http://pixel.lt/skaitiniai-56.html#comments</comments>
		<pubDate>Sat, 31 May 2008 09:28:58 +0000</pubDate>
		<dc:creator>asterisk</dc:creator>
		
		<category><![CDATA[Kita]]></category>

		<category><![CDATA[Skaitiniai]]></category>

		<guid isPermaLink="false">http://pixel.lt/?p=705</guid>
		<description><![CDATA[Su saulėtu ir šiltu savaitgaliu!
Trumpai ir aiškiai - šį savaitgalį skaitykite:
XHTML is a joke
Beyond CAPTCHA: No Bots Allowed! [Privacy and Trust]
Effectively Using Git With Subversion
The Official Successful Website Checklist Challenge
Gero savaitgalio!

	Gairės: Skaitiniai
]]></description>
			<content:encoded><![CDATA[<p>Su saulėtu ir šiltu savaitgaliu!<br />
Trumpai ir aiškiai - šį savaitgalį skaitykite:<br />
<a href="http://www.debuggable.com/posts/xhtml-is-a-joke:4819bf98-4978-4027-896e-2ea44834cda3" target="_blank" title="XHTML is a joke">XHTML is a joke</a><br />
<a href="http://www.sitepoint.com/article/captcha-problems-alternatives/" target="_blank" title="Beyond CAPTCHA: No Bots Allowed! [Privacy and Trust]">Beyond CAPTCHA: No Bots Allowed! [Privacy and Trust]</a><br />
<a href="http://www.viget.com/extend/effectively-using-git-with-subversion/" target="_blank" title="Effectively Using Git With Subversion">Effectively Using Git With Subversion</a><br />
<a href="http://www.chromaticsites.com/web-design-blog/2008-05-26/the-official-successful-website-checklist-challenge/" target="_blank" title="The Official Successful Website Checklist Challenge">The Official Successful Website Checklist Challenge</a></p>
<p>Gero savaitgalio!</p>

	Gairės: <a href="http://pixel.lt/tag/skaitiniai" title="Skaitiniai" rel="tag">Skaitiniai</a>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Pixel?a=cXDu4Duj"><img src="http://feeds.feedburner.com/~f/Pixel?d=41" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Pixel/~4/JY8TQLeLLoQ" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pixel.lt/skaitiniai-56.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>ZOOMcreative™ - vieta specialistams</title>
		<link>http://pixel.lt/zoomcreative-vieta-specialistams.html</link>
		<comments>http://pixel.lt/zoomcreative-vieta-specialistams.html#comments</comments>
		<pubDate>Wed, 28 May 2008 08:03:36 +0000</pubDate>
		<dc:creator>NePo</dc:creator>
		
		<category><![CDATA[Darbas]]></category>

		<category><![CDATA[PHP]]></category>

		<category><![CDATA[zoomcreative]]></category>

		<guid isPermaLink="false">http://pixel.lt/?p=701</guid>
		<description><![CDATA[ Nepatinka eiti įprastu keliu? ZOOMcreative™ propaguoja unikalų požiūrį į darbą su tavimi. Siekiame dirbti su geriausiais. Sieki to paties? Turėtum:
- puikiai išmanyti PHP, MySQL, JavaScript, XHTML;
- būti susipažinęs su šiandiena taikomais e-sprendimais;
- gyventi Kaune;
- norėti uždirbti daugiau nei 3000 Lt/mėn.
- siekti aukštos (savo) gyvenimo kokybės.
cv@zoomcreative.lt
www.zoomcreative.lt

	Gairės: Darbas, PHP, zoomcreative
]]></description>
			<content:encoded><![CDATA[<p><a href='http://www.zoomcreative.lt'><img src="http://pixel.lt/wp-content/uploads/2008/05/zoom_logo.gif" alt="" title="zoom_logo" height="110" align="left"/></a> Nepatinka eiti įprastu keliu? <a href="http://pixel.lt/tag/zoomcreative" class="st_tag internal_tag" rel="tag" title="Posts tagged with zoomcreative">ZOOMcreative</a>™ propaguoja unikalų požiūrį į darbą su tavimi. Siekiame dirbti su geriausiais. Sieki to paties? Turėtum:</p>
<p>- puikiai išmanyti <a href="http://pixel.lt/tag/php" class="st_tag internal_tag" rel="tag" title="Posts tagged with PHP">PHP</a>, <a href="http://pixel.lt/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">MySQL</a>, JavaScript, XHTML;<br />
- būti susipažinęs su šiandiena taikomais e-sprendimais;<br />
- gyventi Kaune;<br />
- norėti uždirbti daugiau nei 3000 Lt/mėn.<br />
- siekti aukštos (savo) gyvenimo kokybės.</p>
<p><a href="mailto:cv@zoomcreative.lt">cv@zoomcreative.lt</a><br />
<a href="http://www.zoomcreative.lt" target="_blank" title="www.zoomcreative.lt">www.zoomcreative.lt</a></p>

	Gairės: <a href="http://pixel.lt/tag/darbas" title="Darbas" rel="tag">Darbas</a>, <a href="http://pixel.lt/tag/php" title="PHP" rel="tag">PHP</a>, <a href="http://pixel.lt/tag/zoomcreative" title="zoomcreative" rel="tag">zoomcreative</a>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Pixel?a=S7zK2JlC"><img src="http://feeds.feedburner.com/~f/Pixel?d=41" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Pixel/~4/sFr4TTPdAjU" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pixel.lt/zoomcreative-vieta-specialistams.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Papimpink savo… Arba kaip mes kūrėme Youtube…</title>
		<link>http://pixel.lt/papimpink-savo-arba-kaip-mes-kureme-youtube.html</link>
		<comments>http://pixel.lt/papimpink-savo-arba-kaip-mes-kureme-youtube.html#comments</comments>
		<pubDate>Mon, 19 May 2008 10:38:08 +0000</pubDate>
		<dc:creator>NePo</dc:creator>
		
		<category><![CDATA[.NET]]></category>

		<category><![CDATA[Kita]]></category>

		<category><![CDATA[Silverlight]]></category>

		<guid isPermaLink="false">http://pixel.lt/?p=700</guid>
		<description><![CDATA[Antrasis .Net grupės susitikimas įvyko gegužės 14, tradiciškai Reval Hotel Lietuva viešbutyje. Buvo du pranešėjai, vienas jų - grupės iniciatorius Sergejus.
Kaip ir buvo skelbta, konferencija prasidėjo 17 valandą. Sergejus pasidžiaugė, jog didžioji dalis žmonių yra nauji ir nedalyvavę pirmojoje konferencijoje. Aš ne taip optimistiškai interpretuočiau šį faktą: tiems, kurie buvo pirmoje konferencijoje, ji taip nepatiko, [...]]]></description>
			<content:encoded><![CDATA[<p>Antrasis .Net grupės susitikimas įvyko gegužės 14, tradiciškai Reval Hotel Lietuva viešbutyje. Buvo du pranešėjai, vienas jų - grupės iniciatorius <a href="http://sergejus.blogas.lt/" target="_blank" title="Sergejus">Sergejus</a>.</p>
<p>Kaip ir buvo skelbta, <a href="http://pixel.lt/tag/konferencija" class="st_tag internal_tag" rel="tag" title="Posts tagged with konferencija">konferencija</a> prasidėjo 17 valandą. Sergejus pasidžiaugė, jog didžioji dalis žmonių yra nauji ir nedalyvavę pirmojoje konferencijoje. Aš ne taip optimistiškai interpretuočiau šį faktą: tiems, kurie buvo pirmoje konferencijoje, ji taip nepatiko, kad į antrą net nesiregistravo&#8230;<br />
Kita vertus, 30 iš 40 konferencijos vietų buvo užimtos praėjus dviems valandoms, nuo paskelbimo apie registraciją, tai visai tikėtina, kad dalis žmonių tiesiog nespėjo sureaguoti. Kaip sakant, tų kurie ilgai kompiliuoja niekas nelaukia.<br />
Pirmąją temą - dinaminis tinklalapių kūrimas su <a href="http://pixel.lt/tag/silverlight" class="st_tag internal_tag" rel="tag" title="Posts tagged with Silverlight">Silverlight</a> pristatė <a href="http://pixel.lt/author/sergejus" target="_blank" title="Sergejus">Sergejus</a>. Jis perspėjo visus, jog tai tos pačios skaidrės, kurias pristatinėjo MIDI konferencijoje, tiesa, ten jos vadinosi &#8220;Papimpink savo tinklalapį su <a href="http://pixel.lt/tag/silverlight" class="st_tag internal_tag" rel="tag" title="Posts tagged with Silverlight">Silverlight</a>&#8220;.<br />
Kas yra <a href="http://pixel.lt/tag/silverlight" class="st_tag internal_tag" rel="tag" title="Posts tagged with Silverlight">Silverlight</a>? Originalus apibūdinimas paimtas iš <a href="http://en.wikipedia.org/wiki/Microsoft_Silverlight" target="_blank" title="Microsoft Silverlight">Wikipedia</a>:</p>
<pre>
Microsoft <a href="http://pixel.lt/tag/silverlight" class="st_tag internal_tag" rel="tag" title="Posts tagged with Silverlight">Silverlight</a> is a web browser plugin that provides support for rich internet applications such as animation, vector graphics and audio-video playback.
</pre>
<p>Kažką primena? Galbūt Flash?<br />
Tačiau kaip teigė Sergejus, tai daugiau negu Flash. Jau vien dėl to, kad logika programuoja .NET platformoje, reiškia, kad jūs galite logiką kurti su C#, Visual Basic, IronRuby, IronPython (ir galbūt IronPhp?). O gražius vaizdus galima atvaizduoti su WPF (Windows Presentation Foundation) <del datetime="2008-05-24T12:45:22+00:00">WMF (windows media foundation)</del>. Be to, šis Microsoft produktas veikia ant daugelio standartinių OS (Windows, Mac, Linux), o taip pat ant Windows mobile bei artimiausioje ateityje ant Symbian OS. Taip pat palaiko ne tik Internet Explorer, Firefox, Opera, Safari, bet ir Konqueror ir daugelį kitų.<br />
O sakyti, kad .NET programuotojų yra gerokai daugiau nei Flash, turbūt neverta, juk mes čia ne propagandą varom.<br />
Viską susumavus, <a href="http://pixel.lt/tag/silverlight" class="st_tag internal_tag" rel="tag" title="Posts tagged with Silverlight">Silverlight</a> laukia gražios perspektyvos.<br />
Tiesa, yra ir keletas trūkumų, šiuo metu naujausioje versijoje Silverlight2beta1 nėra iškrentančio meniu (DropList).<br />
Po trumpos įžangos Sergejus pateikė labai praktišką pavyzdį, kuris pakerėjo mane. Turbūt nereikia aiškinti kaip atrodo teksto įvedimo laukas, jeigu kas nors nežinote, tai pelės žymekliu užeikite ant šliužtės esančios dešinėje pusėje ir slenkamuoju pelės judesiu nutraukite ją žemyn iki komentarų formos. O dabar įsivaizduokite, kad komentarų formos fone paleidžiate kokį nors video. Tiems, kurie buvo konferencijoje įsivaizduoti nereikia, nes jie matė tai realiai. Aišku jūs paklausite manęs, kas tokio praktiško šitame pavyzdyje, aš, žinoma, atsakysiu - pagalvokite apie ateities reklamas. Reklamos efektyvios, tiek kiek jas pamato vartotojai, o kur geriau dėti reklamą, jeigu ne į komentarų formos foną?<br />
Vėliau tą įvedimo lauką Sergejus patobulino priversdamas jį suktis. Na kokia nauda iš besisukančio teksto įvedimo lauko, net jeigu ir gali įvedinėti tekstą, man visiškai neaišku. Bet gražu.<br />
Antrajame pavyzdyje mes kūrėme video pateikimo puslapį, kurio pagrindinės funkcijos: kairėje pusėje 10 atsitiktinių video failų, dešinėje video peržiūra ir paieška.<br />
<img src="http://www.blogas.lt/uploads/s/seriog/193760.png" alt="video" width="500"/><br />
Detalų paaiškinimą kaip sukurti tokį puslapį galite rasti Sergejaus puslapyje (<a href="http://sergejus.blogas.lt/368511/ivadas-i-silverlight-20--1-dalis.html" target="_blank" title="ivadas-i-silverlight-20--1-dalis">1</a>,<a href="http://sergejus.blogas.lt/368959/ivadas-i-silverlight-20--2-dalis.html" target="_blank" title="ivadas-i-silverlight-20--2-dalis">2</a>,<a href="http://sergejus.blogas.lt/372104/ivadas-i-silverlight-20--3-dalis.html" target="_blank" title="ivadas-i-silverlight-20--3-dalis">3</a>,<a href="http://sergejus.blogas.lt/373086/ivadas-i-silverlight-20--4-dalis.html" target="_blank" title="ivadas-i-silverlight-20--4-dalis">4</a>,<a href="http://sergejus.blogas.lt/375004/ivadas-i-silverlight-20--5-dalis.html" target="_blank" title="ivadas-i-silverlight-20--5-dalis">5</a>,<a href="http://sergejus.blogas.lt/375773/ivadas-i-silverlight-20--6-dalis.html" target="_blank" title="ivadas-i-silverlight-20--6-dalis">6</a>,<a href="http://sergejus.blogas.lt/376758/ivadas-i-silverlight-20--7-dalis.html" target="_blank" title="ivadas-i-silverlight-20--7-dalis">7</a> dalys).</p>
<p>Antrąją temą pristatinėjo Donatas Mažionis <del datetime="2008-05-20T06:45:22+00:00">Mačionis</del> ir ji vadinosi WCSF. Aišku į WCSF jūs man greičiausiai atsakytumėte WTF. Taigi tikrasis temos pavadinimas buvo Įvadas į Web Client Software Factory.<br />
WCSF yra geriausių praktikų ir šablonų rinkinys, kuris padeda greičiau atlikti standartinius sprendimus, automatizuodamas kodo generavimą. Vienas didelis privalumas, kad kartu jis sugeneruoja ir Unit testus. Deja, jis nėra vaistas nuo visų ligų, geriausiai tinka Krioklio (Waterfall) modeliui, ar šiais laikais kas nors programuoja tokiu modeliu (apie bakalaurinių ir magistrinių darymą universitetuose aš nekalbu)?<br />
Šis pristatymas atrodė kiek trumpesnis. Donatas priešingai nei Sergejus nerašė kodo kartu su visais, tiesiog parodė sukurtos programos pavyzdį ir jį paaiškino. Didžiausiu tokio pristatymo trūkumu aš laikyčiau, jog paskui pasidaro neaišku, kokį kodą WCSF sugeneruoja automatiškai, o kokį tenka pasirašyti pačiam. </p>
<p>Apibendrinus galima pasakyti, kad renginys labai šaunus ir nekantriai lauksim trečio. Tuo tarpu <a href="http://dotnetgroup.lt/post/Pasibaigus-antram-Lietuvos-NET-vartotoju-grupes-susitikimui.aspx" target="_blank" title="Pasibaigus-antram-Lietuvos-NET-vartotoju-grupes-susitikimui">organizatoriai</a> nori paprašyti visų, pasiūlyti kokias temas norėtų išgirsti, o galbūt ir patys paskaityti. Todėl nesvarbu jūs buvote ar ne būtinai <a href="http://dotnetgroup.lt/post/Pasibaigus-antram-Lietuvos-NET-vartotoju-grupes-susitikimui.aspx" target="_blank" title="Pasibaigus-antram-Lietuvos-NET-vartotoju-grupes-susitikimui">pareikškite savo pageidavimus čia</a>. Tuo tarpu aš tikiuosi, kad .NET bendruomenė suaktyvės ir norės pasidalinti savo patirtimi su kitais - <a href="http://pixel.lt/tag/pixellt" class="st_tag internal_tag" rel="tag" title="Posts tagged with Pixel.lt">Pixel.lt</a> tam labai patogi vieta: labai paprasta prisiregistruoti, patogus teksto redaktorius, (ilgą kodą galima talpinti į <a href="http://www.paste.lt/" target="_blank" title="paste.lt">paste.lt</a>), o mūsų redaktorė ištaiso gramatines klaidas. </p>
<p>Konferencijos medžiagos <a href="http://dotnetgroup.lt/post/Antrasis-Lietuvos-NET-vartotoju-grupes-susitikims---skaidres.aspx" target="_blank" title="/Antrasis-Lietuvos-NET-vartotoju-grupes-susitikims---skaidres">ieškokite čia</a>.</p>

	Gairės: <a href="http://pixel.lt/tag/net" title=".NET" rel="tag">.NET</a>, <a href="http://pixel.lt/tag/silverlight" title="Silverlight" rel="tag">Silverlight</a>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~f/Pixel?a=Vab9acPw"><img src="http://feeds.feedburner.com/~f/Pixel?d=41" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Pixel/~4/-Q0KN3qMnxk" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pixel.lt/papimpink-savo-arba-kaip-mes-kureme-youtube.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Skaitiniai #55</title>
		<link>http://pixel.lt/skaitiniai-55.html</link>
		<comments>http://pixel.lt/skaitiniai-55.html#comments</comments>
		<pubDate>Sat, 03 May 2008 10:57:22 +0000</pubDate>
		<dc:creator>asterisk</dc:creator>
		
		<category><![CDATA[Skaitiniai]]></category>

		<guid isPermaLink="false">http://pixel.lt/?p=696</guid>
		<description><![CDATA[Skaitiniai is back!
Per girias, jūras ir ilguosius savaitgalius atžygiavo 55-ieji skaitiniai. Be didesnių ceremonijų pateikiu juos:
Opera Developer Community: Stop using Ajax!
Vileworks: Using captcha without displaying it
IBM developerWorks: Build a customizable RSS feed aggregator in PHP
Making The Web: Choosing Optimal MySQL Data Types
A List Apart: Getting Started with Ruby on Rails
A List Apart: Creating More Using [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://pixel.lt/tag/skaitiniai" class="st_tag internal_tag" rel="tag" title="Posts tagged with Skaitiniai">Skaitiniai</a> is back!<br />
Per girias, jūras ir ilguosius savaitgalius atžygiavo 55-ieji <a href="http://pixel.lt/tag/skaitiniai" class="st_tag internal_tag" rel="tag" title="Posts tagged with Skaitiniai">skaitiniai</a>. Be didesnių ceremonijų pateikiu juos:<br />
<a href="http://dev.opera.com/articles/view/stop-using-ajax/" target="_blank" title="Opera Developer Community: Stop using Ajax!">Opera Developer Community: Stop using Ajax!</a><br />
<a href="http://www.vileworks.com/blog/37-blog/58-using-captcha-without-displaying-it.html" target="_blank" title="Vileworks: Using captcha without displaying it">Vileworks: Using captcha without displaying it</a><br />
<a href="http://www.ibm.com/developerworks/library/wa-aj-rssphp/index.html?S_TACT=105AGX44&#038;S_CMP=EDU" target="_blank" title="IBM developerWorks: Build a customizable RSS feed aggregator in PHP">IBM developerWorks: Build a customizable RSS feed aggregator in PHP</a><br />
<a href="http://making-the-web.com/2008/04/27/choosing-optimal-mysql-data-types/" target="_blank" title="Making The Web: Choosing Optimal MySQL Data Types">Making The Web: Choosing Optimal MySQL Data Types</a><br />
<a href="http://www.alistapart.com/articles/gettingstartedwithrubyonrails" target="_blank" title="Getting Started with Ruby on Rails">A List Apart: Getting Started with Ruby on Rails</a><br />
<a href="http://www.alistapart.com/articles/creatingmoreusinglesseffortwithrubyonrails" target="_blank" title="Creating More Using Less Effort with Ruby on Rails">A List Apart: Creating More Using Less Effort with Ruby on Rails</a><br />
<a href="http://www.cssnewbie.com/using-definition-lists-question-answer-formatting/" target="_blank" title="CSSnewbie: Using Definition Lists: Question &#038; Answer formatting">CSSnewbie: Using Definition Lists: Question &#038; Answer formatting</a></p>
<p>Gero savaitgalio ir <a href="http://www.shutdownday.org/" target="_blank" title="Shutdown day">išjunkit kompiuterius</a>!</p>

	Gairės: <a href="http://pixel.lt/tag/skaitiniai" title="Skaitiniai" rel="tag">Skaitiniai</a>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Pixel?a=lL7Y_h8VbNo:u6APPeUTQgY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Pixel?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Pixel/~4/lL7Y_h8VbNo" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pixel.lt/skaitiniai-55.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Limituojam MySQL duombazės dydį su… pačiu MySQL</title>
		<link>http://pixel.lt/limituojam-mysql-duombazes-dydi-su-paciu-mysql.html</link>
		<comments>http://pixel.lt/limituojam-mysql-duombazes-dydi-su-paciu-mysql.html#comments</comments>
		<pubDate>Wed, 30 Apr 2008 13:26:48 +0000</pubDate>
		<dc:creator>Raigedas</dc:creator>
		
		<category><![CDATA[SQL]]></category>

		<category><![CDATA[db]]></category>

		<category><![CDATA[DBMS]]></category>

		<category><![CDATA[DBVS]]></category>

		<category><![CDATA[limits]]></category>

		<category><![CDATA[mysql]]></category>

		<category><![CDATA[STORED PROCEDURE]]></category>

		<category><![CDATA[TRIGGER]]></category>

		<guid isPermaLink="false">http://pixel.lt/?p=692</guid>
		<description><![CDATA[Iškilo būtinybė uždėti limitą duombazės dydžiui. Pats MySQL tokio funkcionalumo neturi. Ieškojau kaip išspręsti šią problemą&#8230; Mano reikalavimai sprendimui tokie:

reikalavimų minimumas; portabilumas - kad nereikėtų įdiegti papildomos programinės įrangos, kad veiktų kuo įvairesnėse aplinkose, nereikalautų didelio paruošimo bei palaikymo;
resursų taupymas

Kaip gali būti realizuota tokia funkcija? Atrodo pakankamai paprastai - tereikia žinoti duombazės dydį (esamą.. bet [...]]]></description>
			<content:encoded><![CDATA[<p>Iškilo būtinybė uždėti limitą duombazės dydžiui. Pats <a href="http://pixel.lt/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">MySQL</a> tokio funkcionalumo neturi. Ieškojau kaip išspręsti šią problemą&#8230; Mano reikalavimai sprendimui tokie:</p>
<ul>
<li>reikalavimų minimumas; portabilumas - kad nereikėtų įdiegti papildomos programinės įrangos, kad veiktų kuo įvairesnėse aplinkose, nereikalautų didelio paruošimo bei palaikymo;</li>
<li>resursų taupymas</li>
</ul>
<p>Kaip gali būti realizuota tokia funkcija? Atrodo pakankamai paprastai - tereikia žinoti duombazės dydį (esamą.. bet geriau tą, kuris būtų po užklausos įvykdymo) ir jei tas dydis viršija mūsų nustatytą limitą tai atitinkamai arba leidžiama įvykdyti užklausą arba ne. </p>
<p>Bet yra ir kitas būdas. Žinome, kad <a href="http://pixel.lt/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">MySQL</a> kiekvieną duombazę saugo atskirame kataloge. Taigi tereiktų failų sistemos lygyje nustatyti apribojimą tam katalogui, kad nesipūstų per daug. GNU/Linux sistemoje yra tokia galimybė nustatyti limitą konkrečiam naudotojo namų katalogui. Taigi:</p>
<ul>
<li>sukuriam naują vartotoją (tebūnie &#8216;manovardas&#8217;) serveryje ir nustatom limitą jo namų katalogui.</li>
<li>sukuriam naują duombazę:

<div class="wp_syntax"><div class="code"><pre class="sql"><span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TABLE</span> manodb</pre></div></div>

</li>
<li>sustabdom <a href="http://pixel.lt/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">MySQL</a> servisą - nebūtina, bet labai rekomenduojama!</li>
<li>perkeliam duombazės katalogą pas naudotoją &#8220;į namus&#8221;:
<pre>mv /var/lib/<a href="http://pixel.lt/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a>/manodb /home/manovardas</pre>
<p> (gal reikia &#8220;-R&#8221; rakto, nepamenu)</li>
<li>sukuriam nuorodą:
<pre>ln -s /home/manovardas/manodb /var/lib/<a href="http://pixel.lt/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">mysql</a>/manodb</pre>
</li>
<li>paleidžiam <a href="http://pixel.lt/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">MySQL</a> servisą.</li>
</ul>
<p>Viskas. Ar šis sprendimas tinka visada? Nemanau. Pavyzdžiui, mes nežinom, kas bus, kai duombazė pasieks tą nustatytą limitą? Ar mums vykdant &#8220;insert&#8221; užklausą bus išmesta klaida? Ar viskas užstrigs? Servisas nulūš? Internete radau kažkieno pasakymą, kad tokiu atveju lūžta einamoji <a href="http://pixel.lt/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">MySQL</a> serviso gija. Visgi man sunku tuo patikėt - kai man pačiam buvo pasibaigus vieta particijoj ir įterpinėjau duomenis tai tiesiog mano užklausa užšaldavo. Kiti susijungimai toliau leisdavo vykdyt SELECT užklausas. Sako, tyla gera byla, bet mūsų atveju geriau būtų klaida :) dabar sėdi naudotojas ir nežino kas vyksta. Kita problema - reikia turėti teises į failų sistemą. Dar reikia kurti papildomą sistemos naudotoją&#8230; taigi, man šis sprendimas netiko, todėl ieškojau kaip realizuot pirmu minėtu metodu (patikrinant <a href="http://pixel.lt/tag/db" class="st_tag internal_tag" rel="tag" title="Posts tagged with db">DB</a> dydį).</p>
<p><strong>Duombazės dydis</strong> - kaip jį sužinoti?</p>
<p>Turbūt paprasčiausia būtų pažiūrėt, kiek užima duombazės failai. Bet ne visada galim turėt galimybę tai atlikt. Pavyzdžiui, jei jungiamės prie nutolusio <a href="http://pixel.lt/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">MySQL</a> serverio. Arba net jei tai vietinis serveris, vis tiek galime neturėti teisių tokiam veiksmui.</p>
<p>Suskaičiuoti visus įrašus&#8230; mm.. būtų galima bandyt, jei kiekvienas įrašas užimtų tiek pat vietos - tada apskaičiuotume įrašo dydį, sudaugintume su eilučių skaičiumi lentelėje ir tai pakartotume visoms lentelėms. Bet, deja, ne visi įrašai yra fiksuoto dydžio - kaltininkai čia būtų VARCHAR (ir kt.) laukai. Taigi, pamirštam.</p>
<p>Atrodo yra paprastesnis būdas. Tai, ko mums reikia, grąžina užklausa:</p>

<div class="wp_syntax"><div class="code"><pre class="sql"><span style="color: #993333; font-weight: bold;">SHOW</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">STATUS</span>;</pre></div></div>

<p>Kad nesikartočiau, ką jau kažkas parašė, siūlau tiesiog užeit šiuo adresu:<br />
<a href="http://www.drquincy.com/resources/tutorials/webserverside/getthesizeofamysqldatabasewithphp/">http://www.drquincy.com/resources/tutorials/webserverside/getthesizeofamysqldatabasewithphp/</a></p>
<p><strong>Limitai</strong></p>
<p>Žinom duombazės dydį - kas dabar? Sakykim, mūsų sistema, kuri naudos duombazę, yra svetainė rašoma su <a href="http://pixel.lt/tag/php" class="st_tag internal_tag" rel="tag" title="Posts tagged with PHP">PHP</a>. Tai nejau prieš kiekvieną užklausą vykdysim tą kodą, kuris tikrina <a href="http://pixel.lt/tag/db" class="st_tag internal_tag" rel="tag" title="Posts tagged with db">DB</a> dydį? Jei mums reikės padaryt 10 000 įterpimų, tai tiek kartų tikrinti būtų neracionalu. Ypač jei <a href="http://pixel.lt/tag/db" class="st_tag internal_tag" rel="tag" title="Posts tagged with db">DB</a> klientas ir <a href="http://pixel.lt/tag/db" class="st_tag internal_tag" rel="tag" title="Posts tagged with db">DB</a> serveris yra nutolę. Kita problema - gal mes norime kad ne tik <a href="http://pixel.lt/tag/php" class="st_tag internal_tag" rel="tag" title="Posts tagged with PHP">php</a> skriptas įterpinėjant duomenis neperžengtų ribos, bet kad niekaip nebūtų įmanoma apeiti limito (net tiesiai prisijungus iš konsolės)? Tada reiktų tikrinimą kažkaip &#8220;įklijuoti&#8221; į patį <a href="http://pixel.lt/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">MySQL</a>. Taip ir padarom:</p>
<ul>
<li>sukuriam funkciją (kažkas tokio kaip <a href="http://pixel.lt/tag/stored-procedure" class="st_tag internal_tag" rel="tag" title="Posts tagged with STORED PROCEDURE">STORED PROCEDURE</a>, tik grąžins skaičių) kuri nustato <a href="http://pixel.lt/tag/db" class="st_tag internal_tag" rel="tag" title="Posts tagged with db">DB</a> dydį</li>
<li>ant kiekvienos lentelės sukuriam trigerius, kurie suveiktų, pavyzdžiui, prieš įterpimą; trigeris turėtų patikrinti ar galima įterpti, ar ne.</li>
</ul>
<p>Atrodo gražu, bet viena problemėlė. O kaip mes trigeryje pasakysim &#8220;žinai, nebedarom įterpimo nes pasiektas limitas&#8221;? <a href="http://pixel.lt/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">MySQL</a> neturi tokios galimybės kaip kad &#8220;raise_error&#8221; ant Microsoft <a href="http://pixel.lt/tag/sql" class="st_tag internal_tag" rel="tag" title="Posts tagged with SQL">SQL</a> Server. Sako, kad nuo <a href="http://pixel.lt/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">MySQL</a> 5.2 gal jau bus &#8220;signalai&#8221;, kurie leis padaryt tai, ko mums reikia.. bet mums reikia dabar. Visgi yra sprendimas:<br />
<a href="http://www.brokenbuild.com/blog/2006/08/15/mysql-triggers-how-do-you-abort-an-insert-update-or-delete-with-a-trigger/">http://www.brokenbuild.com/blog/2006/08/15/mysql-triggers-how-do-you-abort-an-insert-update-or-delete-with-a-trigger/</a><br />
Siūlo tiesiog sukelti bet kokią kitą klaidos situaciją, pvz &#8220;unknown column&#8221;. </p>
<p>Beliko viską realizuot. Kadangi aš beveik nesu rašęs <a href="http://pixel.lt/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">MySQL</a> saugomų procedūrų (&#8221;<a href="http://pixel.lt/tag/stored-procedure" class="st_tag internal_tag" rel="tag" title="Posts tagged with STORED PROCEDURE">STORED PROCEDURE</a>&#8220;), funkcijų tai neišsiverčiau be <a href="http://pixel.lt/tag/mysql" class="st_tag internal_tag" rel="tag" title="Posts tagged with mysql">MySQL</a> dokumentacijos ir kodo pavyzdžių, rastų internete. Pavyzdžiui, štai kaip reiktų prasukt ciklą pasinaudojant kursoriais:<br />
<a href="http://dev.mysql.com/doc/refman/5.0/en/cursors.html">http://dev.mysql.com/doc/refman/5.0/en/cursors.html</a><br />
Man šitas ciklas pasirodė keistokas, todėl dariau taip kaip parodyta čia:<br />
<a href="http://www.futhark.ch/mysql/130.html">http://www.futhark.ch/mysql/130.html</a></p>
<p>Viskas, daugiau paaiškinimų nebebus.</p>
<p>Funkcijos, nustatančios <a href="http://pixel.lt/tag/db" class="st_tag internal_tag" rel="tag" title="Posts tagged with db">DB</a> dydį, kodas:</p>

<div class="wp_syntax"><div class="code"><pre class="sql">delimiter //
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">FUNCTION</span> dbsize <span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> RETURNS integer
READS SQL <span style="color: #993333; font-weight: bold;">DATA</span>
BEGIN
  DECLARE size integer <span style="color: #993333; font-weight: bold;">DEFAULT</span> <span style="color: #cc66cc;">0</span>;
  DECLARE c1, c2, c3, c4, c5, c6,
    datalength, c8, indexlength,
    c10, c11, c12, c13, c14, c15, c16,
		c17, c18 integer;
  DECLARE done <span style="color: #993333; font-weight: bold;">BOOLEAN</span> <span style="color: #993333; font-weight: bold;">DEFAULT</span> FALSE;
&nbsp;
  DECLARE curr CURSOR <span style="color: #993333; font-weight: bold;">FOR</span> <span style="color: #993333; font-weight: bold;">SHOW</span> <span style="color: #993333; font-weight: bold;">TABLE</span> <span style="color: #993333; font-weight: bold;">STATUS</span>;
  DECLARE CONTINUE HANDLER <span style="color: #993333; font-weight: bold;">FOR</span> SQLSTATE <span style="color: #ff0000;">'02000'</span> <span style="color: #993333; font-weight: bold;">SET</span> done = TRUE;
&nbsp;
  OPEN curr;
&nbsp;
  loop1: LOOP
&nbsp;
    FETCH curr <span style="color: #993333; font-weight: bold;">INTO</span> c1, c2, c3, c4, c5, c6, datalength, c8, indexlength, c10, c11, c12, c13, c14, c15, c16, c17, c18;
    <span style="color: #993333; font-weight: bold;">IF</span> done THEN LEAVE loop1; END <span style="color: #993333; font-weight: bold;">IF</span>;
    <span style="color: #993333; font-weight: bold;">SET</span> size := size + datalength + indexlength;
&nbsp;
  END LOOP loop1;
&nbsp;
  CLOSE curr;
&nbsp;
  <span style="color: #993333; font-weight: bold;">RETURN</span> size;
&nbsp;
END;
//
delimiter ;</pre></div></div>

<p>Trigerio kodas:</p>

<div class="wp_syntax"><div class="code"><pre class="sql">delimiter //
<span style="color: #993333; font-weight: bold;">CREATE</span> <span style="color: #993333; font-weight: bold;">TRIGGER</span> t1bi
BEFORE <span style="color: #993333; font-weight: bold;">INSERT</span> <span style="color: #993333; font-weight: bold;">ON</span> t1
  <span style="color: #993333; font-weight: bold;">FOR</span> EACH ROW
BEGIN
  <span style="color: #993333; font-weight: bold;">SET</span> @dummy = <span style="color: #cc66cc;">0</span>;
  <span style="color: #993333; font-weight: bold;">IF</span> dbsize<span style="color: #66cc66;">&#40;</span><span style="color: #66cc66;">&#41;</span> &amp;gt; <span style="color: #cc66cc;">20000</span> THEN
    <span style="color: #993333; font-weight: bold;">SELECT</span> Database_size_limit_reached <span style="color: #993333; font-weight: bold;">INTO</span> @dummy <span style="color: #993333; font-weight: bold;">FROM</span> t1;
  END <span style="color: #993333; font-weight: bold;">IF</span>;
END;
//
delimiter ;</pre></div></div>

<p>Čia:</p>
<ul>
<li>20000 - skaičius 20000 rodo baitų kiekį, kurio negali peržengti duombazės dydis.</li>
<li>t1 - lentelė, kuriai kuriamas trigeris; reikėtų sukurti kiekvienai lentelei.</li>
<li>t1bi - kuriamo trigerio vardas (lentelės vardas plius pirmosios raidės iš &#8220;BEFORE INSERT&#8221;)</li>
</ul>
<p>Dabar beliko sutvarkyt leidimus <em>(angl. permissions)</em>. Naudotojui leisti tik SELECT, INSERT, UPDATE, DELETE, bet neleisti kurti/trinti (būtent trinti) funkcijų ir trigerių.</p>
<p><strong>Išvados</strong></p>
<p>Man šis sprendimas labai tinka nes:</p>
<ul>
<li>nėra jokių papildomų reikalavimų, nereikia nieko papildomai įdiegti, kurti papildomų lentelių. Na gerai, yra reikalavimai - būtinas trigerių palaikymas bei lentelėse negali būti stulpelis pavadinimu &#8220;Database_size_limit_reached&#8221; :)</li>
<li>nors tenka kiekvienu įterpimu iš naujo patikrinti <a href="http://pixel.lt/tag/db" class="st_tag internal_tag" rel="tag" title="Posts tagged with db">DB</a> dydį, bet tai sąlyginai mažai resursų reikalaujantis procesas (pas mane tik ~10 lentelių o ne 200+), ir pasitelkus &#8220;STORED PROCEDURES&#8221; tikrinimas vyksta ne pas klientą o pačioje <a href="http://pixel.lt/tag/dbvs" class="st_tag internal_tag" rel="tag" title="Posts tagged with DBVS">DBVS</a>, nenaudojamas tinklo srautas.</li>
</ul>

	Gairės: <a href="http://pixel.lt/tag/db" title="db" rel="tag">db</a>, <a href="http://pixel.lt/tag/dbms" title="DBMS" rel="tag">DBMS</a>, <a href="http://pixel.lt/tag/dbvs" title="DBVS" rel="tag">DBVS</a>, <a href="http://pixel.lt/tag/limits" title="limits" rel="tag">limits</a>, <a href="http://pixel.lt/tag/mysql" title="mysql" rel="tag">mysql</a>, <a href="http://pixel.lt/tag/sql" title="SQL" rel="tag">SQL</a>, <a href="http://pixel.lt/tag/stored-procedure" title="STORED PROCEDURE" rel="tag">STORED PROCEDURE</a>, <a href="http://pixel.lt/tag/trigger" title="TRIGGER" rel="tag">TRIGGER</a>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Pixel?a=hlMHFOYx8cE:euQGLHwxfgI:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Pixel?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Pixel/~4/hlMHFOYx8cE" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pixel.lt/limituojam-mysql-duombazes-dydi-su-paciu-mysql.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Banklink - realizuojam SEB ir Hanza bankams</title>
		<link>http://pixel.lt/bankilink-realizuojam-seb-ir-hanza-bankams.html</link>
		<comments>http://pixel.lt/bankilink-realizuojam-seb-ir-hanza-bankams.html#comments</comments>
		<pubDate>Wed, 23 Apr 2008 16:20:08 +0000</pubDate>
		<dc:creator>remdex</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[banklink]]></category>

		<category><![CDATA[hanza]]></category>

		<category><![CDATA[seb]]></category>

		<guid isPermaLink="false">http://pixel.lt/?p=691</guid>
		<description><![CDATA[Turbūt daugelis elektroninių parduotuvių šiuo metu turi integruotus elektroninius mokėjimus. Pabandysiu pateikti nuoseklią seką būtiną realizuojant mokėjimus PHP. Visų pirma pateikiu seką būtiną sertifikatų generavimui.
Norint pradėti realizaciją mums būtina susigeneruoti sertifikatą ir privatų raktą.
Taigi pradedam:

openssl req -new -out cert_request.pem -keyout private_key.pem

Generacijos metu reikės įvesti informaciją, kaip elektroninio pašto adresas kompanijos pavadinimas ir t.t. Iš esmės [...]]]></description>
			<content:encoded><![CDATA[<p>Turbūt daugelis elektroninių parduotuvių šiuo metu turi integruotus elektroninius mokėjimus. Pabandysiu pateikti nuoseklią seką būtiną realizuojant mokėjimus <a href="http://pixel.lt/tag/php" class="st_tag internal_tag" rel="tag" title="Posts tagged with PHP">PHP</a>. Visų pirma pateikiu seką būtiną sertifikatų generavimui.</p>
<p>Norint pradėti realizaciją mums būtina susigeneruoti sertifikatą ir privatų raktą.<br />
Taigi pradedam:</p>
<pre>
openssl req -new -out cert_request.pem -keyout private_key.pem
</pre>
<p>Generacijos metu reikės įvesti informaciją, kaip elektroninio pašto adresas kompanijos pavadinimas ir t.t. Iš esmės vienintelė bankui rūpima informacija - tai elektroninio pašto adresas. Po šios operacijos bus sugeneruoti du failai:</p>
<ul>
<li> cert_request.pem</li>
<li> private_key.pem</li>
</ul>
<p>Pirmasis failas tai mūsų viešas raktas, kurio informaciją galime peržiūrėti komanda:</p>
<pre>
openssl req -text -noout -in cert_request.pem
</pre>
<p>Antrasis bus naudojamas susigeneruoti parduotuvės sertifikatą. Tačiau dabartinis privatus raktas yra apsaugotas slaptažodžiu, o mums reikia privataus rakto neapsaugoto slaptažodžiu. Taigi susigeneruojam privatų raktą neapsaugotą slaptažodžiu, kuris bus naudojamas taip ogo parduotuvės siunčiamiems duomenimis pasirašyti.</p>
<pre>
openssl rsa -in private_key.pem -out new_private_key.pem
</pre>
<p>Šio proceso metu reikės įvesti anksčiau įvestą slaptažodį, kuris buvo panaudotas generuojant privatų raktą pirmąja komanda. Taigi kai turime privatų raktą neapsaugotą slaptažodžiu galime sugeneruoti parduotuvės sertifikatą:</p>
<pre>
openssl req -new -x509 -days 720 -key new_private_key.pem -out rsa_new.crt
</pre>
<p>Bus sugeneruotas naujas failas rsa_new.crt tai ir bus mūsų sertifikatas. Kuris sutarties pasirašymo metu yra siunčiamas bankui. Bankas visus siunčiamus mūsų pranešimas patikrina remiantis šiuo sertifikatu.<br />
Kai turim parduotuvės sertifikatą galime judėti toliau. Standartiškai testuojant bankas duoda kažkokį savo sertifikatą. Šiuo atveju kadangi jo neturim susigeneruojam jį tokia pat tvarka kaip ir generavom parduotuvės sertifikatą.</p>
<pre>
openssl req -new -out cert_request.pem -keyout private_key.pem
openssl rsa -in private_key.pem -out new_private_key.pem
openssl req -new -x509 -days 720 -key new_private_key.pem -out rsa_new.crt
</pre>
<p>Kad būtų aiškiau pasidariau tokią katalogų struktūrą:</p>
<ul>
<li><a href="http://pixel.lt/tag/seb" class="st_tag internal_tag" rel="tag" title="Posts tagged with seb">seb</a>
<ul>
<li>crtshop</li>
<li>crt</li>
</ul>
</li>
<li><a href="http://pixel.lt/tag/hanza" class="st_tag internal_tag" rel="tag" title="Posts tagged with hanza">hanza</a>
<ul>
<li>crtshop</li>
<li>crt</li>
</ul>
</li>
<li>classes
<ul>
<li> <a href="http://pixel.lt/tag/hanza" class="st_tag internal_tag" rel="tag" title="Posts tagged with hanza">hanza</a>.<a href="http://pixel.lt/tag/php" class="st_tag internal_tag" rel="tag" title="Posts tagged with PHP">php</a></li>
<li> hanzatest.<a href="http://pixel.lt/tag/php" class="st_tag internal_tag" rel="tag" title="Posts tagged with PHP">php</a></li>
</ul>
</li>
<li>index.<a href="http://pixel.lt/tag/php" class="st_tag internal_tag" rel="tag" title="Posts tagged with PHP">php</a></li>
<li>verify.<a href="http://pixel.lt/tag/php" class="st_tag internal_tag" rel="tag" title="Posts tagged with PHP">php</a></li>
<li>server.<a href="http://pixel.lt/tag/php" class="st_tag internal_tag" rel="tag" title="Posts tagged with PHP">php</a></li>
</ul>
<p>Kai turime sertifikatus atitinkamuose kataloguose crtshop - parduotuvės sertifikatas, crt - tariamo banko sertifikatas. Galime pradėti realizaciją. Realizacija iš esmės nėra sudėtinga. Visas veiksmas vyksta daugmaž tokia tvarka:</p>
<li>parduotuvė siunčia pranešimą pasirašytu savo slaptuoju raktu. Pranešimą standartiškai sudaro VK_MAC reikšmė. Ši reikšmė sudaroma iš pirkinio informacijos ir užkoduojama parduotuvės slaptuoju raktu;</li>
<li>bankas gavęs pranešimą patikrina pranešimo autentiškumą su parduotuvės sertifikatu ir sulygina gautą reikšmę su VK_MAC reikšme;</li>
<li>vyksta veiksmai banko sistemoje;</li>
<li>bankas grąžina atsakymą pasirašytą savo privačiu raktu. Parduotuvė patikrina pranešimo autentiškumą naudodamasi banko sertifikatu.</li>
</ul>
<p>Taigi visas mechanizmas gan paprastas.<br />
Kadangi pagrindinė problema susijusi su testavimu, kuris įmanomas tik kai bankas įjungia sąsaja. Sukūriau šiokį tokį frameworką testavimui. Iš esmės jo veikimas identiškas bankų veikimui.<br />
index.<a href="http://pixel.lt/tag/php" class="st_tag internal_tag" rel="tag" title="Posts tagged with PHP">php</a> failas sugeneruoja parduotuvės užklausą bankui.<br />
server.<a href="http://pixel.lt/tag/php" class="st_tag internal_tag" rel="tag" title="Posts tagged with PHP">php</a> patikrina ar atėję parametrai buvo pasirašyti parduotuvės<br />
verify.<a href="http://pixel.lt/tag/php" class="st_tag internal_tag" rel="tag" title="Posts tagged with PHP">php</a> ar atsakymas atėjo iš serverio.</p>
<p>Iš esmės dabar turėtų eiti <a href="http://pixel.lt/tag/php" class="st_tag internal_tag" rel="tag" title="Posts tagged with PHP">php</a> kodo dalis, bet jo pastinimas manyčiau būtų netikslingas - tai pateikiu realizuotą sistemą, kurią galite parsisiųsti iš <a href='http://pixel.lt/wp-content/uploads/2008/04/banklinktgz.gz' target='_blank' title='banklink pavyzdys'>čia</a></p>
<p>Realizacija nėra sudėtinga, kai žinai ką reikia daryti. Pateiktame pavyzdyje realizacija pritaikyta <a href="http://pixel.lt/tag/hanza" class="st_tag internal_tag" rel="tag" title="Posts tagged with hanza">Hanza</a> bankui, bet <a href="http://pixel.lt/tag/seb" class="st_tag internal_tag" rel="tag" title="Posts tagged with seb">SEB</a> bankui viskas vyksta taip pat. Kodas gal ir nėra idealiai švarus, tačiau man ir tokio būtų užtekę, kai ieškojau informacijos apie <a href="http://pixel.lt/tag/banklink" class="st_tag internal_tag" rel="tag" title="Posts tagged with banklink">banklink</a> realizaciją. Trumpai tariant gal pravers kam nors. :)</p>

	Gairės: <a href="http://pixel.lt/tag/banklink" title="banklink" rel="tag">banklink</a>, <a href="http://pixel.lt/tag/hanza" title="hanza" rel="tag">hanza</a>, <a href="http://pixel.lt/tag/php" title="PHP" rel="tag">PHP</a>, <a href="http://pixel.lt/tag/seb" title="seb" rel="tag">seb</a>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Pixel?a=tECeCBl3UW0:eNW3bvoyjuY:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Pixel?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Pixel/~4/tECeCBl3UW0" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pixel.lt/bankilink-realizuojam-seb-ir-hanza-bankams.html/feed</wfw:commentRss>
		</item>
		<item>
		<title>Ubucon’08 Vilniuje</title>
		<link>http://pixel.lt/ubucon08-vilniuje.html</link>
		<comments>http://pixel.lt/ubucon08-vilniuje.html#comments</comments>
		<pubDate>Mon, 21 Apr 2008 10:17:00 +0000</pubDate>
		<dc:creator>sirex</dc:creator>
		
		<category><![CDATA[Kita]]></category>

		<category><![CDATA[konferencija]]></category>

		<category><![CDATA[Ubuntu]]></category>

		<guid isPermaLink="false">http://pixel.lt/?p=690</guid>
		<description><![CDATA[Naujos Ubuntu versijos išleidimo proga, Vilniuje, gegužės 17 d. šeštadienį, 11:00 vyks Ubucon&#8217;08. Tai renginys, kurio metu bus skaitomi pranešimai apie Ubuntu ir Baltix. Tačiau pagrindinė renginio dalis – masinis naujų Ubuntu ir Baltix versijų diegimas. Kviečiami visi besidomintys Linux ar paprasčiausiai norintys susipažinti su šia puikia operacine sistema.
Po kelių Install Fest renginių Kaune, pagaliau [...]]]></description>
			<content:encoded><![CDATA[<p>Naujos <em><a href="http://pixel.lt/tag/ubuntu" class="st_tag internal_tag" rel="tag" title="Posts tagged with Ubuntu">Ubuntu</a></em> versijos išleidimo proga, Vilniuje, gegužės 17 d. šeštadienį, 11:00 vyks Ubucon&#8217;08. Tai renginys, kurio metu bus skaitomi pranešimai apie <em><a href="http://pixel.lt/tag/ubuntu" class="st_tag internal_tag" rel="tag" title="Posts tagged with Ubuntu">Ubuntu</a></em> ir <em>Baltix</em>. Tačiau pagrindinė renginio dalis – masinis naujų <em><a href="http://pixel.lt/tag/ubuntu" class="st_tag internal_tag" rel="tag" title="Posts tagged with Ubuntu">Ubuntu</a></em> ir <em>Baltix</em> versijų diegimas. Kviečiami visi besidomintys Linux ar paprasčiausiai norintys susipažinti su šia puikia operacine sistema.</p>
<p>Po kelių <em>Install Fest</em> renginių Kaune, pagaliau kažkas panašaus vyks ir Vilniuje. Todėl visi vilniečiai neturėję galimybių atvykti į Kauną, dabar galės susipažinti su <em>Linux</em> ir savo mieste. Renginys vyks VU Matematikos ir Informatikos fakultete.</p>
<p>Mintis apie šį renginį kilo planuojant <em>„Hardy Release Party“</em>, kuris anksčiau apsiribodavo pasisėdėjimu Forto Dvare. Šį kartą sumąstėme padaryti kažką įdomiau ir visa tai išsirutuliojo iki <a href="http://www.ubuntu.lt/ubucon">Ubucon&#8217;08</a>.</p>
<p>Renginio metu prieš diegynę išgirsite kelis pranešėjus, kurie papasakos, kas yra atviras kodas, <em>Linux</em>, <em><a href="http://pixel.lt/tag/ubuntu" class="st_tag internal_tag" rel="tag" title="Posts tagged with Ubuntu">Ubuntu</a></em> ir <em>Baltix</em>. Sužinosite nuo ko visa tai prasidėjo ir į ką išaugo. Po pranešimų vyks du diegynės etapai. Pirmajame etape, pažingsniui bus aiškinama kaip diegti <em><a href="http://pixel.lt/tag/ubuntu" class="st_tag internal_tag" rel="tag" title="Posts tagged with Ubuntu">Ubuntu</a></em>, visa tai matysite dideliame ekrane, kur pranešėjas sustos ties kiekvienu žingsniu ir papasakos detaliau apie tai kas daroma. Po to prasidės antrasis etapas, kurio metu sužinosite kaip pritaikyti savo poreikiams naujai suinstaliuotą sistemą. Sužinosite apie dažniausiai naudojamas programas ir jų privalumus. Žinoma patys taip pat galėsite užduoti klausimus.</p>
<p>Visus norinčius renginio metu įsidiegti <em><a href="http://pixel.lt/tag/ubuntu" class="st_tag internal_tag" rel="tag" title="Posts tagged with Ubuntu">Ubuntu</a></em> į savo kompiuterius prašome <a href="http://www.ubuntu.lt/ubucon/?page=registracija">užsiregistruoti Ubucon&#8217;08 svetainėje</a>. Registracija reikalinga tam, kad žinotume su kokia kompiuterio technika turėsime reikalų ir galėtume tam pasiruošti.</p>
<p><strong>Tiksli informacija apie renginį.</strong></p>
<ul>
<li><strong>Renginio svetainė:</strong> <a href="http://www.ubuntu.lt/ubucon">ubuntu.lt/ubucon</a></li>
<li><strong>Laikas:</strong> 2008 m. gegužės 17 d. šeštadienį, 11:00</li>
<li><strong>Vieta:</strong> VU Matematikos ir Informatikos fakultetas, 101 auditorija (Naugardugo g. 24, Vilnius)</li>
</ul>
<p>Renginį organizuoja Lietuvos <a href="http://pixel.lt/tag/ubuntu" class="st_tag internal_tag" rel="tag" title="Posts tagged with Ubuntu">Ubuntu</a> bendruomenė.</p>

	Gairės: <a href="http://pixel.lt/tag/konferencija" title="konferencija" rel="tag">konferencija</a>, <a href="http://pixel.lt/tag/ubuntu" title="Ubuntu" rel="tag">Ubuntu</a>
<div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/Pixel?a=l7R3aLyzEKc:7ua4Vumu0Ek:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/Pixel?d=yIl2AUoC8zA" border="0"></img></a>
</div><img src="http://feeds.feedburner.com/~r/Pixel/~4/l7R3aLyzEKc" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://pixel.lt/ubucon08-vilniuje.html/feed</wfw:commentRss>
		</item>
	</channel>
</rss>
