<?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" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" version="2.0">

<channel>
	<title>[P4I - gykų urvas]</title>
	
	<link>http://www.p4i.lt</link>
	<description>Blogas apie gykiško gyvenimo džiaugsmus ir nelaimes.</description>
	<lastBuildDate>Tue, 20 Oct 2009 15:32:55 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" type="application/rss+xml" href="http://feeds.feedburner.com/p4i" /><feedburner:info xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" uri="p4i" /><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com/" /><item>
		<title>Monty Hall problema arba kaip praturtėti</title>
		<link>http://www.p4i.lt/monty-hall-problem-arba-kaip-praturteti.html</link>
		<comments>http://www.p4i.lt/monty-hall-problem-arba-kaip-praturteti.html#comments</comments>
		<pubDate>Sat, 24 Jan 2009 15:58:11 +0000</pubDate>
		<dc:creator>Tadas</dc:creator>
				<category><![CDATA[Smagumynai]]></category>

		<guid isPermaLink="false">http://www.p4i.lt/?p=151</guid>
		<description><![CDATA[
Nepraleiskite straipsnio &#8211; galbūt šios žinios jums kada nors uždirbs krūvą pinigų :].
Tarkime, dalyvaujate žaidime. Prieš jus 3 durys (žr. iliustraciją viršuje). Už vienų iš jų (tarkime #2) yra automobilis, už kitų dvejų ožkos (#1 ir #3). Tarkime, jūs pasirenkate #1 duris. Vedėjas atidaro duris, už kurių yra ožka (#3), ir siūlo jums pakeisti jūsų [...]]]></description>
			<content:encoded><![CDATA[<p><center><a href="http://en.wikipedia.org/wiki/Monty_Hall_problem"><img src="http://www.p4i.lt/wp-content/uploads/2009/01/monty_hall_problem.png"></a></center></p>
<p>Nepraleiskite straipsnio &#8211; galbūt šios žinios jums kada nors uždirbs krūvą pinigų :].</p>
<p>Tarkime, dalyvaujate žaidime. Prieš jus 3 durys (žr. iliustraciją viršuje). Už vienų iš jų (tarkime #2) yra automobilis, už kitų dvejų ožkos (#1 ir #3). Tarkime, jūs pasirenkate #1 duris. Vedėjas atidaro duris, už kurių yra ožka (#3), ir siūlo jums pakeisti jūsų pasirinkimą. Klausimas: ar jūs turite daugiau šansų laimėti automobilį pasilikdami prie savo spėjimo, ar pakeitę jį?</p>
<p>Atrodytų, renkantis vieną iš dviejų variantų šansai yra lygūs &#8211; juk bet kuriuo atveju nežinome, už kurių durų yra automobilis. Bet pasirodo ne &#8211; pakeitus savo spėjimą tikimybė laimėti automobilį yra 2/3, o pasilikus su savo spėjimu &#8211; tik 1/3.</p>
<p>Kodėl? Pasilikdamas su savo pirmu sprendimu jūs laimėsite tik tuo atveju, jei iškart pasirinkote automobilį, t.y. šansai lygūs 1/3. Atitinkamai šansų pasirinkti vieną iš ožkų yra 2/3. Pasirinkę ožką ir pakeitę savo spėjimą jūs laimėsite. Kadangi tikimybė pasirinkti ožką yra 2/3, todėl ir tikimybė laimėti pakeitus spėjimą yra 2/3.</p>
<p>Neįtikinau? Nieko baisaus. Parašiau skriptą, kuris simuliuoja žaidimą ir skaičiuoja, ar iš tiesų šansų laimėti pakeičiant savo sprendimą yra daugiau.</p>
<pre class="brush: php;">
&lt;?php
/*
Tadas Syčiovas, 2009

http://laisvai.net

-----
Monty Hall Problem simuliacija

http://en.wikipedia.org/wiki/Monty_Hall_problem

*/

$staying=0;
$switching=0;
//kiek kartų kartoti žaidimą?
$count=100000;

for ($i=0;$i&lt;=$count;$i++) {
	$choises=array('goat', 'goat', 'car');
	shuffle($choises);
	$user_choise=rand(0, 2);

	//vedėjas atidaro vienas duris. tai negali būti žaidėjo pasirinktos durys arba durys, už kurių stovi automobilis
	for ($a=0;$a&lt;=2;$a++) {
	     if ($a!=$user_choise and $choises[$a]!='car'){
	          unset($choises[$a]);
	     }
	}

	//ar laimime pasilikdami su pirmu sprendimu, ar pakeisdami jį?
	if ($choises[$user_choise]=='car')
		$staying++;
	else
		$switching++;
}

echo 'Staying: '.(100/$count*$staying).'%&lt;br&gt;
Switching: '.(100/$count*$switching).'%';
?&gt;
</pre>
<p>Skriptas tik viską patvirtina:<br />
<i>Staying: 33.52%<br />
Switching: 66.49%</i></p>
<p>Skaičiukai po kablelio varijuoja, bet rezultatas aiškus.</p>
<p>Na štai. Pasirodo teorija irgi gali būti įdomi :]. Jei kada šio straipsnio dėka laimėtumėte milijoną, būtų visai gražu pastatyti P4I gykams alaus :].</p>
<p>Daugiau informacijos: <a href="http://en.wikipedia.org/wiki/Monty_Hall_problem">http://en.wikipedia.org/wiki/Monty_Hall_problem</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.p4i.lt/monty-hall-problem-arba-kaip-praturteti.html/feed</wfw:commentRss>
		<slash:comments>26</slash:comments>
		</item>
		<item>
		<title>CHRISTMAS D00M | Kalėdinis sveikinimas nuo P4I</title>
		<link>http://www.p4i.lt/christmas-d00m-kaledinis-sveikinimas-nuo-p4i.html</link>
		<comments>http://www.p4i.lt/christmas-d00m-kaledinis-sveikinimas-nuo-p4i.html#comments</comments>
		<pubDate>Sat, 20 Dec 2008 13:36:32 +0000</pubDate>
		<dc:creator>Tadas</dc:creator>
				<category><![CDATA[P4I]]></category>
		<category><![CDATA[Smagumynai]]></category>

		<guid isPermaLink="false">http://www.p4i.lt/?p=140</guid>
		<description><![CDATA[
Kaip ir praeitais metais, šiais P4I chebra pristato mažą kalėdinę pramogą. Šį kartą tai žaidimas CHRISTMAS D00M.
Praeitais metais viską padarėm per kelias valandas, šių metų kūrinys pareikalavo kelių dienų. Kitų metų šventėms turbūt reikės pradėti ruoštis jau birželį :]
Jaukių Kalėdų ir linksmų Naujųjų!
]]></description>
			<content:encoded><![CDATA[<p><center><a href="http://www.p4i.lt/christmas_doom/"><img src="http://www.p4i.lt/christmas_doom/img/good.png" alt="Geras elfas" /></a></center></p>
<p>Kaip ir <a href="http://www.p4i.lt/naujametine-eglute.html">praeitais metais</a>, šiais P4I chebra pristato mažą kalėdinę pramogą. Šį kartą tai žaidimas <a href="http://www.p4i.lt/christmas_doom/">CHRISTMAS D00M</a>.</p>
<p>Praeitais metais viską padarėm per kelias valandas, šių metų kūrinys pareikalavo kelių dienų. Kitų metų šventėms turbūt reikės pradėti ruoštis jau birželį :]</p>
<p>Jaukių Kalėdų ir linksmų Naujųjų!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.p4i.lt/christmas-d00m-kaledinis-sveikinimas-nuo-p4i.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Apie daugiskaitą</title>
		<link>http://www.p4i.lt/apie-daugiskaita.html</link>
		<comments>http://www.p4i.lt/apie-daugiskaita.html#comments</comments>
		<pubDate>Wed, 29 Oct 2008 01:00:18 +0000</pubDate>
		<dc:creator>Armandas</dc:creator>
				<category><![CDATA[Kodas]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[python daugiskaita]]></category>

		<guid isPermaLink="false">http://www.p4i.lt/?p=130</guid>
		<description><![CDATA[Neseniai užmačiau vieną iš Artūro projektų. Iš karto prisiminiau, kad turiu nebaigtą blogo funkciją žodžių vertimui iš daugiskaitos į vienaskaitą:

def dgs&#40;number, word=''&#41;:
    &#34;&#34;&#34;Pluralization for Lithuanian (works partially)
&#160;
       Kaip argumentą pateikite daugiskaitos vardininką
        - Pvz1: {{ 10&#124;dgs:&#34;Komentarai&#34;}}
    [...]]]></description>
			<content:encoded><![CDATA[<p>Neseniai užmačiau <a href="http://github.com/arturaz/as_lt_words/tree/master">vieną</a> iš <a href="http://github.com/arturaz/">Artūro projektų</a>. Iš karto prisiminiau, kad turiu nebaigtą blogo funkciją žodžių vertimui iš daugiskaitos į vienaskaitą:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">def</span> dgs<span style="color: black;">&#40;</span>number, word=<span style="color: #483d8b;">''</span><span style="color: black;">&#41;</span>:
    <span style="color: #483d8b;">&quot;&quot;&quot;Pluralization for Lithuanian (works partially)
&nbsp;
       Kaip argumentą pateikite daugiskaitos vardininką
        - Pvz1: {{ 10|dgs:&quot;Komentarai&quot;}}
        - Pvz2: {{ 21|dgs:&quot;Knygos&quot;}}
    &quot;&quot;&quot;</span>
    <span style="color: #ff7700;font-weight:bold;">if</span> number <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">range</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">11</span>,<span style="color: #ff4500;">20</span><span style="color: black;">&#41;</span> <span style="color: #ff7700;font-weight:bold;">or</span> <span style="color: black;">&#40;</span>number <span style="color: #66cc66;">%</span> <span style="color: #ff4500;">10</span><span style="color: black;">&#41;</span> == <span style="color: #ff4500;">0</span>:
        <span style="color: #808080; font-style: italic;">#masculine and feminine forms are the same</span>
        word = word<span style="color: black;">&#91;</span>:-<span style="color: #ff4500;">2</span><span style="color: black;">&#93;</span> + u<span style="color: #483d8b;">&quot;ų&quot;</span>
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">elif</span> number == <span style="color: #ff4500;">1</span> <span style="color: #ff7700;font-weight:bold;">or</span> <span style="color: black;">&#40;</span>number <span style="color: #66cc66;">%</span> <span style="color: #ff4500;">10</span><span style="color: black;">&#41;</span> == <span style="color: #ff4500;">1</span>:
        <span style="color: #ff7700;font-weight:bold;">if</span> word<span style="color: black;">&#91;</span>-<span style="color: #ff4500;">2</span>:<span style="color: black;">&#93;</span> == <span style="color: #483d8b;">&quot;ai&quot;</span>:
            <span style="color: #808080; font-style: italic;">#masculine form</span>
            word = word<span style="color: black;">&#91;</span>:-<span style="color: #ff4500;">2</span><span style="color: black;">&#93;</span> + <span style="color: #483d8b;">&quot;as&quot;</span>
        <span style="color: #ff7700;font-weight:bold;">elif</span> word<span style="color: black;">&#91;</span>-<span style="color: #ff4500;">2</span>:<span style="color: black;">&#93;</span> == <span style="color: #483d8b;">&quot;os&quot;</span>:
            <span style="color: #808080; font-style: italic;">#feminine form</span>
            word = word<span style="color: black;">&#91;</span>:-<span style="color: #ff4500;">2</span><span style="color: black;">&#93;</span> + <span style="color: #483d8b;">&quot;a&quot;</span>
&nbsp;
    <span style="color: #808080; font-style: italic;">#default value is used in all other cases</span>
    <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #483d8b;">&quot;%d %s&quot;</span> <span style="color: #66cc66;">%</span> <span style="color: black;">&#40;</span>number, word<span style="color: black;">&#41;</span></pre></div></div>

<p>Nusprendžiau patobulinti taip, kad veiktų su bet kokiu daiktavardžiu, turinčiu vienaskaitos ir daugiskaitos formas (atkrenta tokie žodžiai kaip pienas, alus, durys, miltai).</p>
<p>Procesas buvo gan ilgas, Tomas astsiuntė žodžių sąrašą, su Python jį išparsinau, tada sekė duomenų analizavimas bei abstrakcija, o galiausiai programavimas (lengviausia dalis ;)</p>
<p>Šiaip rekomenduoju visiems pasižiūrėti į <a href="http://www.p4i.lt/wp-content/uploads/2008/10/plural.pys">kodą</a> ir prisitaikyti savuose projektuose. Kažkaip susidaro įspūdis, jog programuotojai bijo Lietuvių kalbos. Kur tik pažiūrėsi, vis matai &#8220;10 Komentarai (-ų)&#8221;, &#8220;5 Prekių (-ės)&#8221; ir pan. Tikrai nėra taip sunku parinkti tinkamą žodžio formą.</p>
<p>P.S. nebijokit Python&#8217;o, jis kaip pseudo-kodas :)</p>
<p>P.P.S. Žinau, kad mano <a title="Dive into Python: Unit testing" href="http://diveintopython.org/unit_testing/index.html#roman.intro">unit testas</a> nėra labai rafinuotas, tad kitą kartą pasitengsiu labiau :D</p>
]]></content:encoded>
			<wfw:commentRss>http://www.p4i.lt/apie-daugiskaita.html/feed</wfw:commentRss>
		<slash:comments>11</slash:comments>
		</item>
		<item>
		<title>Happy B-day to us!</title>
		<link>http://www.p4i.lt/happy-b-day-to-us.html</link>
		<comments>http://www.p4i.lt/happy-b-day-to-us.html#comments</comments>
		<pubDate>Thu, 23 Oct 2008 17:41:09 +0000</pubDate>
		<dc:creator>Tadas</dc:creator>
				<category><![CDATA[Gyvenimas]]></category>

		<guid isPermaLink="false">http://www.p4i.lt/?p=125</guid>
		<description><![CDATA[

                     i.
                     .7.
             [...]]]></description>
			<content:encoded><![CDATA[<pre style="background: black; color: #21ed00;">

                     i.
                     .7.
                    .. :v
                   c:  .x
                    i.::
                      :
                     ..i..
                    #MMMMM
                    0M  AM
                    8M  zM
                    4M  AM
                    2M  2MX#MM@1.
                    OM  tMMMMMMMMMMMM;
               .X#MMMM  :MMMMMMMMMMMMMv
           cEMMMMMMMMMU7@MMMMMMMMMMMMMM@
      .n@MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM
     MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM.
     MM                               ;M.
     $M                               EM
     WMO$@@@@@@@@@@@@@@@@@@@@@@@@@@@@OMM
     #M                               cM
     QM                               tM
     MM                               CMO
  .MMMM                               oMMMt
 1MO 6MMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMMM iMM
.M1  8M                               vM  'Mt
1M   @M ............................. WM   M6
 MM  .A8OQWWWWWWWWWWWWWWWWWWWWWWWWWWOAz2  #M
  MM                                     MM.
   @MMY                               vMME
     UMMMbi                      i8MMMMt
        C@MMMMMbt;;i.......i;XQMMMMMMt
             ;ZMMMMMMMMMMMMMMMM@A;.
</pre>
<p>Lygiai prieš 2 metus startavo P4I forumas. Neužilgo atsirado ir blogas. Projektas, prasidėjęs kaip avantiūra, vis dar gyvas ir nesiruošia niekur dingti. Tikimės, kad minėsim ir 3-ią, ir 4-ą ir tolesnius sukakojimus :)</p>
<p>Ta pačia proga norim pasveikinti ir <a href="http://co.nepo.lt/">Keturkampį apskritimą</a> ;) Jei ne Nepo, gal būtumėm ir pramiegoję savo šventę :D</p>
<p>P4I chebra</p>
]]></content:encoded>
			<wfw:commentRss>http://www.p4i.lt/happy-b-day-to-us.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Programuotojų diena</title>
		<link>http://www.p4i.lt/programuotoju-diena-2.html</link>
		<comments>http://www.p4i.lt/programuotoju-diena-2.html#comments</comments>
		<pubDate>Fri, 12 Sep 2008 12:54:21 +0000</pubDate>
		<dc:creator>Tadas</dc:creator>
				<category><![CDATA[Gyvenimas]]></category>
		<category><![CDATA[Programavimas]]></category>

		<guid isPermaLink="false">http://www.p4i.lt/?p=117</guid>
		<description><![CDATA[
Sveikiname visus kolegas ir prijaučiančius!
P4I komanda taip pat sudalyvavo programuotojų dienos konkurse. Pradėjome vakar apie 15 valandą su Tomu, vėliau prisijungė ir Armandas. Keikėmės daug, kelis kartus pasijutome lameriais, bet iš tikro jau senai taip smagiai programavom. Gėdos nepasidarėm (žr. criminal &#8211; Tomas buvo koordinatorius) &#8211; išsprendėm beveik visas užduotis, tik Captchai pritrūko laiko. Tiesa, [...]]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone" title="programmer day logo" src="http://www.programmerday.lt/images/logo2.png" alt="" width="360" height="160" /><br />
Sveikiname visus kolegas ir prijaučiančius!</p>
<p>P4I komanda taip pat sudalyvavo <a href="http://www.programmerday.lt/">programuotojų dienos konkurse</a>. Pradėjome vakar apie 15 valandą su Tomu, vėliau prisijungė ir Armandas. Keikėmės daug, kelis kartus pasijutome lameriais, bet iš tikro jau senai taip smagiai programavom. <a href="http://www.programmerday.lt/turnyras/index.php?page=results">Gėdos nepasidarėm</a> (žr. criminal &#8211; Tomas buvo koordinatorius) &#8211; išsprendėm beveik visas užduotis, tik <a title="Sprendimas" href="http://www.p4i.lt/forum/viewtopic.php?pid=6392#p6392">Captchai</a> pritrūko laiko. Tiesa, per paprasčiausią išsiblaškymą praradome nemažai taškų Planetų užduotyje, nors sprendimas buvo surastas akimirksniu.</p>
<p>Apibendrinus &#8211; konkursą užskaitome ir laukiame kitų metų.</p>
<p><a href="http://www.programmerday.lt/turnyras/index.php?page=contest">Užduotys čia</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.p4i.lt/programuotoju-diena-2.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Išleista Django 1.0 versija</title>
		<link>http://www.p4i.lt/isleista-django-10-versija.html</link>
		<comments>http://www.p4i.lt/isleista-django-10-versija.html#comments</comments>
		<pubDate>Thu, 04 Sep 2008 14:28:09 +0000</pubDate>
		<dc:creator>Armandas</dc:creator>
				<category><![CDATA[Atviras kodas]]></category>
		<category><![CDATA[Naujienos]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[django]]></category>

		<guid isPermaLink="false">http://www.p4i.lt/?p=114</guid>
		<description><![CDATA[Pagaliau pasirodė ilgai laukta, populiaraus web karkaso Django, 1.0 versija. Ši versija žymi visapusišką karkaso stabilumą. Nors ir iki šiol Django buvo labai plačiai naudojamas, dabar tai galima daryti dar drąsiau. Pakeitimai nebus tokie drastiški, o backwards compatibility yra garantuojamas.
Parsisiųsti galite iš http://www.djangoproject.com/download/.
]]></description>
			<content:encoded><![CDATA[<p>Pagaliau <a title="Django 1.0 is out" href="http://www.djangoproject.com/weblog/2008/sep/03/1/">pasirodė</a> ilgai laukta, populiaraus web karkaso <a title="Django web framework" href="http://www.djangoproject.com/">Django</a>, 1.0 versija. Ši versija žymi visapusišką karkaso stabilumą. Nors ir iki šiol Django buvo labai plačiai naudojamas, dabar tai galima daryti dar drąsiau. Pakeitimai nebus tokie drastiški, o <em>backwards compatibility</em> yra garantuojamas.</p>
<p>Parsisiųsti galite iš <a title="Get Django" href="http://www.djangoproject.com/download/">http://www.djangoproject.com/download/</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.p4i.lt/isleista-django-10-versija.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Pasidaryk pats: fraktalai</title>
		<link>http://www.p4i.lt/pasidaryk-pats-fraktalai.html</link>
		<comments>http://www.p4i.lt/pasidaryk-pats-fraktalai.html#comments</comments>
		<pubDate>Wed, 30 Jul 2008 21:44:57 +0000</pubDate>
		<dc:creator>Armandas</dc:creator>
				<category><![CDATA[Kodas]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Smagumynai]]></category>

		<guid isPermaLink="false">http://www.p4i.lt/?p=101</guid>
		<description><![CDATA[Fraktalas yra geometrinė forma, kuriai yra būdingas panašumas į save, bei begalinis detalumas. Mandelbroto aibė yra vienas iš žinomiausių fraktalų pasaulyje, išgarsėjęs apie 1980 metus. Vėlus tokio įspūdingo objekto atsiradimas buvo nulemtas modernių kompiuterių nebuvimo.
Nors Mandelbroto aibė yra begalo (tikrąja šio žodžio prasme) komplikuota forma, ją sugeneruoti galima naudojant neįtikėtinai paprastą formulę: z = z2 [...]]]></description>
			<content:encoded><![CDATA[<div class="wp-caption aligncenter" style="width: 510px"><a href="http://jarusauskas.googlepages.com/m_.png"><img title="Mandelbrot set" src="http://www.p4i.lt/wp-content/uploads/2008/07/mandelbrot_set.png" alt="Mandelbrot set" width="500" height="374" /></a><p class="wp-caption-text">Mandelbrot set</p></div>
<p>Fraktalas yra geometrinė forma, kuriai yra būdingas panašumas į save, bei begalinis detalumas. Mandelbroto aibė yra vienas iš žinomiausių fraktalų pasaulyje, išgarsėjęs apie 1980 metus. Vėlus tokio įspūdingo objekto atsiradimas buvo nulemtas modernių kompiuterių nebuvimo.</p>
<p>Nors Mandelbroto aibė yra begalo (tikrąja šio žodžio prasme) komplikuota forma, ją sugeneruoti galima naudojant neįtikėtinai paprastą formulę: <em><strong>z</strong></em> = <em><strong>z</strong></em><sup>2</sup> + C. Čia z yra <a href="http://en.wikipedia.org/wiki/Iterator">iteruojamas</a> kompleksinis skaičius, o C &#8211; konstanta &#8211; koordinatė kompleksinėje plokštumoje.<span id="more-101"></span></p>
<p>Skaičius priklauso Mandelbroto aibei, jei <em><strong>z</strong></em> niekada &#8220;nepabėga&#8221; į begalybę, nesvarbu kiek iteracijų būtų atlikta. Kadangi mes neturime galimybių tuom įsitikinti, galima nustatyti &#8220;pakankamai aukštą&#8221; pakartojimų skaičių, ir jei jį peržengus <em><strong>z</strong></em> visdar neviršija dviejų, laikyti, kad skaičius C priklauso Mandelbroto aibei.</p>
<p>Prieš pradedant gaminti savadarbius fraktalus, mums reikia sužinoti aibės ribas ir tuo pačiu nusistatyti keletą konstantų. Koordinačių plokštumoje, fraktalo reliatyvus dydis yra nekintantis. X ašyje <em><strong>z</strong></em> &#8220;nepabėga&#8221; į begalybę intervale [-2, 0.25]. Y ašyje &#8211; [-1, 1]. Kad fraktalas neatrodytų suspaustas, programoje naudosime intervalą [-2.2, 1] X ašiai ir [-1.2, 1.2] Y ašiai. Tokios ribos mums duos proporciją lygią 1.333333, kas reiškia, kad nurodę plotį 1024, aukštį gausime 768. Patogu, ar ne? ;)</p>
<p>Atkreipkite dėmesį, kad X ašyje yra realieji skaičiai, o Y &#8211; menamieji.</p>
<p>Žiūrime ką turime:</p>
<pre>    #kiek iteracijų darysime prieš nuspresdami,
    #kad skaičius priklauso aibei.
    max_i = 200

    #reliatyvūs dydžiai
    r_width = 3.2
    r_height = 2.4

    #pagal proporciją parinksime aukštį
    ratio = r_width / r_height

    #plotis bus nurodomas vartotojo
    width = int(sys.argv[1])
    height = int(width / ratio)

    #žingsnelis padės apskaičiuoti konkretaus pixelio koordinatę
    x_step = r_width / width
    y_step = r_height / height

    #realiųjų skaičių ašis
    x_axis = arange(-2.2, 1.0, x_step).tolist()
    #menamųjų skaičių ašis
    y_axis = arange(-1.2, 1.2, y_step).tolist()</pre>
<p>Ašims generuoti naudojame arange() (ne arrange!) funkciją, nes range() nepriima float tipo argumentų. Funkciją galima importuoti iš Numeric modulio.</p>
<p>Dabar apsirašysime reikalingas funkcijas. Pradėkime nuo skaičiaus <em><strong>z</strong></em> modulio. Jo radimui pritaikysime pitagoro teoremą. Funkcijos rezultatas yra modulio kvadratas, tad tikrindami ar skaičius priklauso aibei, lyginsime ne su dvejetu, o 2<sup>2</sup> t.y. 4.</p>
<pre>def r_sq(z):
    """
        Grąžina skaičiaus z modulį.
    """
    return z.real**2 + z.imag**2</pre>
<p>Dabar pagrindinė funkcija: mandelbrot(). Vienintelis būtinas argumentas &#8211; C. Funkcija yra rekursinė, <em><strong>z</strong></em> pradedamas nuo 0+0j ir kaskart jam pritaikoma formulė <em><strong>z</strong></em> = <em><strong>z</strong></em><sup>2</sup> + C. Funkcijos rezultatas &#8211; iteratorius <tt>i</tt>. Pagal jo reikšmę nustatysime kokią spalvą naudoti pikseliui.</p>
<pre>def mandelbrot(c, z=0+0j, i=0):
    """
        Checks if the number escapes to infinity
    """
    if r_sq(z) &gt; 4:
        return i
    elif i == max_i:
        return -1
    else:
        return mandelbrot(c, (z**2 + c), i+1)</pre>
<p>Keisdami laipsnį, kuriuo keliamas <em><strong>z</strong></em>, galite išgauti ir kitokias figūras:</p>
<div class="wp-caption alignleft" style="width: 110px"><img title="z^3" src="http://www.p4i.lt/wp-content/uploads/2008/07/m3.png" alt="z^3" width="100" height="74" /><p class="wp-caption-text">z^3</p></div>
<div class="wp-caption alignleft" style="width: 110px"><img title="z^5.5" src="http://www.p4i.lt/wp-content/uploads/2008/07/m5.5.png" alt="z^5.5" width="100" height="74" /><p class="wp-caption-text">z^5.5</p></div>
<div class="wp-caption alignleft" style="width: 110px"><img title="z^16" src="http://www.p4i.lt/wp-content/uploads/2008/07/m16.png" alt="z^16" width="100" height="74" /><p class="wp-caption-text">z^16</p></div>
<p>Jei darytumėm dvispalvį paveikslą, to mums pakaktų, tačiau spalvotam fraktalui reikia ir spalvinimo funkcijos. Nekursime nieko sudėtingo, panaudosime <a href="http://en.wikipedia.org/wiki/Quick-and-dirty">quick&amp;dirty</a> metodą &#8211; spalvų indeksą.</p>
<pre>def get_color(iterations):
    """
        Grąžina spalvos kodą, priklausomai nuo to, kada
        (jei išvis) skaičius "pabėgo" į begalybę
    """

    #atrodo, kad schema yra BGR, ne RGB :))
    index = {
        #iteracijos    #spalva
        (0, 1):        0xff0000,
        (1, 2):        0xff1000,
        (2, 3):        0xff2000,
        (3, 4):        0xff3000,
        (4, 5):        0xff4000,
        (5, 6):        0xff5000,
        (6, 7):        0xff6000,
        (7, 8):        0xff7000,
        (8, 10):       0xff9000,
        (10, 15):      0xffa600,
        (15, 21):      0xffb500,
        (21, 50):      0xffdf00,
        (50, max_i+1): 0xffffff,
    }
    for point in index:
        if iterations in range(point[0], point[1]):
            return index[point]</pre>
<p>Visas pixelių spalvas laikysime sąraše, kuris poto labai lengvai bus &#8220;sumetamas&#8221; į paveiksliuką.</p>
<pre>    #sukuriame kintamąjį duomenims
    out = []

    for y in y_axis:
        for x in x_axis:
            result = mandelbrot(complex(x, y))
            if result &lt; 0:
                #taškai, priklausantys aibei (juodi)
                out.append(0x000000)
            else:
                #taškai, kurie nepriklauso (gaunam spalvą)
                out.append(get_color(result))</pre>
<p>Paveikslėlio generavimui naudojam PIL biblioteką. Naudojimas labai paprastas:</p>
<pre>    img = Image.new('RGB', (width, height))
    img.putdata(out)
    img.save('m.png')</pre>
<p>Turintys python ir norintys išbandyti viską &#8220;dykai&#8221; gali <a title="Source code" href="http://www.p4i.lt/wp-content/uploads/2008/07/mandelbrot.py">atsisiųsti</a> scenarijų. Nesitikėkite nieko ypatingo. Programa neturi nei anti-aliasing savybės, nei tolygaus spalvų perėjimo. Įrašas skirtas daugiau supažindinimui, ir džiaugsmo &#8220;va pasidariau pats&#8221; patyrimui. Norintys kažko &#8220;geriau&#8221; gali naudoti specializuotas programas :)</p>
<p>Jei patobulinsite šį kodą, ar šiaip turite pastabų &#8211; parašykite komentaruose kas ir kaip.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.p4i.lt/pasidaryk-pats-fraktalai.html/feed</wfw:commentRss>
		<slash:comments>8</slash:comments>
		</item>
		<item>
		<title>Desertui – AutoIt</title>
		<link>http://www.p4i.lt/desertui-autoit.html</link>
		<comments>http://www.p4i.lt/desertui-autoit.html#comments</comments>
		<pubDate>Mon, 28 Jul 2008 17:01:53 +0000</pubDate>
		<dc:creator>Tadas</dc:creator>
				<category><![CDATA[Kodas]]></category>
		<category><![CDATA[Programavimas]]></category>
		<category><![CDATA[autoit programavimas]]></category>

		<guid isPermaLink="false">http://www.p4i.lt/?p=79</guid>
		<description><![CDATA[AutoIt &#8211; tai nemokama (bet ne atviro kodo) programavimo kalba, skirta automatizuoti ir palengvinti įvairius veiksmus &#8220;Windows&#8221; operacinėse sistemose. Pirmoji versija (išleista 1999 metų sausį) galėjo tik simuliuoti klavišų paspaudimus, bet 3 versija (išleista 2004 metų vasarį) turi visas programavimo kalbai būdingas savybes. Kodą galima sukompiliuoti į suspaustą exe failą, kuriam paleisti kituose kompiuteriuose nereikia [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.autoitscript.com/autoit3/">AutoIt</a> &#8211; tai nemokama (bet ne atviro kodo) programavimo kalba, skirta automatizuoti ir palengvinti įvairius veiksmus &#8220;Windows&#8221; operacinėse sistemose. Pirmoji versija (išleista 1999 metų sausį) galėjo tik simuliuoti klavišų paspaudimus, bet 3 versija (išleista 2004 metų vasarį) turi visas programavimo kalbai būdingas savybes. Kodą galima sukompiliuoti į suspaustą exe failą, kuriam paleisti kituose kompiuteriuose nereikia interpretatoriaus. Paprastas &#8220;Windows&#8221; aplinkos valdymas, TCP/UDP protokolų palaikymas, galimybė dirbti su Win32 DLLais, kodo bibliotekos ir žinoma paprasta sintaksė daro šią kalbą verta dėmesio.<br />
<span id="more-79"></span><br />
<a href="http://www.autoitscript.com/autoit3/downloads.shtml">Parsisiuntus</a> pilną AutoIt instaliaciją gaunate pilnai paruoštą aplinką programavimui. Praktiškai iškart galima rašyti programas naudojantis pateiktais pavyzdžiais, manualu ir patirtimi iš kitų kalbų (jei tokia yra), bet jei kyla neaiškumų, <a href="http://www.autoitscript.com/forum/">AutoIt forumas</a> yra ta vieta, į kurią turėtumėt keliauti pirma. Bendruomenė yra nemaža ir aktyvi, todėl greičiausiai iškilę klausimai jau bus atsakyti.</p>
<p>Su AutoIt ypač paprasta kurti GUI. Paprastas pavyzdys, kad geriau suprastume sintaksę:</p>
<pre>
#include &lt;GuiConstants.au3>
GUICreate('GUI', 170, 100)

;pirmas skaičius nurodo atitraukimą nuo kairės, antras - nuo viršaus, trečias - elemento ilgį
GUICtrlCreateLabel('Įvesk tekstą ir spausk mygtuką', 10, 10)
$input=GUICtrlCreateInput('', 10, 30, 100)
$button=GUICtrlCreateButton('Go!', 10, 60)

;padaro langą matomą vartotojui
GuiSetState()

While 1
	$msg=GuiGetMsg()
	If $msg=$GUI_EVENT_CLOSE Then Exit
	If $msg=$button Then Msgbox(0,'Tekstas', 'Tu suvedei tokį tekstą: '&#038;GUICtrlRead($input))
WEnd</pre>
<p>Įvykdytas šis kodas atrodys taip:<br />
<img src="http://www.p4i.lt/wp-content/uploads/2008/07/autoit_gui_example.png" alt="" title="autoit_gui_example" width="369" height="173" class="alignnone size-full wp-image-89" /></p>
<p>Manau kodo analizės nereikia &#8211; kiekvienam, turinčiam bent minimalią programavimo patirtį, viskas turėtų būti aišku.</p>
<p>Na gerai, o kaip su minėtu &#8220;Windows&#8221; valdymu? Dar paprasčiau.</p>
<pre>run('notepad.exe')
WinWaitActive('Untitled - Notepad')
Send('O hai.{ENTER}Just testing.')</pre>
<p><img src="http://www.p4i.lt/wp-content/uploads/2008/07/autoit_notepad_example.png" alt="" title="autoit_notepad_example" width="415" height="250" class="alignnone size-full wp-image-90" /><br />
Šios trys eilutės atidarys Notepadą ir suves į jį nurodytą tekstą. Visa tai gražu, bet pabandykime sukurti kažką naudingesnio, kad geriau suprastume AutoIt potencialą.</p>
<pre>;F10 klavišų kombinacijai priskiriame funkciją write()
HotKeySet('{F10}', 'write')

Func write()
	;ClipGet() funkcija grąžina clipboardo turinį
	$clipboard=ClipGet()
	;taip tikrinama, ar funkcija negrąžino erroro. Manuale aprašyta, kokias @error reikšmes kiekviena funkcija grąžina nesėkmės atveju.
	if @error Then
		MsgBox(0, 'Error', 'Arba tuščia, arba ne tekstas')
	Else
		;129 kombinacija gauta sudėjus 128 (UTF8) ir 1 (write mode)
		$handle=FileOpen('quotes.txt', 129)
		;įrašoma viena eilutė. Vietoj $handle galima nurodyti failo vardą (nereikia FileOpen ir FileClose), bet tada nebus UTF8 palaikymo
		FileWriteLine($handle, $clipboard)
		FileClose($handle)
		MsgBox(0, 'Done!', 'Citata išsaugota')
	;endif būtinas, jei if sąlygai priklauso daugiau nei viena eilutė
	EndIf
EndFunc

;amžinas ciklas reikalingas, kad programa tik startavus nebaigtų darbo. Taip pat galima naudoti sleep([laikas milisekundėmis])
While 1
WEnd</pre>
<p>Štai parašėme paprastą įrankį citatų rinkimui. Pažymėkite tekstą bet kur, nukopijuokite jį, spauskite F10 ir jis jau išsaugotas quotes.txt.</p>
<p>AutoIt nėra ta kalba, kurią rašytum į savo CV, bet ji tikrai naudingas įrankis paprastoms užduotims, dėl kurių nesinorėtų prasidėti su JAVA, C(++), etc.</p>
<p><strong>Alternatyvos</strong></p>
<p>http://en.wikipedia.org/wiki/AutoHotkey</p>
<p>http://en.wikipedia.org/wiki/ThinBasic</p>
<p><a href="http://en.wikipedia.org/wiki/Automator_(software)">http://en.wikipedia.org/wiki/Automator_(software)</a></p>
]]></content:encoded>
			<wfw:commentRss>http://www.p4i.lt/desertui-autoit.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PunBB atšaka – FluxBB</title>
		<link>http://www.p4i.lt/punbb-atsaka-fluxbb.html</link>
		<comments>http://www.p4i.lt/punbb-atsaka-fluxbb.html#comments</comments>
		<pubDate>Fri, 09 May 2008 21:46:37 +0000</pubDate>
		<dc:creator>Armandas</dc:creator>
				<category><![CDATA[Atviras kodas]]></category>
		<category><![CDATA[Naujienos]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://www.p4i.lt/?p=78</guid>
		<description><![CDATA[Neperseniausiai, PunBB komana paskelbė, kad forumo svetainė persikelia į naują serverį. Tai buvo naujų sąvininkų atsiradimo pasekmė. Nemažai vartotojų išreiškė nepasitenkinimą tokiu žingsniu, nes manė jog naujų savininkų požiūris nesutampa su projekto idėja.
Šiandien programuotojai pranešė sukūrę atšaką pavadinimu FluxBB. Tai dar vienas pavyzdys rodantis, kad atviras kodas negali būti užgožtas. Aš tuo tarpu raginu visus [...]]]></description>
			<content:encoded><![CDATA[<p>Neperseniausiai, PunBB komana <a href="http://punbb.informer.com/forums/viewtopic.php?pid=114166#p114166" rel="nofollow">paskelbė</a>, kad forumo svetainė persikelia į naują serverį. Tai buvo naujų sąvininkų atsiradimo pasekmė. Nemažai vartotojų išreiškė nepasitenkinimą tokiu žingsniu, nes manė jog naujų savininkų požiūris nesutampa su projekto idėja.</p>
<p>Šiandien programuotojai <a href="http://fluxbb.org/forums/viewtopic.php?pid=434#p434">pranešė</a> sukūrę atšaką pavadinimu <a href="http://fluxbb.org/">FluxBB</a>. Tai dar vienas pavyzdys rodantis, kad atviras kodas negali būti užgožtas. Aš tuo tarpu raginu visus naudojančius PunBB sekti naujienas FluxBB svetainėje ir visus atnaujinimus siųstis iš ten.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.p4i.lt/punbb-atsaka-fluxbb.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Paleidinėjam Django “localhost’e”</title>
		<link>http://www.p4i.lt/paleidinejam-django-localhoste.html</link>
		<comments>http://www.p4i.lt/paleidinejam-django-localhoste.html#comments</comments>
		<pubDate>Thu, 01 May 2008 01:26:14 +0000</pubDate>
		<dc:creator>Armandas</dc:creator>
				<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://www.p4i.lt/?p=76</guid>
		<description><![CDATA[Django tai Python web programavimo karkasas, skirtas sparčiam aplikacijų kūrimui. Django, kaip ir kitų kalbų karkasai &#8211; CakePHP, Ruby on Rails &#8211; naudoja MVC architektūrą. Šiame straipsnyje aptarsim Django development serverio paleidimą Linux sistemose.
Aš dirbsiu su Kubuntu 8.04 (Hardy Heron), tačiau su minimaliais pakeitimais serverį pasileisite ant bet kokios distribucijos. Taigi, mums prireiks:

XAMPP Linux 1.6.6
XAMPP [...]]]></description>
			<content:encoded><![CDATA[<p>Django tai Python web programavimo karkasas, skirtas sparčiam aplikacijų kūrimui. Django, kaip ir kitų kalbų karkasai &#8211; CakePHP, Ruby on Rails &#8211; naudoja MVC architektūrą. Šiame straipsnyje aptarsim Django development serverio paleidimą Linux sistemose.</p>
<p>Aš dirbsiu su Kubuntu 8.04 (Hardy Heron), tačiau su minimaliais pakeitimais serverį pasileisite ant bet kokios distribucijos. Taigi, mums prireiks:</p>
<ul>
<li><a class="link" href="http://www.apachefriends.org/download.php?xampp-linux-1.6.6.tar.gz">XAMPP Linux 1.6.6</a></li>
<li><a class="link" href="http://www.apachefriends.org/download.php?xampp-linux-devel-1.6.6.tar.gz">XAMPP Development package</a></li>
<li><a title="Apache mod_python" href="http://httpd.apache.org/modules/python-download.cgi">mod_python 3.3.1</a></li>
<li><a href="http://www.djangoproject.com/download/0.96.1/tarball/">Django-0.96.1</a></li>
</ul>
<p>Kadangi mūsų tikslas nėra paleisti viešą serverį, o tik sukurti aplinką patogiam programavimui su Django, pasinaudosime XAMPP paketais. Taigi, keliam pirmojo archyvo turinį į /opt katalogą:</p>
<p><tt>$ </tt><tt>sudo tar xvfz xampp-linux-1.6.6.tar.gz -C /opt</tt></p>
<p>Tą patį padarom su development paketu:</p>
<p><tt>$ </tt><tt>sudo tar xvfz xampp-linux-devel-1.6.6.tar.gz -C /opt</tt></p>
<p>Root&#8217;o teisės reikalingos norint rašyti į /opt katalogą, taip pat serveris bus paleidinėjamas su root teisėmis. Development paketas reikalingas norint pridėti papildomų modulių.</p>
<p>Toliau išsiskleidžiam mod_python archyvą ir cd&#8217;inam į tą katalogą. Pasiskaitom <a title="./configure" href="http://www.modpython.org/live/mod_python-3.3.1/doc-html/inst-configure.html">manualą</a> ir vedam tokią komandą:</p>
<p><tt>$ ./configure --with-apxs=/opt/lampp/bin/apxs</tt></p>
<p>Jei viskas gerai, o taip ir turėtų būti, sukompiliuosim modulį:</p>
<p><tt>$ make</tt></p>
<p>ir tada instaliuojame:</p>
<p><tt>$ sudo make install</tt></p>
<p>Dabar mums reikia <a title="Configuring Apache" href="http://www.modpython.org/live/mod_python-3.3.1/doc-html/inst-apacheconfig.html">sukonfigūruoti</a> Apache. Tam pirmiausia reikia sužinoti, kur buvo instaliuotas mūsų modulis, skrolinam terminalą į viršų ir randam kažką panašaus į:</p>
<p><tt>LoadModule python_module /opt/lampp/modules/mod_python.so</tt></p>
<p>Su jums patogiu editorium atsidarom httpd.conf failą (nepamirštam root teisių):</p>
<p><tt>$ </tt><tt>sudo nano /opt/lampp/etc/httpd.conf</tt></p>
<p>ir prie visų kitų modulių prirašom saviškį:</p>
<p><tt>LoadModule python_module /opt/lampp/modules/mod_python.so</tt></p>
<p>Na ir galiausiai <a title="Test mod_python" href="http://www.modpython.org/live/mod_python-3.3.1/doc-html/inst-testing.html">pratestuojame</a>. Sakydamas galiausiai, neturėjau omeny, kad darbas baigtas :) Iš tiesų, tai baigėsi lengviausia dalis. Dabar reikia instaliuoti ir sukonfigūruoti Django. Django instaliavimui yra du būdai, tačiau aš pasirinkau, mano manymu, lengvesnį bei aiškesnį. Taigi, išsiskleidžiame archyvą Django-0.96.1.tar.gz ir į einame į sukurtą katalogą. Iš ten kopijuojame viduje esantį django katalogą į python direktorijoje esančią site-packages direktoriją:</p>
<p><tt>$ sudo cp django /usr/lib/python2.5/site-packages/</tt></p>
<p>Atkreipkit dėmesį, kad jūsų sistemoje gali būti kitas kelias, tarkim /usr/lib/python2.4.</p>
<p>Dabar teks dar kartą atsidaryti httpd.conf bylą ir ten įrašyti <a title="Django with mod_python" href="http://www.djangoproject.com/documentation/modpython/">konfigūraciją django karkasui</a>:</p>
<p><tt>&lt;Location "/"&gt;<br />
SetHandler python-program<br />
PythonHandler django.core.handlers.modpython<br />
SetEnv DJANGO_SETTINGS_MODULE examples.settings<br />
PythonDebug On<br />
PythonPath "['/opt/lampp/www/'] + sys.path"<br />
&lt;/Location&gt;</tt></p>
<p>Pasiaiškinkim kas ką reiškia. &lt;Location &#8220;/&#8221;&gt; ne kelią sistemoje, bet nurodo adresą. Kadangi aš noriu, kad mano aplikacja būtų šakninėje direktorijoje, nurodau &#8220;/&#8221;. DJANGO_SETTINGS_MODULE saugo kelią iki aplikacijos nustatymų. Šiam kartui įrašykime examles.settings, vėliau žinosime kuo jį pakeisti. Dar mums reikia pridėti direktoriją, kurioje bus ieškoma python failų. Tiesiog įrašome savo direktoriją kurioje bus projektas &#8211; /opt/lampp/www/. Tai <strong>neturėtų</strong> būti DocumentRoot direktorija.</p>
<p>Na štai, liko paskutinis žingsnis. Iš Django-0.96.1 direktorijos nusikopijuojam katalogą examles ir jį padedam į /opt/lampp/htdocs/ (Patarčiau htdocs katalogui suteikti rašymo teises, kad dirbant nereiktų root teisių). Paleidžiam Apache serverį (kolkas mums nereikia MySQL):</p>
<p><tt>$ sudo /opt/lampp/lampp startapache</tt></p>
<p>Einame į <a href="http://localhost/" rel="nofollow">http://localhost/</a> ir matome neapsakomą vaizdą:</p>
<p><img src="http://www.p4i.lt/wp-content/uploads/2008/05/django_example.png" alt="Django example" width="397" height="251" /></p>
<p>Valio! Ak taip, kai ką pamiršome. /opt/lampp/htdocs/examples/ direktorijoje yra failas settings.py, tai tas failas kurį nurodėme httpd.conf faile. Kai kursite savo aplikaciją, pakeisite ten esančią reikšmę į savo: direktorija.settings.<br />
Visą dokumentaciją rasite adresu http://www.djangoproject.com/<br />
Susipažinti su Django karkasu galite skaitytami <a href="http://djangobook.com/">Django knygą</a>.</p>
<p>Smagaus programavimo!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.p4i.lt/paleidinejam-django-localhoste.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
