<?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>Dar vieno analitiko svetainė &#187; Programavimas</title>
	<atom:link href="http://petras.kudaras.lt/archyvas/category/programavimas/feed" rel="self" type="application/rss+xml" />
	<link>http://petras.kudaras.lt</link>
	<description>Petras Kudaras</description>
	<lastBuildDate>Fri, 16 Jul 2010 05:39:17 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>CNN: Lietuviai turi daugiausiai laisvų dienų pasaulyje</title>
		<link>http://petras.kudaras.lt/archyvas/2009-10-15/cnn-lietuviai-turi-daugiausiai-laisvu-dienu-pasaulyje.html</link>
		<comments>http://petras.kudaras.lt/archyvas/2009-10-15/cnn-lietuviai-turi-daugiausiai-laisvu-dienu-pasaulyje.html#comments</comments>
		<pubDate>Thu, 15 Oct 2009 19:50:57 +0000</pubDate>
		<dc:creator>Petras Kudaras</dc:creator>
				<category><![CDATA[Lietuva]]></category>
		<category><![CDATA[Programavimas]]></category>
		<category><![CDATA[Trupiniai]]></category>

		<guid isPermaLink="false">http://petras.kudaras.lt/?p=972</guid>
		<description><![CDATA[Nežinau, kaip čia tiksliai CNN paskaičiavo, bet jie teigia, jog lietuviai ir brazilai turi daugiausiai laisvų dienų pasaulyje. Jei brazilai man iš tiesų asocijuojasi su saule, samba ir gyvenimu per daug sau nesukant galvos, tai lietuviai šioje kompanijoje gana sunkiai pritampa. Matyt čia tų laisvadienių Lietuvoje tiek daug dėl jau nebegaliojančio įstatymo, kuriuo būdavo perkėlinėjamos [...]]]></description>
			<content:encoded><![CDATA[<p>Nežinau, kaip čia tiksliai CNN paskaičiavo, bet jie teigia, jog <a href="http://money.cnn.com/2009/10/14/news/international/vacation_days/index.htm?section=money_news_economy">lietuviai ir brazilai turi daugiausiai laisvų dienų pasaulyje</a>. Jei brazilai man iš tiesų asocijuojasi su saule, samba ir gyvenimu per daug sau nesukant galvos, tai lietuviai šioje kompanijoje gana sunkiai pritampa. Matyt čia tų laisvadienių Lietuvoje tiek daug dėl jau nebegaliojančio įstatymo, kuriuo būdavo perkėlinėjamos savaitgalį išpuolančios šventės į kitas darbo dienas. Visgi, mano nuomone, šis faktas apie lietuvių „darbštumą“ iškalbingas: kai tiek daug atostogaujama, vertė nekuriama – lietuvių darbo produktyvumas yra <a href="http://epp.eurostat.ec.europa.eu/tgm/table.do?tab=table&amp;init=1&amp;plugin=1&amp;language=en&amp;pcode=tsieb030">vienas mažiausių</a> Europos Sąjungoje.</p>
<p>Įdomu, kaip darbo produktyvumo statistika pasikeis po šios krizės: ar ko nors išmoksime? Euforiško ekonomikos augimo metu buvome pratę kasmet iš darbdavio reikalauti vis daugiau, nors abejotina, ar mūsų sukuriama pridėtinė vertė augo proporcingai mūsų reikalavimams. Darbdaviui nebuvo kur dėtis: naujos darbo jėgos neprisišauksi, nes jos trūko. Dabar lazda apsisuko kitu galu, bet, kaip prieš beveik metus rašė buvęs kolega <em>Algimantas Variakojis</em>, <a href="http://vz.lt/Default2.aspx?ArticleID=5fbaad4e-68a3-4d25-b481-f653de33321b">vis dar atrodo, lyg krizės nėra</a>. O gal pokyčiai jau matomi?</p>
]]></content:encoded>
			<wfw:commentRss>http://petras.kudaras.lt/archyvas/2009-10-15/cnn-lietuviai-turi-daugiausiai-laisvu-dienu-pasaulyje.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Programavimo kalba ruby</title>
		<link>http://petras.kudaras.lt/archyvas/2006-11-06/programavimo-kalba-ruby.html</link>
		<comments>http://petras.kudaras.lt/archyvas/2006-11-06/programavimo-kalba-ruby.html#comments</comments>
		<pubDate>Mon, 06 Nov 2006 21:08:42 +0000</pubDate>
		<dc:creator>Petras Kudaras</dc:creator>
				<category><![CDATA[Meta]]></category>
		<category><![CDATA[Programavimas]]></category>

		<guid isPermaLink="false">http://petras.kudaras.lt/?p=593</guid>
		<description><![CDATA[Kaip gerai, kad yra toks dalykas kaip Interneto archyvas! Jo dėka išgelbėjau jau senokai prarastą svetainę apie programavimo kalbą Ruby, kurią dabar patalpinau adresu http://moxliukas.esu.as/ruby/. Mintį atgaivinti tai, kas prarasta, neseniai pietaujant pakišo EnC. Nežinau, kiek iš tos svetainės naudos, bet kam nors gal pravers keletas Ruby programų pavyzdžių bei pora (gana išsamių) straipsnių.]]></description>
			<content:encoded><![CDATA[<p>Kaip gerai, kad yra toks dalykas kaip <a href="http://web.archive.org">Interneto archyvas</a>! Jo dėka išgelbėjau jau senokai prarastą svetainę apie programavimo kalbą <em>Ruby</em>, kurią dabar patalpinau adresu <a href="http://moxliukas.esu.as/ruby/">http://moxliukas.esu.as/ruby/</a>. Mintį atgaivinti tai, kas prarasta, neseniai pietaujant pakišo <a href="http://blog.hardcore.lt/enc.conf/">EnC</a>. Nežinau, kiek iš tos svetainės naudos, bet kam nors gal pravers keletas <em>Ruby</em> programų <a href="http://moxliukas.esu.as/ruby/texts.html">pavyzdžių</a> bei pora (gana išsamių) <a href="http://moxliukas.esu.as/ruby/texts.html">straipsnių</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://petras.kudaras.lt/archyvas/2006-11-06/programavimo-kalba-ruby.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>PHP programuotojų susitikimas</title>
		<link>http://petras.kudaras.lt/archyvas/2005-08-20/php-programuotoju-susitikimas.html</link>
		<comments>http://petras.kudaras.lt/archyvas/2005-08-20/php-programuotoju-susitikimas.html#comments</comments>
		<pubDate>Sat, 20 Aug 2005 10:59:56 +0000</pubDate>
		<dc:creator>Petras Kudaras</dc:creator>
				<category><![CDATA[Blogsfera]]></category>
		<category><![CDATA[Lietuva]]></category>
		<category><![CDATA[Programavimas]]></category>

		<guid isPermaLink="false">http://petras.kudaras.lt/?p=479</guid>
		<description><![CDATA[Vakar dalyvavau PHP prijaučiančių susibėgime. Sakau, jog prijaučiančių, nes tarp programuotojų šmėstelėjo keletas merginų, o ir šiaip nemažai senųjų PHP programuotojų užsiima jau visai kitais reikalais, nelabai susijusiais su PHP ir netgi programavimu. Kalbų buvo nemažai &#8211; geru žodžiu neminėjom smartweb, taipogi pakeiksnojom PHP vystymą (dėl to, kad ištaisytos klaidos PHP5 nebackportinamos į PHP4, o [...]]]></description>
			<content:encoded><![CDATA[<p>Vakar dalyvavau <a href="http://www.php.lt/render/News;nid,567">PHP prijaučiančių susibėgime</a>. Sakau, jog prijaučiančių, nes tarp programuotojų šmėstelėjo keletas merginų, o ir šiaip nemažai senųjų PHP programuotojų užsiima jau visai kitais reikalais, nelabai susijusiais su PHP ir netgi programavimu. Kalbų buvo nemažai &#8211; geru žodžiu neminėjom <a href="http://www.smartweb.lt">smartweb</a>, taipogi pakeiksnojom PHP vystymą (dėl to, kad ištaisytos klaidos PHP5 nebackportinamos į PHP4, o kartu ir dėl to, jog vystymą kontroliuoja <a href="http://www.zend.com">Zend</a>&#8216;as). Buvo sugalvota idėja duoti visiems pasukti smegenis ir pabandyti optimizuoti vieną SQL užklausą, ties kuria <em>ABLomas</em> jau ilgokai užstrigęs.</p>
<p>Vėliau, jau likus tik kokiai dešimčiai žmonių, buvo kalbama apie tai, jog reikėtų bendros svetainės, kurioje butų galima dėti visus programuotojų nusiskundimus savo darbdaviais &#8211; šiek tiek specializuotas <a href="http://www.skundai.lt">skundai.lt</a> variantas, labiau orientuotas į <em>freelancer</em>&#8216;ius programuotojus ir dizainerius. Ši idėja kilo, nes kolegos programuotojai buvo pasibaisėję <a href="http://www.gaumina.lt">Gauminos</a> darbo sąlygomis. Be to, diskutavome ir apie tai, kokia yra Lietuvoje teisinė situacija su turinio cenzūra: t.y. ką daryti, jeigu kas nors yra nepatenkintas svetainės turiniu ir reikalauja jį pakeisti grasindamas teisinėmis priemonėmis. Nesu tikras, bet mano nuomonė visgi ta, jog tokie reikalavimai dažniausiai būna tušti, nebent yra pažeidžiamos autorinės teisės ar panašiai. Nuomonės skleidimas juk neturėtų būti cenzūruojamas.</p>
<p>Vėliau persikėlėme į <em>Mano klubą</em>, kur žaidėme <a href="http://www.centralconnector.com/GAMES/jenga.htm">Jenga</a>, ragavau <a href="http://www.google.com/search?q=sambukas">sambuko</a>, ir galų gale išsiskirstėm namo. Vienas keisčiausių nutikimų &#8212; visos sąskaitos buvo sumokėtos, pinigų joms nepritrūko, kaip tik atvirkščiai, jų buvo per daug.</p>
<p>Nuotraukas įdėsiu šiek tiek vėliau. Apie susitikimą dar rašo ir <a href="http://justinas.blogspot.com/2005/08/php-reloaded.html">scooox</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://petras.kudaras.lt/archyvas/2005-08-20/php-programuotoju-susitikimas.html/feed</wfw:commentRss>
		<slash:comments>5</slash:comments>
		</item>
		<item>
		<title>Kokia jūsų didžiausia programavimo klaida?</title>
		<link>http://petras.kudaras.lt/archyvas/2005-06-23/kokia-jusu-didziausia-programavimo-klaida.html</link>
		<comments>http://petras.kudaras.lt/archyvas/2005-06-23/kokia-jusu-didziausia-programavimo-klaida.html#comments</comments>
		<pubDate>Thu, 23 Jun 2005 13:38:28 +0000</pubDate>
		<dc:creator>Petras Kudaras</dc:creator>
				<category><![CDATA[Programavimas]]></category>
		<category><![CDATA[Trupiniai]]></category>

		<guid isPermaLink="false">http://petras.kudaras.lt/?p=454</guid>
		<description><![CDATA[Andy Lester, vienas iš pasaulinio lygio Perl programuotojų užduoda klausimą „kokia buvo tavo didžiausia su programavimu ar sistemų administravimu susijusi klaida?“ ir svarbiausia, ko ji tavęs išmokė? Nors jau pats nebeužsiimu programavimais ir administravimais, bet vis dar pamenu vieną pamoką, kurią išmokau kažką ne taip pakeitęs serverio konfigūracijoje: po to teko praleisti vos ne pusę [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.oreillynet.com/pub/au/1249">Andy Lester</a>, vienas iš pasaulinio lygio Perl programuotojų užduoda klausimą „<a href="http://www.oreillynet.com/pub/wlg/7134">kokia buvo tavo didžiausia su programavimu ar sistemų administravimu susijusi klaida?</a>“ ir svarbiausia, <em>ko ji tavęs išmokė</em>? Nors jau pats nebeužsiimu programavimais ir administravimais, bet vis dar pamenu vieną pamoką, kurią išmokau kažką ne taip pakeitęs serverio konfigūracijoje: po to teko praleisti vos ne pusę nakties atstatinėjant duomenis ir taisant klaidą. Dabar prieš lendant prie serverio ar tvarkant kokį nors seniai matytą kodą visada užduodu sau klausimą, kas bus, jeigu mano pertvarkymai ką nors sugadins – ar turiu atsargines duomenų kopijas, ar sugebėsiu jas greitai ir efektyviai atstatyti ir ar iš viso esu įsitikinęs, jog žinau ką darau. Kartais šias pamokas galima pritaikyti ir ne vien programavime, bet ir kitose gyvenimo srityse :)</p>
]]></content:encoded>
			<wfw:commentRss>http://petras.kudaras.lt/archyvas/2005-06-23/kokia-jusu-didziausia-programavimo-klaida.html/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>JavaScript shell</title>
		<link>http://petras.kudaras.lt/archyvas/2005-06-13/javascript-shell.html</link>
		<comments>http://petras.kudaras.lt/archyvas/2005-06-13/javascript-shell.html#comments</comments>
		<pubDate>Mon, 13 Jun 2005 10:02:54 +0000</pubDate>
		<dc:creator>Petras Kudaras</dc:creator>
				<category><![CDATA[Programavimas]]></category>

		<guid isPermaLink="false">http://petras.kudaras.lt/?p=446</guid>
		<description><![CDATA[Šiek tiek grįžtant prie kompiuterastzmų, užtikau UNIX stiliaus JavaScriptinę aplikaciją JS/UIX. Turint laiko galima suprogramuot su JS labai įdomių dalykų, netgi beveik operacinę sistemą ;)]]></description>
			<content:encoded><![CDATA[<p>Šiek tiek grįžtant prie kompiuterastzmų, užtikau UNIX stiliaus JavaScriptinę aplikaciją <a href="http://www.masswerk.at/jsuix/">JS/UIX</a>. Turint laiko galima suprogramuot su JS labai įdomių dalykų, netgi beveik operacinę sistemą ;)</p>
]]></content:encoded>
			<wfw:commentRss>http://petras.kudaras.lt/archyvas/2005-06-13/javascript-shell.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Čekai vs. slovakai</title>
		<link>http://petras.kudaras.lt/archyvas/2005-04-22/cekai-vs-slovakai.html</link>
		<comments>http://petras.kudaras.lt/archyvas/2005-04-22/cekai-vs-slovakai.html#comments</comments>
		<pubDate>Fri, 22 Apr 2005 09:28:58 +0000</pubDate>
		<dc:creator>Petras Kudaras</dc:creator>
				<category><![CDATA[Programavimas]]></category>

		<guid isPermaLink="false">http://petras.kudaras.lt/?p=428</guid>
		<description><![CDATA[Vakar buvo užvažiavę mūsų partneriai ir kolegos iš Čekijos, su kuriais po pokalbių darbe apie Čekijos akcijas ir makroekonominę situaciją praleidome ir vakarą vienoje Vilniaus užeigoje. Pokalbis dažnai sukosi apie įmones, apie verslą, apie visa tai, kas iš esmės mus ir sieja. Bekalbant su jais prisiminiau, jog esu susidaręs tokią nuomonę, jog Slovakija yra itin [...]]]></description>
			<content:encoded><![CDATA[<p>Vakar buvo užvažiavę mūsų partneriai ir kolegos iš Čekijos, su kuriais po pokalbių darbe apie Čekijos akcijas ir makroekonominę situaciją praleidome ir vakarą vienoje Vilniaus užeigoje. Pokalbis dažnai sukosi apie įmones, apie verslą, apie visa tai, kas iš esmės mus ir sieja. Bekalbant su jais prisiminiau, jog esu susidaręs tokią nuomonę, jog Slovakija yra itin agrarinė, neišsivysčiusi, o žmonės ten labiau išlaikę tradicijas, labiau „kaimietiški“ ir „nuo dūšios“ nei Čekijoje. Nežinau, ar tai tik <a href="http://moxliukas.esu.as/moxwiki/index.pl?kas=M.Kundera">Kunderos</a> knygų sudarytas įspūdis, tačiau kiek teko bendrauti su slovakais, šis mano požiūris lyg ir pasitvirtina (štai <a href="http://www.bsse.sk">Bratislavos birža</a> likvidumu tikrai nepasižymi). Kolegos čekai irgi patvirtino šį slovakų stereotipą: jų nuomone čekai yra vakarietiškesni, labiau kapitalistinio mąstymo, galvojantys apie pinigus. Tuo tarpu slovakai yra ramesni, kaimiškesni, bet žymiai šiltesni ir nuoširdesni. Čekų nuomone, slovakai labai paprasti ir nesididžiuojantys. Taigi, mano slovakų stereotipas tapo dar stipresnis.</p>
]]></content:encoded>
			<wfw:commentRss>http://petras.kudaras.lt/archyvas/2005-04-22/cekai-vs-slovakai.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Perliška vartotojų sistema</title>
		<link>http://petras.kudaras.lt/archyvas/2004-02-22/perliska-vartotoju-sistema.html</link>
		<comments>http://petras.kudaras.lt/archyvas/2004-02-22/perliska-vartotoju-sistema.html#comments</comments>
		<pubDate>Sun, 22 Feb 2004 23:00:24 +0000</pubDate>
		<dc:creator>Petras Kudaras</dc:creator>
				<category><![CDATA[Perl]]></category>
		<category><![CDATA[Programavimas]]></category>

		<guid isPermaLink="false">http://petras.kudaras.lt/?p=356</guid>
		<description><![CDATA[Skaičiausi čia neseniai apie Perlo modulį Class::DBI ir šiandieną sumaniau jį šiek tiek išbandyti. Šis modulis yra duomenų bazės objektinė abstrakcija, ir viską daro tokiame aukštame lygyje (t.y. taip toli nuo pačios duomenų bazės), kad norint ja naudotis net nereikia mokėti SQL (OK, OK, SQL visada pravartu mokėti, bet labai paprastiems dalykams gali to ir [...]]]></description>
			<content:encoded><![CDATA[<p>Skaičiausi čia neseniai apie Perlo modulį <a href="http://search.cpan.org/author/TMTM/Class-DBI-0.95/lib/Class/DBI.pm">Class::DBI</a> ir šiandieną sumaniau jį šiek tiek išbandyti. Šis modulis yra duomenų bazės objektinė abstrakcija, ir viską daro tokiame aukštame lygyje (t.y. taip toli nuo pačios duomenų bazės), kad norint ja naudotis net nereikia mokėti <abbr title="Sequential Query Language">SQL</abbr> (OK, OK, <abbr title="Sequential Query Language">SQL</abbr> visada pravartu mokėti, bet labai paprastiems dalykams gali to ir neprireikti). Taigi išbandymui sugalvojau pasirašyti vartotojų prisijungimo sistemą.</p>
<p><code>Class::DBI</code> priverčia viską apgalvoti ir išdėlioti objektiškai, į atskirus modulius, tad atsiranda krūvos mažų failiukų, kuriuos reikia dėti kažkur į atskirą <code>lib</code> direktoriją. Bet pirma pradėkim nuo <abbr title="Sequential Query Language">SQL</abbr> lentelės:</p>
<pre>
CREATE TABLE `vartotojai` (
  `vartotojoid` int(11) NOT NULL auto_increment,
  `login` varchar(40) NOT NULL default '',
  `pass` varchar(32) NOT NULL default '',
  `status` int(11) NOT NULL default '0',
  `vartotojaskada` timestamp(14) NOT NULL,
   PRIMARY KEY  (`vartotojoid`),
   UNIQUE KEY `login` (`login`)
) TYPE=MyISAM PACK_KEYS=0 AUTO_INCREMENT=1;</pre>
<p>Tiesa, <code>login</code> yra unikalus, tad realiai užtektų tik jį padaryt pirminiu raktu, bet man kažkodėl patinka turėti ir skaitinį vartotojo ID. Nevisai dar sugalvojau kodėl.</p>
<p>Pradedam apsirašinėti duomenų bazę. Byloje <code>lib/Bilekas/DBI.pm</code> saugom duomenų bazės prisijungimo duomenis:</p>
<pre>package Bilekas::DBI;
use base 'Class::DBI';
Bilekas::DBI-&gt;set_db('Main', 'dbi:mysql:bilekas', "root", "");
1;</pre>
<p>Apsirašome klasę <code>Bilekas::Vartotojas</code> ir išsaugom byloje <code>lib/Bilekas/Vartotojas.pm</code>:</p>
<pre>package Bilekas::Vartotojas;
use base 'Bilekas::DBI';
Bilekas::Vartotojas-&gt;table('vartotojai');
Bilekas::Vartotojas-&gt;columns(All =&gt; qw/vartotojoid login pass status vartotojaskada/);
1;</pre>
<p><code>Bilekas::Vartotojas</code> modulyje užtenka tik nurodyti kurią SQL lentelę naudoti, bei kokie yra tos lentelės stulpeliai (jeigu būtų ir daugiau lentelių tai reikėtų nurodyti ir ryšius tarp jų)</p>
<p>Galvojant apie ateitį, reikėtų pasirašyti ir vieną pagrindinį modulį <code>Bilekas.pm</code>, kuris būtų atsakingas už bendrą visai svetainei kodą (reikiamų modulių užkrovimą, CGI objekto sukūrimą, sesijas ir pan). Štai ir <code>Bilekas.pm</code>:</p>
<pre>package Bilekas;
use strict;
use CGI;
use CGI::Session;

BEGIN {
        use Exporter ();
	our (@ISA, @EXPORT);
        @ISA = qw/Exporter/;
        @EXPORT = qw/$q $s/;
}

our $q = new CGI;
our $s = new CGI::Session("driver:File", $q, {Directory =&gt; '/tmp'});

END {
	$s-&gt;close;
}
1;</pre>
<p>Šiame pakete yra šiek tiek magijos, kurią vertėtų paaiškinti. Pačioje pradžioje yra užkraunami moduliai <code>CGI</code> ir <code>CGI::Session</code>. Toliau eina BEGIN blokas, kuriuo iš paketo <code>Bilekas</code> vardų srities (<em>namespace</em>) eksportuojami kintamieji <code>$q</code> ir <code>$s</code> – tai leidžia vėliau bet kurioje byloje parašius <code>use Bilekas;</code> iš karto naudotis jau sukurtais ir užpildytais kintamaisiais <code>$q</code> ir <code>$s</code> (viename iš jų yra CGI objektas, o kitame – sesijos objektas).</p>
<p>Kitomis dvi eilutėmis yra sukuriami minėtieji eksportuojami kintamieji, o po to seka END blokas, kuri yra vykdomas paskutiniu programos gyvavimo metu. Jo pareiga yra teisingai įrašyti visus sesijos duomenis į bylą, kad jie neliktų laikinojoje atmintinėje (tą daro <code>$s-&gt;close;</code>)</p>
<p>Kadangi turime šitus modulius, galima pradėti jais naudotis. Pirma parašome <code>index.pl</code>, kuris nesant užsiregistravusio vartotojo rodys formą, kurios pagalba galima prisijungti prie sistemos:</p>
<pre>#!/usr/bin/perl -w
use strict;
use lib './lib';

# Mūsų parašytieji moduliai
use Bilekas;
use Bilekas::Vartotojas;

# Siunčiame HTTP antraštes (su sausainiuku su sesijos informacija)
print $s-&gt;header;

# Jeigu yra nustatytas sesijos kintamasis, pranešantis apie klaidą, tai ją išspausdiname
if($s-&gt;param("bilekas_error")) {
        print "&lt;h1&gt;!!! " . $s-&gt;param("bilekas_error") . " !!!&lt;/h1&gt;";
	# Išspausdinę klaidos pranešimą ištriname šį sesijos kintamąjį, kad
	# nespausdintume klaidos keletą kartų
        $s-&gt;clear(['bilekas_error']);
}

# Jeigu yra nustatytas sesijos kintamasis 'user', reiškia vartotojas prisijungęs
if($s-&gt;param('user')) {
        print "Esi isilogines kaip UID &lt;em&gt;", $s-&gt;param('user')-&gt;{vartotojoid}, "&lt;/em&gt;";
} else {
	# Vartotojas neprisijungęs, rodome prisijungimo formą
        print &lt;&lt;EOHTML;
        &lt;form action="login.pl" method="post"&gt;
        &lt;input type="text" name="user"&gt;&lt;br&gt;
        &lt;input type="password" name="pass"&gt;&lt;br&gt;
        &lt;input type="submit"&gt;
        &lt;/form&gt;
EOHTML
}</pre>
<p>Beliko parašyti patį prisijungimo kodą <code>login.pl</code>:</p>
<pre>#!/usr/bin/perl -w
use strict;
use lib './lib';

use Bilekas;
use Bilekas::Vartotojas;
use Digest::MD5 qw/md5_hex/;

my $location = $q-&gt;referer || 'index.pl';

if ($q-&gt;param('user') &amp;&amp; $q-&gt;param('pass')) {
        my $user = Bilekas::Vartotojas-&gt;retrieve(login =&gt; $q-&gt;param('user'),
                                                 pass  =&gt; md5_hex($q-&gt;param('pass')));
	if ($user) {
		$s-&gt;param('user', $user);
		$s-&gt;expire(user =&gt; "+15m");
	} else {
		$s-&gt;param('bilekas_error', "Blogas login/pass");
        }
}

print $s-&gt;header(-location =&gt; $location);</pre>
]]></content:encoded>
			<wfw:commentRss>http://petras.kudaras.lt/archyvas/2004-02-22/perliska-vartotoju-sistema.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Sitepoint apie PHP::Strings</title>
		<link>http://petras.kudaras.lt/archyvas/2004-02-19/sitepoint-apie-phpstrings.html</link>
		<comments>http://petras.kudaras.lt/archyvas/2004-02-19/sitepoint-apie-phpstrings.html#comments</comments>
		<pubDate>Thu, 19 Feb 2004 10:32:31 +0000</pubDate>
		<dc:creator>Petras Kudaras</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Pastebėjimai]]></category>
		<category><![CDATA[Perl]]></category>
		<category><![CDATA[Programavimas]]></category>

		<guid isPermaLink="false">http://petras.kudaras.lt/?p=355</guid>
		<description><![CDATA[Harry Fuecks, PHPPatterns kūrėjas ir sitepoint PHP weblogo savininkas, pastebėjo minėtame webloge mano dabar palaikomą Perlo modulį PHP::Strings. Harry klaidingai mano, jog perlininkai priešiškai nusiteikę prieš PHP dėl to, kad pavydi jam sėkmės. Kiek teko bendrauti su viso pasaulio perlininkais, tai požiūris į PHP visada būdavo neigiamas ne dėl pavydo, o dėl to, kad PHP [...]]]></description>
			<content:encoded><![CDATA[<p><em>Harry Fuecks</em>, <a href="http://www.phppatterns.com/">PHPPatterns</a> kūrėjas ir <a href="http://www.sitepoint.com">sitepoint</a> <abbr title="PHP:&lt;br&gt;&lt;/abbr&gt; Hypertext Preprocessor">PHP</abbr> <em>weblogo</em> savininkas, pastebėjo <a href="http://www.sitepoint.com/blog-post-view.php?id=153748"<br />
rel="vote-abstain">minėtame</a> <em>webloge</em> mano dabar palaikomą Perlo modulį <a href="http://search.cpan.org/~kudarasp/PHP-Strings-0.28/">PHP::Strings</a>. Harry klaidingai mano, jog perlininkai priešiškai nusiteikę prieš <abbr title="PHP: Hypertext Preprocessor">PHP</abbr> dėl to, kad pavydi jam sėkmės. Kiek teko bendrauti su viso pasaulio perlininkais, tai požiūris į <abbr title="PHP: Hypertext Preprocessor">PHP</abbr> visada būdavo neigiamas ne dėl pavydo, o dėl to, kad <abbr title="PHP: Hypertext Preprocessor">PHP</abbr> nelaikoma <strong>rimta</strong> kalba (dėl tokio įsitikinimo  teisingumo, aišku, galima ginčytis, bet <em>enterprise</em> lygyje <abbr title="PHP: Hypertext&lt;br&gt;&lt;/abbr&gt; Preprocessor">PHP</abbr> vis dar neturi tokių stiprių pozicijų kaip Perl, Java ir panašiai). Na, tikiuosi neužvirs šventasis karas dėl mano palaikomo modulio. Juolab, kad stengsiuosi jį padaryti naudingesniu <abbr title="PHP: Hypertext&lt;br&gt;&lt;/abbr&gt; Preprocessor">PHP</abbr> programuotojams.</p>
]]></content:encoded>
			<wfw:commentRss>http://petras.kudaras.lt/archyvas/2004-02-19/sitepoint-apie-phpstrings.html/feed</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Santrumpų automatizavimas</title>
		<link>http://petras.kudaras.lt/archyvas/2004-02-10/santrumpu-automatizavimas.html</link>
		<comments>http://petras.kudaras.lt/archyvas/2004-02-10/santrumpu-automatizavimas.html#comments</comments>
		<pubDate>Tue, 10 Feb 2004 20:15:17 +0000</pubDate>
		<dc:creator>Petras Kudaras</dc:creator>
				<category><![CDATA[Meta]]></category>
		<category><![CDATA[Programavimas]]></category>

		<guid isPermaLink="false">http://petras.kudaras.lt/?p=347</guid>
		<description><![CDATA[Atsibodo kiekvieną kartą darant įrašą visoms santrumpoms &#60;abbr&#62; žymas dėlioti rankomis. Tad pasirašiau Perlinį skriptuką, kuris visą tai atlikea automatiškai. Visą skriptą rašiau troleibuse važiuodamas namo ant Psiono – vat dėl Perlo jį galima mylėti ;-) Šitam automatizavimui išrinkau visas santrumpas, kurios buvo naudotos mano dienoraštyje. Visos jos čia – gal kam pravers. API Application [...]]]></description>
			<content:encoded><![CDATA[<p>Atsibodo kiekvieną kartą darant įrašą visoms santrumpoms &lt;abbr&gt; žymas dėlioti rankomis. Tad pasirašiau<br />
Perlinį skriptuką, kuris visą tai atlikea automatiškai. Visą skriptą rašiau troleibuse važiuodamas namo ant Psiono<br />
– vat dėl Perlo jį galima mylėti ;-)</p>
<p>Šitam automatizavimui išrinkau visas santrumpas, kurios buvo naudotos mano dienoraštyje. Visos jos čia – gal kam<br />
pravers.</p>
<pre>
<abbr title="Appication Programmer's Interface&lt;br&gt;&lt;/abbr&gt;">API</abbr>	Application Programmer's Interface
<abbr title="American Standard Code for Information Interchange&lt;br&gt;&lt;/abbr&gt;">ASCII</abbr>	American Standard Code for Information Interchange
<abbr title="Common Gateway Interface&lt;br&gt;&lt;/abbr&gt;">CGI</abbr>	Common Gateway Interface
<abbr title="Content Management System&lt;br&gt;&lt;/abbr&gt;">CMS</abbr>	Content Management System
<abbr title="Comprehensive Perl Archive Network&lt;br&gt;&lt;/abbr&gt;">CPAN</abbr>	Comprehensive Perl Archive Network
<abbr title="Cascading Style Sheets&lt;br&gt;&lt;/abbr&gt;">CSS</abbr>	Cascading Style Sheets
<abbr title="Concurrent Version System&lt;br&gt;&lt;/abbr&gt;">CVS</abbr>	Concurrent Version System
<abbr title="Distributed Denial of Service&lt;br&gt;&lt;/abbr&gt;">DDOS</abbr>	Distributed Denial of Service
<abbr title="Denial of Service&lt;br&gt;&lt;/abbr&gt;">DOS</abbr>	Denial of Service
<abbr title="Digital Rights Management&lt;br&gt;&lt;/abbr&gt;">DRM</abbr>	Digital Rights Management
<abbr title="Document Type Definition&lt;br&gt;&lt;/abbr&gt;">DTD</abbr>	Document Type Definition
<abbr title="Friend Of A Friend&lt;br&gt;&lt;/abbr&gt;">FOAF</abbr>	Friend Of A Friend
<abbr title="GNU Public Licence&lt;br&gt;&lt;/abbr&gt;">GPL</abbr>	GNU Public Licence
<abbr title="Global Positioning System&lt;br&gt;&lt;/abbr&gt;">GPS</abbr>	Global Positioning System
<abbr title="HyperText Markup Language&lt;br&gt;&lt;/abbr&gt;">HTML</abbr>	HyperText Markup Language
<abbr title="Internet Protocol&lt;br&gt;&lt;/abbr&gt;">IP</abbr>	Internet Protocol
<abbr title="Internet Relay Chat&lt;br&gt;&lt;/abbr&gt;">IRC</abbr>	Internet Relay Chat
<abbr title="Just Another Perl Hacker&lt;br&gt;&lt;/abbr&gt;">JAPH</abbr>	Just Another Perl Hacker
<abbr title="Liquid Crystal Display&lt;br&gt;&lt;/abbr&gt;">LCD</abbr>	Liquid Crystal Display
<abbr title="Lib-Www Perl&lt;br&gt;&lt;/abbr&gt;">LWP</abbr>	Lib-Www Perl
<abbr title="Massachusetts Institute of Technology&lt;br&gt;&lt;/abbr&gt;">MIT</abbr>	Massachusetts Institute of Technology
<abbr title="Multimedia Messaging Service&lt;br&gt;&lt;/abbr&gt;">MMS</abbr>	Multimedia Messaging Service
<abbr title="PHP Extension and Application Repository&lt;br&gt;&lt;/abbr&gt;">PEAR</abbr>	<abbr title="PHP: Hypertext Preprocessor&lt;br&gt;&lt;/abbr&gt;">PHP</abbr> Extension and Application Repository
<abbr title="PHP Extension Community Library&lt;br&gt;&lt;/abbr&gt;">PECL</abbr>	<abbr title="PHP: Hypertext Preprocessor&lt;br&gt;&lt;/abbr&gt;">PHP</abbr> Extension Community Library
<abbr title="PHP: Hypertext Preprocessor&lt;br&gt;&lt;/abbr&gt;">PHP</abbr>	<abbr title="PHP: Hypertext Preprocessor&lt;br&gt;&lt;/abbr&gt;">PHP</abbr>: Hypertext Preprocessor
<abbr title="Perl Magic Cookie">PMC</abbr>	Perl Magic Cookie
<abbr title="Post Office Protocol version 3&lt;br&gt;&lt;/abbr&gt;">POP3</abbr>	Post Office Protocol version 3
<abbr title="Perl Package Manager&lt;br&gt;&lt;/abbr&gt;">PPM</abbr>	Perl Package Manager
<abbr title="Release Candidate&lt;br&gt;&lt;/abbr&gt;">RC</abbr>	Release Candidate
<abbr title="Resource Description Framework&lt;br&gt;&lt;/abbr&gt;">RDF</abbr>	Resource Description Framework
<abbr title="Really Simple Syndication&lt;br&gt;&lt;/abbr&gt;">RSS</abbr>	Really Simple Syndication
<abbr title="Simple Mail Transfer Protocol&lt;br&gt;&lt;/abbr&gt;">SMTP</abbr>	Simple Mail Transfer Protocol
<abbr title="Sequential Query Language&lt;br&gt;&lt;/abbr&gt;">SQL</abbr>	Sequential Query Language
<abbr title="Total Cost of Ownership&lt;br&gt;&lt;/abbr&gt;">TCO</abbr>	Total Cost of Ownership
<abbr title="Turinio Valdymo Sistema&lt;br&gt;&lt;/abbr&gt;">TVS</abbr>	Turinio Valdymo Sistema
<abbr title="Universal Resource Location&lt;br&gt;&lt;/abbr&gt;">URL</abbr>	Universal Resource Location
<abbr title="World Wide Web Consortium&lt;br&gt;&lt;/abbr&gt;">W3C</abbr>	World Wide Web Consortium
<abbr title="Wireless Application Protocol&lt;br&gt;&lt;/abbr&gt;">WAP</abbr>	Wireless Application Protocol
<abbr title="Wireless Markup Language&lt;br&gt;&lt;/abbr&gt;">WML</abbr>	Wireless Markup Language
<abbr title="XHTML Friends Network&lt;br&gt;&lt;/abbr&gt;">XFN</abbr>	<abbr title="eXtensible HyperText Markup Language&lt;br&gt;&lt;/abbr&gt;">XHTML</abbr> Friends Network
<abbr title="eXtensible HyperText Markup Language&lt;br&gt;&lt;/abbr&gt;">XHTML</abbr>	eXtensible HyperText Markup Language
<abbr title="eXtensible Markup Language&lt;br&gt;&lt;/abbr&gt;">XML</abbr>	eXtensible Markup Language
<abbr title="Cross Site Scripting&lt;br&gt;&lt;/abbr&gt;">XSS</abbr>	Cross Site Scripting
<abbr title="Secure SHell&lt;br&gt;&lt;/abbr&gt;">ssh</abbr>	Secure SHell
<abbr title="yet another compiler compiler&lt;br&gt;&lt;/abbr&gt;">yacc</abbr>	yet another compiler compiler</pre>
]]></content:encoded>
			<wfw:commentRss>http://petras.kudaras.lt/archyvas/2004-02-10/santrumpu-automatizavimas.html/feed</wfw:commentRss>
		<slash:comments>10</slash:comments>
		</item>
		<item>
		<title>Sesija baigias, grįžtu internetan</title>
		<link>http://petras.kudaras.lt/archyvas/2004-01-30/sesija-baigias-griztu-internetan.html</link>
		<comments>http://petras.kudaras.lt/archyvas/2004-01-30/sesija-baigias-griztu-internetan.html#comments</comments>
		<pubDate>Fri, 30 Jan 2004 10:34:18 +0000</pubDate>
		<dc:creator>Petras Kudaras</dc:creator>
				<category><![CDATA[Programavimas]]></category>
		<category><![CDATA[Trupiniai]]></category>

		<guid isPermaLink="false">http://petras.kudaras.lt/?p=336</guid>
		<description><![CDATA[Vakar pagaliau baigėsi kai kurie deadlainai, o šios savaitės pradžioje baigėsi ir sesija, tad galima šiek tiek ramiau grįžti į internetinį pasaulį. Ta proga krūva nuorodų: CSS hacks and filters – daugelio CSS gudrybių rinkinys vienoje vietoje (su labai naudinga lentele, rodančia kokiose naršyklėse jos (ne)veikia) Mezzoblue – wanted: CMS – Dave ieško geros turinio [...]]]></description>
			<content:encoded><![CDATA[<p>Vakar pagaliau baigėsi kai kurie <em>deadlainai</em>, o šios savaitės pradžioje baigėsi ir sesija, tad galima šiek tiek ramiau grįžti į internetinį pasaulį. Ta proga krūva nuorodų:</p>
<ul>
<li><a href="http://www.dithered.com/css_filters/"><abbr title="Cascading Style Sheets">CSS</abbr> hacks and filters</a> – daugelio <abbr title="Cascading Style Sheets">CSS</abbr> gudrybių rinkinys vienoje vietoje (su labai naudinga lentele, rodančia kokiose naršyklėse jos (ne)veikia)</li>
<li><a href="http://www.mezzoblue.com/archives/2004/01/09/wanted_cms/index.php">Mezzoblue – wanted: <abbr title="Content Management System">CMS</abbr></a> – <em>Dave</em> ieško geros turinio valdymo sistemos, ir gauna<br />
daug labai naudingų atsakymų.</li>
<li><a href="http://www-106.ibm.com/developerworks/library/ws-roles/index.html?ca=drs-tp0404">Web Services Project roles</a> – IBM mano, jog <em>web servisams</em> sukurti reikia viso kaimo darbuotojų. Truputį primena man knygą, kurią dabar skaitau – Scott Adams <em>„Dilbert and The Way of Weasel“</em></li>
<li><a href="http://www.onelook.com/reverse-dictionary.shtml">OneLook Reverse Dictionary</a> – atvirkštinis žodynas: suvedi aprašymą ir jis bando pateikti žodį.</li>
<li><a href="http://gisle.aas.no/perl/illguts/">PerlGuts Illustrated</a> – puikus pasiskaitymas tiems kas nebijo giliai sukišti rankas į Perlo vidurius.</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://petras.kudaras.lt/archyvas/2004-01-30/sesija-baigias-griztu-internetan.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
