<?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>Tru.Lt</title>
	<atom:link href="http://tru.lt/feed/" rel="self" type="application/rss+xml" />
	<link>http://tru.lt</link>
	<description></description>
	<lastBuildDate>Thu, 05 Jan 2012 15:14:57 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>PHP alternatyvi sintaksė</title>
		<link>http://tru.lt/php-alternatyvi-sintakse/</link>
		<comments>http://tru.lt/php-alternatyvi-sintakse/#comments</comments>
		<pubDate>Fri, 16 Dec 2011 22:02:17 +0000</pubDate>
		<dc:creator>Tomas</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Svetainių kūrimas]]></category>
		<category><![CDATA[alternate]]></category>
		<category><![CDATA[alternatyvi]]></category>
		<category><![CDATA[else]]></category>
		<category><![CDATA[endfor. endwhile]]></category>
		<category><![CDATA[endforeach]]></category>
		<category><![CDATA[endif]]></category>
		<category><![CDATA[for]]></category>
		<category><![CDATA[foreach]]></category>
		<category><![CDATA[if]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[short]]></category>
		<category><![CDATA[sintaksė]]></category>
		<category><![CDATA[syntax]]></category>
		<category><![CDATA[tags]]></category>
		<category><![CDATA[while]]></category>

		<guid isPermaLink="false">http://tru.lt/?p=331</guid>
		<description><![CDATA[Tikriausiai ne visi žinote ar naudojate alternatyvią PHP sintaksę. Tai padaro kodą tam tikrose situacijose šiek tiek skaitomesnį ir pan., nes reikia rašyti mažiau. Žodžiu, eime prie pavyzdžių. Sąlygos sakiniai if(sąlyga) { veiksmai } galime keisti į if(sąlyga): veiksmai endif; Tai patogu, kai skripte yra ypač daug &#8216;{&#8216; ir &#8216;}&#8217;, o tarp jų dar ir [...]]]></description>
			<content:encoded><![CDATA[<p>Tikriausiai ne visi žinote ar naudojate alternatyvią PHP sintaksę. Tai padaro kodą tam tikrose situacijose šiek tiek skaitomesnį ir pan., nes reikia rašyti mažiau. Žodžiu, eime prie pavyzdžių.</p>
<h2>Sąlygos sakiniai</h2>
<pre class="brush:php">if(sąlyga) {
    veiksmai
}</pre>
<p>galime keisti į</p>
<pre class="brush:php">if(sąlyga):
   veiksmai
endif;</pre>
<p>Tai patogu, kai skripte yra ypač daug &#8216;{&#8216; ir &#8216;}&#8217;, o tarp jų dar ir galybė kitų veiksmų. Pats dažniausiai šią alternatyvą naudoju failuose, kuriuose yra daug HTML kodo, kurį reikia atspausdinti tik įvykdžius tam tikrą sąlygą &#8211; taip man vaizdžiau matosi. Taip pat ši alternatyva plačiai yra naudojama WordPress temose, kur, kaip žinia, taip pat daug HTML kodo.</p>
<p>Lygiai taip pat galime naudoti ir if-else sąlygą:</p>
<pre class="brush:applescript">if(sąlyga):
  veiksmai
else:
  veiksmai
endif;</pre>
<p>Yra dar viena sąlygos alternatyva:</p>
<pre class="brush:applescript">$spalva = 'geltona';
print $valgyk = ($spalva != 'geltona') ? 'Valgyk' : 'Nevalgyk';</pre>
<p>Kur TRUE, kur FALSE, aiškinti nereikia (juk žinote šį &#8222;pasakymą&#8220;? <img src='http://tru.lt/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> ). Na, bet jei reikia, tai už klaustuko TRUE, už dvitaškio FALSE&#8230;</p>
<h2>Ciklai</h2>
<p>Pirmiausiai, while ciklas:</p>
<pre class="brush:applescript">while(sąlyga):
  veiksmai
endwhile;</pre>
<p>Tas pats ir su for bei foreach:</p>
<pre class="brush:php">for(...):
  veiksmai;
endfor;

foreach(...):
  veiksmai
endforeach;</pre>
<h2>Išvestis</h2>
<p>Na, ir galiausiasis, kurį turbūt visi žinote.</p>
<p>&nbsp;</p>
<pre class="brush:php">echo $kintamasis;</pre>
<p>keičiame į &#8222;short tags&#8220;</p>
<pre class="brush:php">&lt;?= $kintamasis ?&gt;</pre>
<p>Jei žinote daugiau, pasidalinkite komentaruose. <img src='http://tru.lt/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://tru.lt/php-alternatyvi-sintakse/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Masyvo rikiavimo procedūra (Pascal)</title>
		<link>http://tru.lt/masyvo-rikiavimo-procedura-pascal/</link>
		<comments>http://tru.lt/masyvo-rikiavimo-procedura-pascal/#comments</comments>
		<pubDate>Wed, 14 Dec 2011 18:39:50 +0000</pubDate>
		<dc:creator>Tomas</dc:creator>
				<category><![CDATA[Pascal]]></category>
		<category><![CDATA[Programavimas]]></category>

		<guid isPermaLink="false">http://tru.lt/?p=327</guid>
		<description><![CDATA[Jog nepamirščiau, pasirašysiu čia masyvo rikiavimo procedūrą su Pascal kalba (liaudyje tiesiog vadinama FPS). Taip pat, gal kas nors per google užklys. Žodžiu. procedure rikiuoti(n: integer; var masyvas: MAS); var i, j, c: integer; begin for i := 1 to n - 1 do begin for j := i + 1 to n do begin [...]]]></description>
			<content:encoded><![CDATA[<p>Jog nepamirščiau, pasirašysiu čia masyvo rikiavimo procedūrą su Pascal kalba (liaudyje tiesiog vadinama FPS). Taip pat, gal kas nors per google užklys. Žodžiu.</p>
<pre class="brush:delphi">procedure rikiuoti(n: integer; var masyvas: MAS);
   var i, j, c: integer;
 begin
   for i := 1 to n - 1 do
   begin
     for j := i + 1 to n do
     begin
       if masyvas[j] &lt; masyvas[i] then
       begin
         c := masyvas[i];
         masyvas[i] := masyvas[j];
         masyvas[j] := c;
       end;
     end;
   end;
 end;</pre>
<p>n &#8211; masyvo elementų skaičius</p>
<p>MAS -masyvo tipas (šiuo atveju MAS = array[1..100] of integer;)</p>
]]></content:encoded>
			<wfw:commentRss>http://tru.lt/masyvo-rikiavimo-procedura-pascal/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Linksma programėlė: Phun</title>
		<link>http://tru.lt/linksma-programele-phun/</link>
		<comments>http://tru.lt/linksma-programele-phun/#comments</comments>
		<pubDate>Sun, 25 Sep 2011 15:49:57 +0000</pubDate>
		<dc:creator>Tomas</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://tru.lt/?p=323</guid>
		<description><![CDATA[Sveiki, Šiandien radau labai linksmą programėlę windows&#8217;ams. Nenoriu visko pasakoti, nes reikia patiems pamatyti. Galiu pasakyti tiek, kad tiems, kam įdomi fizika, tikrai patiks. Nuoroda parsisiųsti: Phun_beta_5_28_win32]]></description>
			<content:encoded><![CDATA[<p>Sveiki,</p>
<p>Šiandien radau labai linksmą programėlę windows&#8217;ams. Nenoriu visko pasakoti, nes reikia patiems pamatyti. Galiu pasakyti tiek, kad tiems, kam įdomi fizika, tikrai patiks. <img src='http://tru.lt/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Nuoroda parsisiųsti: <a href="http://tru.lt/wp-content/uploads/2011/09/Phun_beta_5_28_win32.exe">Phun_beta_5_28_win32</a></p>
]]></content:encoded>
			<wfw:commentRss>http://tru.lt/linksma-programele-phun/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>WTF?</title>
		<link>http://tru.lt/wtf/</link>
		<comments>http://tru.lt/wtf/#comments</comments>
		<pubDate>Mon, 01 Aug 2011 13:28:19 +0000</pubDate>
		<dc:creator>Tomas</dc:creator>
				<category><![CDATA[Be Kategorijos]]></category>

		<guid isPermaLink="false">http://tru.lt/?p=319</guid>
		<description><![CDATA[]]></description>
			<content:encoded><![CDATA[<p><a href="http://tru.lt/wp-content/uploads/2011/08/bug.png"><img class="aligncenter size-medium wp-image-320" title="wtf" src="http://tru.lt/wp-content/uploads/2011/08/bug-300x167.png" alt="facebook" width="300" height="167" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://tru.lt/wtf/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Kaip pasigaminti RSS srautą savo svetainėje?</title>
		<link>http://tru.lt/kaip-pasigaminti-rss-srauta-savo-svetaineje/</link>
		<comments>http://tru.lt/kaip-pasigaminti-rss-srauta-savo-svetaineje/#comments</comments>
		<pubDate>Sat, 02 Jul 2011 14:27:25 +0000</pubDate>
		<dc:creator>Tomas</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Svetainių kūrimas]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[rss]]></category>

		<guid isPermaLink="false">http://tru.lt/?p=312</guid>
		<description><![CDATA[Tikriausiai ne vienoje interneto svetainėje matėte galimybę užsiprenumeruoti naujienas per RSS srautą. Jei dar nežinote, kas tai yra, (nors tuo abejoju), tuomet &#8222;pagooglinkit&#8220;. Šiame straipsnyje parodysiu, kaip tokį pasigaminti patiems. Kaip viskas vyksta? Jūsų PHP skriptas sugeneruoja XML failą, kurį RSS skaitytuvai iškoduoja ir atvaizduoja tvarkingą naujienų sąrašą. Pradedame Situacija: Turime lentelę MySQL duomenų bazėje, [...]]]></description>
			<content:encoded><![CDATA[<p>Tikriausiai ne vienoje interneto svetainėje matėte galimybę užsiprenumeruoti naujienas per RSS srautą. Jei dar nežinote, kas tai yra, (nors tuo abejoju), tuomet &#8222;pagooglinkit&#8220;.</p>
<p>Šiame straipsnyje parodysiu, kaip tokį pasigaminti patiems.</p>
<p><strong>Kaip viskas vyksta?</strong></p>
<p>Jūsų PHP skriptas sugeneruoja XML failą, kurį RSS skaitytuvai iškoduoja ir atvaizduoja tvarkingą naujienų sąrašą.</p>
<p><strong>Pradedame</strong></p>
<p>Situacija:<strong><br />
</strong></p>
<blockquote><p>Turime lentelę MySQL duomenų bazėje, kurioje saugomi visi įrašai, tarkim, lentelėje &#8216;posts&#8217;, kuri atrodo taip: id | title | post.</p>
<p>Taip pat kiekvienas įrašas turi savo puslapį svetainėje, tarkim, tokiu adresu: http://adresas.lt/post.php?id=&lt;id&gt;</p></blockquote>
<p>Pasirašykim skriptą, kuris ištrauks įrašus iš duomenų bazės ir įdės juos į masyvą. Tame pačiame faile vėliau atvaizduosim ir RSS srautą, tik reikės vienos antraštės (header). Įsivaizduokime, kad jau esame prisijungę prie MySQL serverio ir duomenų bazės, todėl šios skripto dalies nerašysiu.</p>
<pre class="brush:php">&lt;?php

// ištraukiam visus įrašus mažėjimo tvarka pagal ID (naujausias įrašas - pirmas masyve)
$feed = mysql_fetch_assoc(mysql_query("SELECT * FROM posts ORDER BY id DESC"));</pre>
<p>Dabar truputį aptarsime generuojamo XML failo struktūrą.</p>
<pre class="brush:xml">&lt;rss version="2.0"&gt;
&lt;channel&gt;
    &lt;title&gt;Pavadinimas&lt;/title&gt;
    &lt;link&gt;http://nuoroda.i.svetainę&lt;/link&gt;
    &lt;description&gt;Aprašymas&lt;/desription&gt;

    &lt;item&gt;
        &lt;!-- Čia apsirašo srauto įrašai.
             Naujas įrašas, nauja &lt;item&gt; žymė.
             Žymės tokios pačios, kaip ir aukščiau.
         --&gt;
        &lt;title&gt;Įrašo pavadinimas&lt;/title&gt;
        &lt;link&gt;Nuoroda į įrašą&lt;/link&gt;
        &lt;description&gt;Įrašas&lt;/description&gt;
    &lt;/item&gt;

&lt;/channel&gt;
&lt;/rss&gt;</pre>
<p>Kaip matot, nieko sudėtingo, paprastas XML failas.</p>
<p><strong>Tęsiame skriptą</strong></p>
<p>Reikia nurodyti naršyklei, jog čia yra RSS srauto failas, todėl siunčiame antraštę ir, kadangi toliau aprašysime RSS, užbaigiam PHP kodą (?&gt;):</p>
<pre class="brush:php">header("Content-Type: application/rss+xml;charset=utf-8");
?&gt;</pre>
<p>Apsirašom RSS taip, kaip anksčiau:</p>
<pre class="brush:xml">&lt;rss version="2.0"&gt;
&lt;channel&gt;
    &lt;title&gt;Pavadinimas&lt;/title&gt;
    &lt;link&gt;http://nuoroda.i.svetainę&lt;/link&gt;
    &lt;description&gt;Aprašymas&lt;/desription&gt;</pre>
<p>Atvaizduojant įrašus patogu naudoti foreach sakinį, kadangi turime rezultatų masyvą.</p>
<pre class="brush:php">&lt;? foreach($feed as $post): ?&gt;

    &lt;item&gt;
	&lt;title&gt;&lt;?= $post['title'] ?&gt;&lt;/title&gt;
        &lt;link&gt;http://adresas.lt/post.php?id=&lt;?= $post['id'] ?&gt;&lt;/link&gt;
	&lt;description&gt;&lt;?= $post['post'] ?&gt;&lt;/description&gt;
    &lt;/item&gt;

&lt;? endforeach; ?&gt;

&lt;/channel&gt;
&lt;/rss&gt;</pre>
<p>Štai tiek, tikrai nėra nieko sudėtingo. O dabar visas skriptas:</p>
<pre class="brush:php">&lt;?php

// ištraukiam visus įrašus mažėjimo tvarka pagal ID (naujausias įrašas - pirmas masyve)
$feed = mysql_fetch_assoc(mysql_query("SELECT * FROM posts ORDER BY id DESC"));

header("Content-Type: application/rss+xml;charset=utf-8");
?&gt;

&lt;rss version="2.0"&gt;
&lt;channel&gt;
    &lt;title&gt;Pavadinimas&lt;/title&gt;
    &lt;link&gt;http://nuoroda.i.svetainę&lt;/link&gt;
    &lt;description&gt;Aprašymas&lt;/desription&gt;

    &lt;? foreach($feed as $post): ?&gt;

	&lt;item&gt;
	    &lt;title&gt;&lt;?= $post['title'] ?&gt;&lt;/title&gt;
	    &lt;link&gt;http://adresas.lt/post.php?id=&lt;?= $post['id'] ?&gt;&lt;/link&gt;
	    &lt;description&gt;&lt;?= $post['post'] ?&gt;&lt;/description&gt;
	&lt;/item&gt;

    &lt;? endforeach; ?&gt;

&lt;/channel&gt;
&lt;/rss&gt;</pre>
]]></content:encoded>
			<wfw:commentRss>http://tru.lt/kaip-pasigaminti-rss-srauta-savo-svetaineje/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>QR kodo generavimas su PHP</title>
		<link>http://tru.lt/qr-kodo-generavimas-su-php/</link>
		<comments>http://tru.lt/qr-kodo-generavimas-su-php/#comments</comments>
		<pubDate>Wed, 29 Jun 2011 14:35:49 +0000</pubDate>
		<dc:creator>Tomas</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Svetainių kūrimas]]></category>
		<category><![CDATA[code]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[phpqrcode]]></category>
		<category><![CDATA[qr]]></category>

		<guid isPermaLink="false">http://tru.lt/?p=307</guid>
		<description><![CDATA[Jei nežinote, kas yra QR kodas ir kam jis reikalingas, tuomet paskaitykite šį straipsnį. Jei jau žinote, galite skaityti toliau. Taigi, jog sugeneruotume QR kodo paveikslėlį, panaudosime atvirojo kodą PHP biblioteką PHP QR Code. Ją naudoti yra be galo paprasta, užtenka vos kelių PHP kodo eilučių ir nereikia jokių sudėtingų konfigūracijų. Tiesa, yra du reikalavimai: [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_308" class="wp-caption alignright" style="width: 210px"><a href="http://tru.lt/wp-content/uploads/2011/06/qr.png"><img class="size-full wp-image-308 " title="qr" src="http://tru.lt/wp-content/uploads/2011/06/qr.png" alt="http://tru.lt QR kodas" width="200" height="200" /></a><p class="wp-caption-text">http://tru.lt QR kodas</p></div>
<p>Jei nežinote, kas yra QR kodas ir kam jis reikalingas, tuomet paskaitykite <a title="QR kodas" href="http://www.elektronika.lt/straipsniai/pazintiniai/11669/qr-kodas/" target="_blank">šį straipsnį</a>.<br />
Jei jau žinote, galite skaityti toliau.</p>
<p>Taigi, jog sugeneruotume QR kodo paveikslėlį, panaudosime atvirojo kodą PHP biblioteką <a title="PHP QR Code" href="http://sourceforge.net/projects/phpqrcode" target="_blank"><strong>PHP QR Code</strong></a>. Ją naudoti yra be galo paprasta, užtenka vos kelių PHP kodo eilučių ir nereikia jokių sudėtingų konfigūracijų. Tiesa, yra du reikalavimai:</p>
<ol>
<li>PHP 5.2 arba naujesnė versija</li>
<li>PHP GD2 biblioteka</li>
</ol>
<p><strong>Kaip pradėti?</strong></p>
<ul>
<li>Parsisiunčiame naujausią versiją (įrašo rašymo metu 1.1.4) iš <a title="Parsisiųsti PHP QR Code" href="http://sourceforge.net/projects/phpqrcode/files/" target="_blank">šio puslapio</a>.</li>
<li>išarchyvuojame parsisiųstą archyvą ir sukeliame visus failus į savo serverį (apie 500 KB).</li>
<li>sukuriame PHP failą, kuriuo generuosime QR kodą, kuriame rašysime vieną iš sekančių skriptų.</li>
</ul>
<pre class="brush:php">&lt;?php
// Toks skriptas išves QR kodą tiesiai naršyklėje.
require 'phpqrcode/qrlib.php';
QRcode::png('kažkoks tekstas');</pre>
<pre class="brush:php">&lt;?php
// Toks skriptas išsaugos QR kodo PNG paveikslėlį serveryje.
require 'phpqrcode/qrlib.php';
QRcode::png('kažkoks tekstas', 'QR.png');</pre>
<p>Yra ir daugiau parametrų, tačiau į juos nesigilinsime, nes tiesiog norėjau parodyti, kaip paprasta sugeneruoti QR kodą.</p>
<p>Daugiau informacijos apie šią biblioteką galima rasti jos kūrėjų puslapyje <a title="phpqrcode.sourceforge.net" href="http://phpqrcode.sourceforge.net/" target="_blank">phpqrcode.sourceforge.net</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://tru.lt/qr-kodo-generavimas-su-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Citatos Tavo svetainei</title>
		<link>http://tru.lt/citatos-tavo-svetainei/</link>
		<comments>http://tru.lt/citatos-tavo-svetainei/#comments</comments>
		<pubDate>Tue, 14 Jun 2011 17:41:51 +0000</pubDate>
		<dc:creator>Tomas</dc:creator>
				<category><![CDATA[Be Kategorijos]]></category>

		<guid isPermaLink="false">http://tru.lt/?p=304</guid>
		<description><![CDATA[Sveiki, Pasinaudojęs vieno žmogaus pasiūlymu sukurti WordPress valdiklį, kuris paima citatas iš mano svetainės, sugalvojau parašyti nesudėtingą sistemą, kuri leistų pasiimti citatas kiekvienam turinčiam savo svetainę. Daug netestavau, todėl nesu tikras, ar viskas veikia taip, kaip turėtų, todėl labai nepeikit, jei kas ne taip. Sistemos aprašymas Citatos.Eu svetainėje šiame puslapyje. Jei aprašyme yra klaidų, norėčiau, [...]]]></description>
			<content:encoded><![CDATA[<p>Sveiki,</p>
<p>Pasinaudojęs vieno žmogaus <a href="http://skaitykit.lt/forumas/viewtopic.php?f=13&amp;t=108">pasiūlymu sukurti WordPress valdikl</a>į, kuris paima citatas iš mano svetainės, sugalvojau parašyti nesudėtingą sistemą, kuri leistų pasiimti citatas kiekvienam turinčiam savo svetainę.</p>
<p>Daug netestavau, todėl nesu tikras, ar viskas veikia taip, kaip turėtų, todėl labai nepeikit, jei kas ne taip.</p>
<p>Sistemos aprašymas Citatos.Eu svetainėje <a href="http://citatos.eu/home/site" target="_blank">šiame puslapyje</a>. Jei aprašyme yra klaidų, norėčiau, kad praneštumėte. Svetimi klaidas greičiau pastebi, nei tai padarai pats. <img src='http://tru.lt/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://tru.lt/citatos-tavo-svetainei/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Svetainė: Citatos.Eu — Citatos. Protingos mintys.</title>
		<link>http://tru.lt/svetaine-citatos-eu-%e2%80%94-citatos-protingos-mintys/</link>
		<comments>http://tru.lt/svetaine-citatos-eu-%e2%80%94-citatos-protingos-mintys/#comments</comments>
		<pubDate>Sun, 12 Jun 2011 10:18:33 +0000</pubDate>
		<dc:creator>Tomas</dc:creator>
				<category><![CDATA[Be Kategorijos]]></category>

		<guid isPermaLink="false">http://tru.lt/?p=300</guid>
		<description><![CDATA[Visada norėjau sukurti savo WEB svetainę pats, t.y. be jokių TVS ir pan. Mano noras išsipildė. Per kelias savaites su pertraukom ir darbu porą valandų per dieną sugebėjau sukurti didžiąją dalį svetainės. Kodėl ir kaip kūriau ją, galima pasiskaityt šios svetainės skiltyje &#8222;Apie Svetainę&#8220;. Beieškant citatų, radau gana ne mažai tokio tipo svetainių, tai gal [...]]]></description>
			<content:encoded><![CDATA[<p>Visada norėjau sukurti savo WEB svetainę pats, t.y. be jokių TVS ir pan. Mano noras išsipildė. Per kelias savaites su pertraukom ir darbu porą valandų per dieną sugebėjau sukurti didžiąją dalį svetainės. Kodėl ir kaip kūriau ją, galima pasiskaityt šios svetainės skiltyje <a title="Apie Svetainę" href="http://citatos.eu/home/about" target="_blank">&#8222;Apie Svetainę&#8220;</a>.</p>
<p>Beieškant citatų, radau gana ne mažai tokio tipo svetainių, tai gal tokių svetainių savininkai labai nesupyks už tokį idėjos &#8222;kopijavimą&#8220;&#8230; <img src='http://tru.lt/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<p>Norėčiau, kad įvertintumėt mano darbą, pirmiausiai iš techninės pusės, gal kokių klaidų, kurių nepastebėjau, rasit. Turinio kol kas nėra labai jau daug. Tai tiek, neturiu ką daugiau pasakyt. Laukiu Jūsų atsiliepimų. <img src='http://tru.lt/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Nuoroda į svetainę: <a title="Citatos.Eu — Citatos. Protingos mintys." href="http://citatos.eu/" target="_blank">Ci.Tru.Lt</a></p>
]]></content:encoded>
			<wfw:commentRss>http://tru.lt/svetaine-citatos-eu-%e2%80%94-citatos-protingos-mintys/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Mokomės Python vartotojo sąsajos kūrimo su Tkinter moduliu</title>
		<link>http://tru.lt/mokomes-python-vartotojo-sasajos-kurimo-su-tkinter-moduliu/</link>
		<comments>http://tru.lt/mokomes-python-vartotojo-sasajos-kurimo-su-tkinter-moduliu/#comments</comments>
		<pubDate>Tue, 24 May 2011 19:30:57 +0000</pubDate>
		<dc:creator>Tomas</dc:creator>
				<category><![CDATA[Programavimas]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[gui]]></category>
		<category><![CDATA[oython]]></category>
		<category><![CDATA[tkinter]]></category>
		<category><![CDATA[vartotojo sąsaja]]></category>

		<guid isPermaLink="false">http://tru.lt/?p=293</guid>
		<description><![CDATA[Visai neseniai rašiau mažą programėlę informatikos pamokai kaip pavyzdį, kaip atrodo Python. Kadangi pagalvojau, kad rodyti vien tik konsolės langą (cmd), atrodo negražiai, paprogramavau šiokią tokią vartotojo sąsają (GUI). Taigi trumpai ir su pavyzdžiais pabandysiu aprašyti visą procesą. Prieš pradedant, noriu pranešti, kad bus reikalingos bent minimalios Python OOP žinios. Pirmiausiai, iškelkime sau problemą. Parašysime [...]]]></description>
			<content:encoded><![CDATA[<div id="attachment_295" class="wp-caption alignnone" style="width: 310px"><a href="http://tru.lt/wp-content/uploads/2011/05/fibonacis.jpg"><img class="size-medium wp-image-295" title="fibonacio seka" src="http://tru.lt/wp-content/uploads/2011/05/fibonacis-300x155.jpg" alt="Štai taip atrodys mūsų programa" width="300" height="155" /></a><p class="wp-caption-text">Štai taip atrodys mūsų programa</p></div>
<p>Visai neseniai rašiau mažą programėlę informatikos pamokai kaip pavyzdį, kaip atrodo Python. Kadangi pagalvojau, kad rodyti vien tik konsolės langą (cmd), atrodo negražiai, paprogramavau šiokią tokią vartotojo sąsają (GUI). Taigi trumpai ir su pavyzdžiais pabandysiu aprašyti visą procesą.</p>
<p>Prieš pradedant, noriu pranešti, kad bus reikalingos bent minimalios Python OOP žinios.</p>
<p>Pirmiausiai, iškelkime sau problemą. Parašysime programą, kuri atvaizduotų Fibonačio skaičių seką iki tam tikro skaičiaus, kurį mes įvesime patys. Programos lange turi būti: įvedimo laukelis, patvirtinimo mygtukas ir laukas, kuriame išvesime skaičių seką. Beje, funkcija, gauti Fibonačio skaičių seką, yra Python manual‘e, todėl nereikės jos rašytis patiems. Užteks truputį paredaguoti.<span id="more-293"></span>Pradedam nuo modulių įterpimo:</p>
<pre class="brush:py"># -*- coding: utf-8 -*-
from Tkinter import *
from tkFont import *</pre>
<p>Apsirašom klasę:</p>
<pre class="brush:py">class application(Tk):
   def __init__(self):
      Tk.__init__(self, parent)
      self.parent = parent
      self.initialize()</pre>
<p>Tk.__init__() inicijuoja Tkinter klasę, self.initialize() iškviečia mūsų klasės metodą.</p>
<p>Pradedam rašyti pagrindinį mūsų metodą, kuris ir sukurs visą programos langą:</p>
<pre class="brush:py">   def initialize(self):
      self.grid()</pre>
<p>grid() suskirsto programos langą į koordinates (0; 0 — kairysis viršutinis kampas). Tai turbūt pats lengviausias būdas išdėstyti elementus programos lange.</p>
<pre class="brush:py">      # nustatome šrifto, kuris bus naudojamas įrašymo ir atvaizdavimo laukuose, parametrus
      self.font = Font(self, family="Arial", size=15)
      # patvirtinimo mygtuko šriftas
      self.ButtonFont = Font(self, family="Arial", size=10)

      # sukuriame įrašo kintamąjį (StringVar() f-ja), įrašo laukelį, „pastatome“ jį į 0; 0 poziciją ir nustatome kintamojo reikšmę
      self.entryVar = StringVar()
      self.entry = Entry(self, font=self.font, textvariable=self.entryVar)
      self.entry.grid(column=0, row=0, sticky="WE")
      self.entryVar.set(u"Įveskite sveikąjį skaičių")</pre>
<p>Trumpai apie kiekvieną parametrą:</p>
<ul>
<li>font — nustato šriftą.</li>
<li>textvariable — nustato teksto kintamąjį</li>
<li>sticky — prie kurios kraštinės „prilipinti“ elementą
<ul>
<li>W — (West) kairė</li>
<li>E — (East) dešinė</li>
<li>N — (North) viršus</li>
<li>S — (South) apačia</li>
</ul>
</li>
</ul>
<p>Na, o „column“ ir „row“ aprašinėti manau, kad nereikia. Pavadinimai kalba patys už save. <img src='http://tru.lt/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><strong>Tęsiam darbą.</strong></p>
<pre class="brush:py">      # sukuriame patvirtinimo mygtuką. Parametrai identiški Entry() f-jai. Apie „command“ skaitykite po kodu
      button = Button(self, font=self.ButtonFont, text=u"Rodyti seką", command=self.OnButtonClick)
      button.grid(column=0, row=1, sticky="W")

      # sukuriame lauką, kuriame atvaizduosime seką, nepamirškime kintamojo. Parametrai vėlgi toki patys, kaip anksčiau. Nauji tik trys, bet apie juos po kodo
      self.labelVar = StringVar()
      label = Label(self, font=self.font, textvariable=self.labelVar, fg="black", bg="gray", wraplength=300)
      label.grid(column=0, row=3, sticky="WE")
      self.labelVar.set(u"Neįvestas joks skaičius")<strong>
</strong></pre>
<ul>
<li>fg — teksto spalva</li>
<li>bg — fono spalva</li>
<li>wraplength — kas kiek laužyti tekstą. T.y. perkelti į naują eilutę.</li>
<li>command — komanda, kurią turime įvykdyti, kai paspaudžiamas patvirtinimo mygtukas. Mes kreipiamės į metodą „OnButtonClick“, kurį aprašysime šiek tiek vėliau.</li>
</ul>
<pre class="brush:py">      # nurodome, kad keičiant lango dydį, keistųsi ir elementų dydis
      self.grid_columnconfigure(0, weight=1)
      # nurodome, kad keisti lango dydį galime tik horizontaliai
      self.resizable(True, False)
      # atnaujiname langą
      self.update()
      # nurodome, kad pelės kursorius iš karto būtų įrašo laukelyje. Taip pat laukelio tekstas pažymimas automatiškai.
      self.entry.focus_set()
      self.entry.selection_range(0, END)</pre>
<p>&nbsp;</p>
<p>Pagrindinis metodas baigtas. Dabar susikursime metodą, kuris įvykdys komandas (atvaizduos tekstą), paspaudus patvirtinimo mygtuką.</p>
<pre class="brush:applescript">   def OnButtonClick(self):
      self.labelVar.set( self.fib( int( self.entryVar.get() ) ) )

      self.entry.focus_set()
      self.entry.selection_range(0, END)</pre>
<p>Čia suteikiame kintamąjam „labelVar“ (self.labelVar.set) reikšmę. Reikšmė — metodo fib() grąžinta reikšmė. Metodo fib() argumentas  — iš įrašo laukelio paimta reikšmė (self.entryVar.get()), kuri paverčiama į sveikojo skaičiaus tipą (int()).<br />
Ir paskutinis klasės metodas — fib:</p>
<pre class="brush:py">   def fib(self, n):
      self.result = ''
      self.a, self.b = 0, 1
      while self.a &lt; n:
         self.result = self.result+' '+ str(self.a)
         self.a, self.b = self.b, self.a + self.b
      return self.result</pre>
<p>Klasė baigta, dabar tereikia ją iškviesti, nustatyti lango pavadinimą ir paleisti ciklą, kurio dėka programa iš karto neišsijungs.</p>
<pre class="brush:applescript">app = application(None)
app.title(u"Fibonačio seka")
app.mainloop()</pre>
<p>Na ir ką, dabar galima paleisti programą ir įvesti bet kokį sveikąjį skaičių ir bus atvaizduota seka iki to skaičiaus. Žinoma, praktikoje šios programos pritaikyti, galima sakyti, nėra kur, tačiau nepamirškit, kad ji veikia tik supažindinimo tikslu.</p>
<p>Pabaigai visas kodas nuo A iki Ž:</p>
<pre class="brush:py"># -*- coding: utf-8 -*-
from Tkinter import *
from tkFont import *

class application(Tk):
   def __init__(self, parent):
      Tk.__init__(self, parent)
      self.parent = parent
      self.initialize()

   def initialize(self):
      self.grid()
      self.font = Font(self, family="Arial", size=15)

      self.ButtonFont = Font(self, family="Arial", size=10)

      self.entryVar = StringVar()
      self.entry = Entry(self, font=self.font, textvariable=self.entryVar)
      self.entry.grid(column=0, row=0, sticky="WE")
      self.entryVar.set(u"Įveskite sveikąjį skaičių")

      button = Button(self, font=self.ButtonFont, text=u"Rodyti seką", command=self.OnButtonClick)
      button.grid(column=0, row=1, sticky="W")

      self.labelVar = StringVar()
      label = Label(self, font=self.font, textvariable=self.labelVar, fg="black", bg="gray", wraplength=300)
      label.grid(column=0, row=3, sticky="WE")
      self.labelVar.set(u"Neįvestas joks skaičius")

      self.grid_columnconfigure(0, weight=1)
      self.resizable(True, False)
      self.update()
      self.entry.focus_set()
      self.entry.selection_range(0, END)

   def OnButtonClick(self):
      self.labelVar.set( self.fib( int( self.entryVar.get() ) ) )
      self.entry.focus_set()
      self.entry.selection_range(0, END)

   def fib(self, n):
      self.result = ''
      self.a, self.b = 0, 1
      while self.a &lt; n:
         self.result = self.result+' '+ str(self.a)
         self.a, self.b = self.b, self.a + self.b
      return self.result

app = application(None)
app.title(u"Fibonačio seka")
app.mainloop()</pre>
<p>P.S. Kadangi Pythonui svarbus kodo išdėstyma, rekomenduoju visą kodą perrašinėti patiems, nes WP teksto redaktorius, įskiepis, atvaizduojantis kodą, ar COPY-&gt;PASTE gali sujaukti reikalą su &#8222;whitespaces&#8220; visame kode. Ir šiaip, taip daugiau naudos, nes lengviau įsiminsite viską.</p>
<p><strong>ATNAUJINTA:</strong> šis straipsnis taip pat publikuojamas <a title="SkaitykIT.lt" href="http://www.skaitykit.lt/mokomes-python-vartotojo-sasajos-kurimo-su-tkinter-moduliu.htm" target="_blank">SkaitykIT.lt tinklaraštyje</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://tru.lt/mokomes-python-vartotojo-sasajos-kurimo-su-tkinter-moduliu/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Migruojam: us.lt -&gt; serveriai.lt</title>
		<link>http://tru.lt/migruojam-us-lt-serveriai-lt/</link>
		<comments>http://tru.lt/migruojam-us-lt-serveriai-lt/#comments</comments>
		<pubDate>Tue, 24 May 2011 18:50:33 +0000</pubDate>
		<dc:creator>Tomas</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://tru.lt/?p=287</guid>
		<description><![CDATA[Pavadinimas kalba pats už save. Prieš keletą dienų persikėliau į naują hostingą: serveriai.lt. To &#8222;kaltininkas&#8220; — pasiūlymas įsigyti bet kurį planą metams tik už 1 LT (vieną litą!!!). Nors man pilnai pakako ir us.lt pirmo SMS plano teikiamų resursų, neatsispyriau pagundai išbandyti ir turbūt geriausią, na, jei ir ne, tai bent vieną iš geriausių hostingų [...]]]></description>
			<content:encoded><![CDATA[<p>Pavadinimas kalba pats už save. Prieš keletą dienų persikėliau į naują hostingą: serveriai.lt. To &#8222;kaltininkas&#8220; — pasiūlymas įsigyti bet kurį planą metams tik už 1 LT (vieną litą!!!). Nors man pilnai pakako ir us.lt pirmo SMS plano teikiamų resursų, neatsispyriau pagundai išbandyti ir turbūt geriausią, na, jei ir ne, tai bent vieną iš geriausių hostingų Lietuvoje.</p>
<p>Beje, draugai, vykdant perkėlimą, kartais atsitinka nenumatytų dalykų: tai koks failas pasimeta, ar šiaip kas&#8230; Todėl, jei pamatysit, kad kažkas ne taip, kaip turi būt, tai būkit geri, praneškit.</p>
<p>IKI. <img src='http://tru.lt/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://tru.lt/migruojam-us-lt-serveriai-lt/feed/</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
	</channel>
</rss>

