<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0">

<channel>
	<title>medutis PHP blog</title>
	
	<link>http://home.medutis.com/phpblog</link>
	<description>Lithuanian PHP blog</description>
	<pubDate>Fri, 03 Apr 2009 13:58:35 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/MedutisPhpBlog" type="application/rss+xml" /><item>
		<title>Darbo valandos su šventėm!</title>
		<link>http://home.medutis.com/phpblog/2009/04/03/darbo-valandos-su-sventem/</link>
		<comments>http://home.medutis.com/phpblog/2009/04/03/darbo-valandos-su-sventem/#comments</comments>
		<pubDate>Fri, 03 Apr 2009 13:58:35 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[PHP aktualijos]]></category>

		<category><![CDATA[PHP pamąstymai]]></category>

		<guid isPermaLink="false">http://home.medutis.com/phpblog/?p=42</guid>
		<description><![CDATA[Keletas kolegų pasigedo švenčių mano paviešintam &#8220;work helperyje&#8221;. Tad štai Jums pagerintas skriptas su išeiginėm!
Failas ir vėl guli čia, o sourcą galite peržiūrėti čia. Sekantis TODO: kažkaip sugalvoti integruoti darbo šeštadienius. Greičiausiai algoritmo jokio sukurt nepavyks, nebent kasmet &#8220;pasiupdate`int&#8221;, kai Vyriausybė paskelbia šventinius perkėlimus. Pvz. šiemet berods iš sausio 2&#8242;osios buvo perkėlimas į vasario 21ą. [...]]]></description>
			<content:encoded><![CDATA[<p>Keletas kolegų pasigedo švenčių mano paviešintam &#8220;work helperyje&#8221;. Tad štai Jums pagerintas skriptas su išeiginėm!<span id="more-42"></span></p>
<p>Failas ir vėl guli <a href="http://home.medutis.com/php/work_helper.rar">čia</a>, o sourcą galite peržiūrėti <a href="http://home.medutis.com/php/work_helper.phps">čia</a>. Sekantis TODO: kažkaip sugalvoti integruoti darbo šeštadienius. Greičiausiai algoritmo jokio sukurt nepavyks, nebent kasmet &#8220;pasiupdate`int&#8221;, kai Vyriausybė paskelbia šventinius perkėlimus. Pvz. šiemet berods iš sausio 2&#8242;osios buvo perkėlimas į vasario 21ą. O gal yra koks servisas šventinėms dienoms bei darbo šeštadieniams pasiimt? Kolkas ir neieškojau kur tos datos skelbiamos, gal žinote kur?</p>
]]></content:encoded>
			<wfw:commentRss>http://home.medutis.com/phpblog/2009/04/03/darbo-valandos-su-sventem/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PVM vargai</title>
		<link>http://home.medutis.com/phpblog/2009/01/07/pvm-vargai/</link>
		<comments>http://home.medutis.com/phpblog/2009/01/07/pvm-vargai/#comments</comments>
		<pubDate>Wed, 07 Jan 2009 11:38:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[PHP aktualijos]]></category>

		<guid isPermaLink="false">http://home.medutis.com/phpblog/?p=41</guid>
		<description><![CDATA[Valdžia sugalvojo naujų fokusų - keičiam PVM! Programuotojams irgi atsirado šiokio tokio darbelio - daugelyje savo skriptų pakeisti konstantas, kurios, atrodė, amžinai nesikeis  Mano darbe viskas buvo šiek tiek sudėtingiau, kadangi prekės kaina susiformuoja ne tik iš &#8220;kažkokio skaičiaus&#8221; + PVM. Yra produktai kurių kainos tipas yra &#8220;fiksuotas&#8221;, yra priklausomi nuo tiekėjo antkainio, nuo [...]]]></description>
			<content:encoded><![CDATA[<p>Valdžia sugalvojo naujų fokusų - keičiam PVM! Programuotojams irgi atsirado šiokio tokio darbelio - daugelyje savo skriptų pakeisti konstantas, kurios, atrodė, amžinai nesikeis <img src='http://home.medutis.com/phpblog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <a href="http://pigu.lt" target="_blank">Mano darbe</a> viskas buvo šiek tiek sudėtingiau, kadangi prekės kaina susiformuoja ne tik iš &#8220;kažkokio skaičiaus&#8221; + PVM. Yra produktai kurių kainos tipas yra &#8220;fiksuotas&#8221;, yra priklausomi nuo tiekėjo antkainio, nuo kategorijos ir pan. Pats PVM priklauso nuo kategorijos (pvz. knygos - 9%). Buvau sugalvojęs gražų crontab skriptą, kad viskas pasikeistų lygiai 0:00, tačiau nesuveikė, kadangi pamiršau pacommitint <img src='http://home.medutis.com/phpblog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Taigi crontabas naujųjų metų naktį kreipėsi į neegzistuojantį metodą, teko viską sutvarkyt atsipaipaliojus kitos dienos popietę.</p>
<p><span id="more-41"></span></p>
<p>Besižaidžiant su naujaisiais mokesčiais, išlindo ir senokai primiršta <a href="http://www.finansai.com/postp34719.html" target="_blank">PVM vieno cento problema</a>. Problema atsiranda dėl skaičių apvalinimo ir PVM skaičiavimo iš vienos arba kitos pusės. Dažna buhalterinė programa viską skaičiuoja pati, tačiau kiekviena tai daro skirtingai, nes apibrėžto būdo kaip ir nėra. Pvz. vienas variantas: pajamuojant prekes, įvedamos kainos be PVM ir po to suma padauginama, taip gaunamas bendras PVM visai sąskaitai. Antras variantas: skaičiuojamas kiekvienos prekės PVM atskirai (berods buhalterijoje reikia ir tokių duomenų), tuomet juos susumuoja. Visiškai aišku, kad PVM suma gali skirtis netgi ne vienu centu, jei bus įvedama daug prekių, kurių PVM apvalinimo metu bus gerokai iškraipytas.</p>
<p>Mūsų sistemoje sąskaitos formavimas vyksta dar kitaip - prekių kainos be PVM skaičiuojamos atvirkščiai. Tai yra turime kainas su PVM ir iš jų gauname PVM. Tokiu atveju PVM suma nebesutampa pačioje sąskaitoje, sulyginus ją su bendra sąskaitos suma.</p>
<p>Sukau galvą kaip tai išspręsti, kadangi mūsų buhalterija sugaišta nemažai laiko tokių sąskaitų-faktūrų tikrinimui. Sprendimas yra gan &#8220;juodas hack&#8221; <img src='http://home.medutis.com/phpblog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<blockquote>
<p style="text-align: left;">// hackas vat vieno cento problemai<br />
$vat_sum = 0;<br />
foreach ($vats as $key=&gt;$vat)<br />
{<br />
$vat_sum += round($sum['vat_'.$key], 2);<br />
}</p>
<p style="text-align: left;">foreach ($vats as $key=&gt;$vat)<br />
{<br />
if ($sum['vat_'.$key]&gt;0)<br />
{</p>
<p style="text-align: left;">$sk = round((round($vat_sum, 2)+round($order['total_price_without_vat'], 2) - $order['total_price']), 2);</p>
<p style="text-align: left;">if ($sk!=0)<br />
{<br />
$sum['vat_'.$key] -= $sk;<br />
$vat_sum -= $sk;<br />
break;<br />
}<br />
}<br />
}<br />
// eo hackas</p>
</blockquote>
<p>Tiesą sakant, geresnio būdo ir nelabai įsivaizduoju, kaip iš PVM išmesti nereikalingą skirtumą. Rezultatas štai toks.</p>
<p>Yra:</p>
<blockquote>
<p style="padding-left: 30px;">Suma be PVM      <strong>12.76 Lt</strong><br />
PVM 9%     <strong>0.79 Lt</strong><br />
PVM 19%     <strong>0.75 Lt</strong><br />
Viso     <strong>14.30 Lt</strong></p>
</blockquote>
<p>Buvo:</p>
<blockquote>
<p style="padding-left: 30px;">Suma be PVM      <strong>12.76 Lt</strong><br />
PVM 9%     <strong>0.80 Lt</strong><br />
PVM 19%     <strong>0.75 Lt</strong><br />
Viso     <strong>14.30 Lt</strong></p>
</blockquote>
<p>Be kita ko, mūsų sąskaitos keliauja dar ir į buhalterinę programą MS &#8220;Navision&#8221;. Vėlgi, sąskaitų PVM ir bendros sumos turi sutapti. Atrodo ir čia sugalvotas paprastas sprendimas - tiesiog importuodami sąskaitą paduodame ir PVM bei bendrą sąskaitos sumas, Navisionas jas tiesiog kietai &#8220;overridina&#8221; ir nesutapimų turėtų nebebūti.</p>
<p>Jei kas nors turite kokių minčių ar esat sugalvoję/radę geresnių sprendimų, maloniai prašau pakomentuoti.</p>
<p>Kolkas tiek, produktyvių 2009&#8242;ųjų!</p>
]]></content:encoded>
			<wfw:commentRss>http://home.medutis.com/phpblog/2009/01/07/pvm-vargai/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Darbo valandos!</title>
		<link>http://home.medutis.com/phpblog/2008/12/19/darbo-valandos/</link>
		<comments>http://home.medutis.com/phpblog/2008/12/19/darbo-valandos/#comments</comments>
		<pubDate>Fri, 19 Dec 2008 14:29:01 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[PHP aktualijos]]></category>

		<category><![CDATA[PHP pamąstymai]]></category>

		<guid isPermaLink="false">http://home.medutis.com/phpblog/?p=40</guid>
		<description><![CDATA[Kadangi pasaulyje vyksta krizė, o per feedburnerį mano blogą, kaip pastebėjau, jau užsiprenumeravo net 9 interesantai, reikia šį bei tą ir brūkštelt  
Sykį prisireikė man tokio dalyko, matuoti kiek darbo valandų praeina nuo užsakymo statusų pasikeitimų. Tai yra, kaip galbūt daug kur esate matę: &#8220;Į jūsų klausimą bus atsakyta per dvi darbo valandas&#8221; ir [...]]]></description>
			<content:encoded><![CDATA[<p>Kadangi pasaulyje vyksta krizė, o per feedburnerį mano blogą, kaip pastebėjau, jau užsiprenumeravo net 9 interesantai, reikia šį bei tą ir brūkštelt <img src='http://home.medutis.com/phpblog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Sykį prisireikė man tokio dalyko, matuoti kiek darbo valandų praeina nuo užsakymo statusų pasikeitimų. Tai yra, kaip galbūt daug kur esate matę: &#8220;Į jūsų klausimą bus atsakyta per dvi darbo valandas&#8221; ir panašiai. Kadangi tokią funkcijėlę rašiau dvi dienas (su įvairiais nukrypimais prie kitų darbų), manau reikia pasidalinti ir su kitais šituo &#8220;gėriu&#8221;. <span id="more-40"></span></p>
<p>Helperio <a href="http://home.medutis.com/php/work_helper.phps">sourcas čia</a>. Pats scripto <a href="http://home.medutis.com/php/work_helper.rar">failas čia</a>. Ištestavau su daugybe variantų, tad manau, kad klaidų neturėtų būti, bet jei netingite knaisiotis, visada lauksiu komentarų <img src='http://home.medutis.com/phpblog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Trumpi pavyzdukai:</p>
<p style="padding-left: 30px;">echo work_time(&#8217;2008-12-18 18:55&#8242;, &#8216;2008-12-19 08:40&#8242;);<br />
// returns 40min.</p>
<p>echo work_time(&#8217;2008-12-18 14:23&#8242;, &#8216;2008-12-19 07:33&#8242;);<br />
// returns 3h. 37min.</p>
<p>echo work_time(&#8217;2008-12-18 18:55&#8242;, &#8216;2008-12-22 13:40:15&#8242;);<br />
// 15h. 40min. 15s.</p>
<p>echo work_time_difference(&#8217;2008-12-19 14:30&#8242;, &#8216;2008-12-19 15:15:01&#8242;);<br />
// returns 2701</p>
]]></content:encoded>
			<wfw:commentRss>http://home.medutis.com/phpblog/2008/12/19/darbo-valandos/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Kviečiame IT specialistus įvertinti pigu.lt saugumą</title>
		<link>http://home.medutis.com/phpblog/2008/07/10/kvieciame-it-specialistus-ivertinti-pigult-sauguma/</link>
		<comments>http://home.medutis.com/phpblog/2008/07/10/kvieciame-it-specialistus-ivertinti-pigult-sauguma/#comments</comments>
		<pubDate>Thu, 10 Jul 2008 07:49:29 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[PHP aktualijos]]></category>

		<category><![CDATA[PHP pamąstymai]]></category>

		<category><![CDATA[PHP saugumas]]></category>

		<guid isPermaLink="false">http://home.medutis.com/phpblog/?p=38</guid>
		<description><![CDATA[Neslėpsime, neseniai įvykusios kibernetinės atakos mums taip pat sukėlė šiek tiek nerimo, o Lietuvoje kilo didelis šurmulys, apie atakas netgi pradėta šnekėti valstybiniu lygiu. Kolegos taip pat viešai reiškia kandžias replikas apie apgailėtiną Lietuvos IT lygį. Mes manome, kad Lietuvos IT lygis nėra jau toks apgailėtinas, tiesą sakant nesunku rasti ir dalykų, kuriais galėtume didžiuotis.

Jei [...]]]></description>
			<content:encoded><![CDATA[<p>Neslėpsime, neseniai įvykusios kibernetinės <a href="http://www.informacijosapsauga.lt/blogietis/rusijos-hakeriai-ateina/" target="_blank">atakos</a> mums taip pat sukėlė šiek tiek nerimo, o Lietuvoje kilo didelis šurmulys, apie atakas netgi pradėta šnekėti <a href="http://www.delfi.lt/news/daily/lithuania/article.php?id=17562569" target="_blank">valstybiniu lygiu</a>. Kolegos taip pat viešai reiškia kandžias replikas apie apgailėtiną Lietuvos <a href="http://www.delfi.lt/news/economy/ITbussines/article.php?id=17571483" target="_blank">IT lygį</a>. Mes manome, kad Lietuvos IT lygis nėra jau toks apgailėtinas, tiesą sakant nesunku rasti ir dalykų, kuriais galėtume didžiuotis.</p>
<p><span id="more-38"></span></p>
<p>Jei dar kas nežino, šios atakos nebuvo tokios jau grandiozinės, viso labo buvo nulaužtas vienas ar du serveriai, kuriuose ir gulėjo visi tarybine simbolika išmarginti puslapiai. Mes manome, kad Hostex dirba profesionalai ir išmanantys savo darbą žmonės, tad nereikia šių atakų <a href="http://www.hostex.lt/naujienos/?id=21" target="_blank">dramatizuoti</a>. Praėjusiais metais vykusios <a href="http://en.wikipedia.org/wiki/Denial-of-service_attack" target="_blank">DDoS</a> atakos Estijoje buvo rimtesnės ir vertos svarstyti tarptautiniu lygiu. Šaunuoliai <a href="http://www.lrytas.lt/-12107643531209475380-p1-Pasaulis-Estijoje-steigiamas-NATO-kibernetin%C4%97s-apsaugos-centras.htm" target="_blank">estai</a>, įkūrę apsaugos nuo kibernetinių atakų centrą, iš kaimynų mums tikrai yra ko pasimokyti, galbūt kartais ir gudrių metodų, kaip tobulinti savo IT ir gauti <a href="http://www.critical.lt/?news/show/1602" target="_blank">pinigų</a> <img src='http://home.medutis.com/phpblog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><a href="http://pigu.lt/" target="_blank">pigu.lt</a> siekia prisidėti prie Lietuvos IT lygio kėlimo ir saugumo stiprinimo ir siūlo bendradarbiauti visiems specialistams ar šiaip suinteresuotiems šia tema. Norime pasiūlyti piniginį atlygį tam ar tiems, kurie atras spragų pigu.lt puslapyje. Jei bus atrasta kritinių saugumo spragų, svarbiausiųjų atradėjus apdovanosime 1024 piguLitais, kuriuos jis/ji/jie galės išleisti <a href="http://pigu.lt/" target="_blank">pigu.lt</a> prekybos centre.</p>
<p>Jokiu būdu nemanome, jog mes viską darom be klaidų. Nuo <a href="http://en.wikipedia.org/wiki/Software_bug" target="_blank">bug`ų</a> niekas nėra apsaugotas, kadangi klysti žmogiška <img src='http://home.medutis.com/phpblog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Norintys dalyvauti konkurse ir ketinantys palaužyti mūsų svetainę, prieš tai brūkštelkit el. paštu justinas(eta)pigu.lt arba skype <em>medutiz. </em>Susipažinsim, pabendrausim aktualiom temom, palaužysim mūsų ir Jūsų puslapius (mes nemokamai, o Jūs už prizus).</p>
<p>Šio įrašo originalas <a href="http://pigu.blogas.lt/400280/kvieciame-it-specialistus-ivertinti-pigult-sauguma.html" target="_blank">yra čia</a></p>
]]></content:encoded>
			<wfw:commentRss>http://home.medutis.com/phpblog/2008/07/10/kvieciame-it-specialistus-ivertinti-pigult-sauguma/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PHP magazine lietuviams nemokamai</title>
		<link>http://home.medutis.com/phpblog/2007/03/26/php-magazine-lietuviams-nemokamai/</link>
		<comments>http://home.medutis.com/phpblog/2007/03/26/php-magazine-lietuviams-nemokamai/#comments</comments>
		<pubDate>Mon, 26 Mar 2007 16:44:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<category><![CDATA[PHP aktualijos]]></category>

		<guid isPermaLink="false">http://home.medutis.com/phpblog/2007/03/26/php-magazine-lietuviams-nemokamai/</guid>
		<description><![CDATA[Ne tik lietuviams, bet ir mokantiems lietuviškai perskaityti šį postą  
Slaptas katalogiukas yra tokio pat adreso, kaip ir kitas lietuviams prieinamas žurnalas, tik subkatalogas vadinasi phpmag. Na, URL&#8217;as susideda iš šio serverio adreso ir subkatalogo. Jei kam nors kas neaišku, klauskite bet kuriuo kontaktavimo būdu, kokiu tik galite mane rasti. Už šitą gėrį turime [...]]]></description>
			<content:encoded><![CDATA[<p>Ne tik lietuviams, bet ir mokantiems lietuviškai perskaityti šį postą <img src='http://home.medutis.com/phpblog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p><span id="more-31"></span>Slaptas katalogiukas yra tokio pat adreso, kaip ir <a href="http://home.medutis.com/phpblog/2006/01/18/php-architect-lietuviams-nemokamai/">kitas lietuviams prieinamas žurnalas</a>, tik subkatalogas vadinasi phpmag. Na, URL&#8217;as susideda iš šio serverio adreso ir subkatalogo. Jei kam nors kas neaišku, klauskite bet kuriuo kontaktavimo būdu, kokiu tik galite mane rasti. Už šitą gėrį turime būti dėkingi vyrukui, kurio nickas yra <a href="http://php.lt/render/page,inside;menuname,user_info;uid,1597">drawgas</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://home.medutis.com/phpblog/2007/03/26/php-magazine-lietuviams-nemokamai/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PHP saugumo nustatymai - 2 dalis</title>
		<link>http://home.medutis.com/phpblog/2007/02/08/php-saugumo-nustatymai-2-dalis/</link>
		<comments>http://home.medutis.com/phpblog/2007/02/08/php-saugumo-nustatymai-2-dalis/#comments</comments>
		<pubDate>Thu, 08 Feb 2007 09:49:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP saugumas]]></category>

		<guid isPermaLink="false">http://home.medutis.com/phpblog/2007/02/08/php-saugumo-nustatymai-2-dalis/</guid>
		<description><![CDATA[PHP nustatymų yra daug, kurie ne tik leidžia sistemai būti lanksčiai, bet ir dažnai priverčia pasimesti programuotojus ar adminus, juolab, kad nebūtinai default reikšmė yra geriausia ar saugiausia, taigi tęsiame kelionę po PHP nustatymus  
Apribokime sistemos resursus
max_execution_time, standartiškai yra nustatytas 30 (sekundžių). Tai reiškia, kad skriptui bus leista naudotis procesoriumi iki 30 sekundžių vieno [...]]]></description>
			<content:encoded><![CDATA[<p>PHP nustatymų yra daug, kurie ne tik leidžia sistemai būti lanksčiai, bet ir dažnai priverčia pasimesti programuotojus ar adminus, juolab, kad nebūtinai default reikšmė yra geriausia ar saugiausia, taigi tęsiame kelionę po PHP nustatymus <img src='http://home.medutis.com/phpblog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> <span id="more-30"></span></p>
<p><strong>Apribokime sistemos resursus</strong></p>
<p>max_execution_time, standartiškai yra nustatytas 30 (sekundžių). Tai reiškia, kad skriptui bus leista naudotis procesoriumi iki 30 sekundžių vieno paleidimo metu. Šis nustatymas yra naudingas hostingo paslaugų teikėjams, kadangi apsaugo nuo piktai nusiteikusių vartotojų, norinčių pakenkti, taip pat ir dedicated serveriams - apsisaugoti nuo kreivai parašytų savų ar trečios šalies skriptų. Dažnai šis nustatymas yra interpretuojamas klaidingai - &#8220;<strike>skriptas negali suktis ilgiau nei 30 sekundžių</strike>&#8220;. Iš tiesų, gali. Laikas skaičiuojamas tik tada, kai skriptas naudoja CPU, nors veikti skriptas gali valandų valandas. Pavyzdžiui:</p>
<blockquote><p>while (true)<br />
{<br />
sleep(100);<br />
}</p></blockquote>
<p>Toks skriptas naudoja itin mažai CPU, todėl miegodamas gali veikti net ir ištisą mėnesį. Jeigu serveryje naudojate tik web puslapius, protinga apriboti šį nustatymą į kur kas mažesnę reikšmę, pvz. 5. Jei puslapis serveryje generuojamas ilgiau nei 1 sekundę, tai jau laikoma ilgai. Kuo mažesniu laiku jį apribosim, tuo daugiau laiko liks kitoms užduotims. Šį nustatymą galima keisti ir skripto išorėje, ir viduje, su set_time_limit() funkcija.</p>
<p>max_input_time yra skirtas nustatyti, kiek laiko skirti vartotojo įvedimui. Jis defaultu būna 60 sekundžių. Taip pat, kaip ir vykdymo nustatymas, jis įskaičiuoja tik tą laiką, kurį naudoja CPU savo skaičiavimams. Didelio failo uploado laukimas nepaveiks šio limito. Šis nustatymas skirtas apsisaugoti nuo daugiamačių masyvų perdavimo, kurie gali itin paveikti sistemos resursus. Nepaisant to, 60 sekundžių yra ryškiai per daug, joks skriptas neturėtų švaistyti tiek daug savo laiko vartotojo įvedimui apdirbti. Nustatymą siūloma apriboti iki 2-5 sek. Šis nustatymas gali būti keičiamas tik skripto išorėje, kadangi vartotojo įvedimas apdirbamas dar prieš skripto pradžią.</p>
<p>memory_limit - dar vienas nustatymas, apribojantis sistemos skiriamą atmintį. Šis nustatymas yra prieinamas tik tuo atveju, jei php sukompiliuotas su atminties ribojimo palaikymu. Lengvai tai patikrinsite, kadangi memory_get_usage funkcija prieinama tik jei atminties ribojimas yra :</p>
<blockquote><p>if (function_exists(&#8217;memory_get_usage&#8217;))    echo &#8216;Ok!&#8217;;<br />
else &#8216;Ne Ok!&#8217;</p></blockquote>
<p>Atminties limitas yra defaultu nustatytas iki 8MB. Šis nustatymas dauguma atvejų yra tinkamas ir paprastai nereikia jo keisti. Sistemai pakenkti gali būti naudojami skriptai, pasiimantys didelę dalį atminties ir nueinantys miegoti. Pavyzdžiui:</p>
<blockquote><p>$a = str_repeat(&#8217;a', 100000000);<br />
ignore_user_abort(true);<br />
sleep(1000000);</p></blockquote>
<p>Šis skriptas bando nugriebti ~100MB atminties ir nueiti miegoti, ignoruodamas vartotojo veiksmus, ty. net jei uždaroma naršyklė, jis ir toliau būna vykdomas. memory_limit neišsprendžia problemos iki galo, kadangi su tokiu skriptu galima paleisti kelias jo instancijas, kurių kiekviena pasiims maksimalų atminties kiekį. Be abejo, tokie įvykiai negali praeiti nepastebėti sistemos administratorių, taigi problemą anksčiau ar vėliau reikia išspręsti. Kitiems atvejams, kai kenkia ne žmogus, o kreivai parašytas skriptas, arba pvz. siunčiamas didelis duomenų kiekis iš išorinio šaltinio, tai be abejo yra naudingas nustatymas.</p>
<p>default_socket_timeout - leidžia apriboti laiką, skirtą inicijuoti sujungimui. Defaultu ši reikšmė yra 60 sekundžių. Dažnai sistema, atidarydama socketą praleidžia daug laiko prisijungdama prie lėtų serverių, todėl kenkėjas gali efektyviai išnaudoti sistemos resursus, atidaręs keletą tokių prisijungimų. Kol sistema eikvos laiką beprasmiams sujungimams, neliks resursų tikrų vartotojų užklausoms. Reikia atminti, kad šis nustatymas galioja tik prisijungimo inicializavimo procesui ir neturi efekto skaitymui ir rašymui jau atidarytame sockete, taigi verta naudoti ir stream_set_timeout() jei reikia apsisaugoti nuo gaišimo laukiant skaitymo ar rašymo veiksmų. default_socket_timeout gali būti pakeistas bet kurioje vietoje, protinga jį būtų sumažinti iki 5-10 sekundžių.</p>
<p><strong>URL includinimas</strong></p>
<p>Viena iš php streams galimybių yra elgtis su išoriniais URL lygiai taip pat, kaip ir su vietiniais failais. Pavyzdžiui, fopen() gali būti taip pat sėkmingai panaudota nuskaityti &#8220;http://www.php.net&#8221;, kaip ir &#8220;/etc/passwd&#8221;. Tai sukelia nemažai saugumo spragų, kaip pvz. kodo injekcija per išorinį šaltinį, naudojant tokias funkcijas, kaip fopen(), file_get_contents(), readfile(), taip pat didelių duomenų arba lėtai veikiančių URL įkėlimas. Taipogi, gali būti sukuriamas amžinas ciklas, skriptui nuskaitant patį save. Kartais net web serverio perkrovimas neišgelbsti, kadangi keletas užklausų lieka buferyje ir jie vėl toliau sėkmingai ryja sistemos resursus. Serveris turi būti sustabdomas keletui sekundžių ir tada paleidžiamas iš naujo.<br />
Į pagalbą ateina allow_url_fopen nustatymas, kurį nustačius į false, skriptas galės pasiekti išorinius šaltinius tik su curl arba socketais. Blogiausia, kad streamai suteikia priėjimą prie išorinių šaltinių ir tokioms funkcijoms, kaip require ar include. Jei tokių funkcijų parametruose pasitaiko vartotojo įvedamų duomenų, kenkėjas gali nesunkiai paleisti savo rašytus skriptus. Tai dar viena rimta priežastis išjungti defaultu įjungtą allow_url_fopen. Nepaisant visko, su fopen() atidarinėti išorinius URL yra pakankamai saugu (arba/ir reikalinga), ir dabartinėje versijoje (5.2) jau galima pasinaudoti nauju nustatymu allow_url_include, kuris išjungtas defaultu. Jis atskiria URL apdirbimo funkcionalumą, kadangi leidžia kontroliuoti ar leisti tik nuskaitymus, ar ir include/require. Abu šie nustatymai gali būti keičiami tik skripto išorėje, dėl saugumo sumetimų.</p>
<p><strong>Funkcijų ir klasių draudimas</strong></p>
<p>Jei galvojate, kad php turi daug nustatymų, pasidomėkite, kiek yra funkcijų <img src='http://home.medutis.com/phpblog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Be abejo, visos funkcijos yra naudingos vienais ar kitais atvejais, tačiau kai kuriomis iš jų paslaugų teikėjai nenori leisti naudotis vartotojams. Tokios funkcijos, kaip exec() leidžia apeiti safe_mode ir open_basedir nustatymus, arba mail() - gali būti panaudota išsiųsti dideliems kiekiams spamo. Tam yra skirti nustatymai disable_functions ir disable_classes, kurioms galima pateikti kableliais atskirtą sąrašą draudžiamų funkcijų ar klasių. Skriptui, bandant naudoti uždraustą funkciją ar klasę bus grąžintas fatal error. Šis nustatymas, nors ir labai naudingas, deja, turi vieną apribojimą. Jis gali būti keičiamas tik php.ini faile, o tai reiškia, kad negalima vieniems vartotojams leisti, o kitiems apriboti tam tikrų funkcijų. Visiems bus vienodi draudimai. Po šio nustatymo keitimo taip pat būtina perkrauti web serverį.</p>
<p><strong>Modulių dinaminis įkrovimas</strong></p>
<p>enable_dl - leidžia pasirinkti ar leisti skriptui įkrauti modulį dinamiškai. Defaultu šis nustatymas įjungtas, todėl suteikia gan patogų dalyką - skripto metu galima įkrauti extensioną, tačiau tai yra didelė saugumo spraga. Nėra būdo žinoti, ką daro įkraunamas modulis, jis gali suteikti priėjimą vartotojui prie to, kas šiaip yra uždrausta ar atlikti bet kokias sistemos operacijas. Net ir be vartotojo piktų kėslų, modulis gali būti parašytas prastai, nekokybiškai, o tai taipogi gali paveikti visą sistemą. Rekomenduojama šį nustatymą išjungti php.ini arba virtual hosto lygmenyje.</p>
<p style="font-weight: bold">Pabaiga</p>
<p>Sėkmės, būkite saugūs! Greitai pasirodys dar viena viso šio romano dalis <img src='http://home.medutis.com/phpblog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://home.medutis.com/phpblog/2007/02/08/php-saugumo-nustatymai-2-dalis/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PHP saugumo nustatymai - 1 dalis</title>
		<link>http://home.medutis.com/phpblog/2007/01/12/php-saugumo-nustatymai-1-dalis/</link>
		<comments>http://home.medutis.com/phpblog/2007/01/12/php-saugumo-nustatymai-1-dalis/#comments</comments>
		<pubDate>Fri, 12 Jan 2007 14:37:28 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP saugumas]]></category>

		<guid isPermaLink="false">http://home.medutis.com/phpblog/2007/01/12/php-saugumo-nustatymai-1-dalis/</guid>
		<description><![CDATA[Aptikau tokį straipsnelį php&#124;a žurnale, tai nutariau,kad visai pravers pakonspektuot  o ir Jums į naudą išeis.
PHP standartinėje versijoje yra virš 500 INI nustatymų direktyvų. Šis skaičius gali išaugti, jei įdiegsite PECL ar kokių kitų išorinių modulių. Didžioji dalis nustatymų yra palikti veikti standartiškai (default), gali būti, kad jų judinti niekad ir neprireiks. Nenuostabu, kad [...]]]></description>
			<content:encoded><![CDATA[<p>Aptikau tokį straipsnelį php|a žurnale, tai nutariau,kad visai pravers pakonspektuot <img src='http://home.medutis.com/phpblog/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> o ir Jums į naudą išeis.<span id="more-29"></span></p>
<p>PHP standartinėje versijoje yra virš 500 INI nustatymų direktyvų. Šis skaičius gali išaugti, jei įdiegsite PECL ar kokių kitų išorinių modulių. Didžioji dalis nustatymų yra palikti veikti standartiškai (default), gali būti, kad jų judinti niekad ir neprireiks. Nenuostabu, kad turbūt nė vienas žmogus šių visų nustatymų negalėtų mintinai mokėti, tačiau yra keletas svarbesnių, susijusių su saugumu, į kuriuos verta atkreipti dėmesį. Pilnas INI nustatymų aprašymas <a target="_blank" href="http://lt.php.net/manual/en/ini.php">yra čia</a>.</p>
<p>PHP INI nustatymai taipogi turi keletą &#8220;nustatomumo lygių&#8221;. Kai kurie nustatymai, pavyzdžiui, yra tik &#8220;system&#8221; tipo, tai reiškia, kad jį galima pakeisti tik php.ini faile, taigi priėjimas prie jo yra draudžiamas ir skriptams, ir web serverio per-virtualaus hosto nustatymus, ir .htaccess failui. INI sąraše tokie nustatymai žymimi &#8220;PHP_INI_SYSTEM&#8221;.</p>
<p>Kai kurie nustatymai turi &#8220;PHP_INI_PERDIR&#8221; lygį. Tokiu atveju nustatymas gali būti keičiamas php.ini faile arba web serverio virtualaus hosto nustatymuose, arba jo .htaccess faile. Dažniausiai tokie nustatymai įtakoja pavyzdžiui, vartotojo įvedamus duomenis, o jie yra apdirbami dar prieš startuojant php skriptą, taigi skripto viduje, kad ir pirmoje eilutėje kreipimasis pakeisti nustatymą, neduotų jokio naudingo rezultato.</p>
<p>Didžioji nustatymų dalis patenka į &#8220;PHP_INI_ALL&#8221;, tai reiškia, kad nustatymas gali būti keičiamas bet kur, t.y. be jau minėtų būdų, dar papildomai ir pačiame skripte per ini_set() funkciją.</p>
<p><strong>Register globals</strong><br />
Neverta apie juos daug aušinti burnos. Tiesiog reikia išjungti ir tiek <img src='http://home.medutis.com/phpblog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Nuo 4.1 versijos išjungti default, tačiau dėl senų skriptų palaikomumo būna daug kur įjungti (ypač shared-hostinge). Šis nustatymas paliečia vartotojų įvedamus duomenis dar prieš vykdant skriptą, todėl jį apdirbti racionaliausia php.ini faile (register_globals=0), virtual host nustatymuose (php_admin_flag register_globals 0) arba .htaccess faile (php_flag register_globals 0). Patikrinti galime per phpinfo() funkciją arba ini_get(&#8221;register_globals&#8221;).</p>
<p><strong>Magic Quotes</strong><br />
Panašiai gan nemenką žalą darantis nustatymas, kaip ir register globals. &#8220;magic_quotes_gpc&#8221; nustatymą verta išjungti ne tik dėl saugumo, bet ir dėl tam, kad skriptai būtų vykdomi greičiau - automatinis visų duomenų eskeipinimas taip pat atima resursų, be to, galbūt visai nebūtinas, juk ne visi įvedami duomenys yra naudojami SQL užklausose, be to, magic_quotes veikia ne itin korektiškai, ir vistiek gali palikti spragų saugume. Tai įvedimo apdirbimo nustatymas, taigi jis taip pat yra &#8220;PHP_INI_PERDIR&#8221; tipo. Dar vienas nustatymas &#8220;magic_quotes_runtime&#8221; yra panašus, tačiau priešingai nei &#8220;magic_quotes_gpc&#8221;, yra išjungtas defaultu. Bet kokiu atveju, verta patikrinti, jog abu jie būtų išjungti.</p>
<p><strong>open_basedir</strong><br />
Labai naudingas dalykas shared-hostinge, tam, kad kiti vartotojai, vykdydami skriptus per web serverį, negalėtų landžioti po jūsų failus. Nustatymas keičiamas tik per php.ini failą arba apache virtual hostams. Kadangi atskiriems vartotojams reikia prieiti prie tam tikrų bendrų katalogų ir savo namų katalogo, tai nustatymo keitimas php.ini faile yra beprasmis, reikia diferencijuoti šį parametrą pagal vartotojus. Pvz. php_admin_value open_basedir &#8220;/tmp/:/home/user1/&#8221;. Reikia atminti, kad būtina katalogą iš abiejų pusių atskirti slashais, nes užrašymas &#8220;/home/user1&#8243; leis priėjimą ir prie /home/user1, ir prie /home/user123 ir kitiems katalogams, kurių pradžia būtent tokia, o tai jau yra rimta saugumo spraga.</p>
<p><strong>Safe Mode</strong><br />
Šio nustatymo idėja buvo labai kilni, tačiau pavadinimas gali būti apgaulingas. Safe mode režimas apriboja daug nustatymų susijusių su saugumu, tačiau visus juos galima reguliuoti atskirai ir daug lanksčiau (apie juos kitoje dalyje). Vienas iš svarbiausių dalykų, kad safe mode režime, kai skriptas kreipiasi į failą, tikrinamas skripto savininkas ir failo savininkas. Jei jie sutampa, tuomet operacija leidžiama. Tačiau tokiu būdu galima lengvai prarasti priėjimą prie failų, kurie sukuriami pačių skriptų. Be to, šį apribojimą galima lengvai apeiti su daugeliu funkcijų, pvz. copy(). Nors safe_mode įjungimas ir nekenkia tiesiogiai, tačiau jis sukūria papildomo apkrovimo serveriui, tikrinant failo UID, todėl rekomenduojama išjungti ir protingai suderinti kitus saugumo nustatymus, taip pat atskiriant vartotojus į virtualius hostus bei naudojant gudrias priėjimo teises (chmod).</p>
<p><strong> Expose PHP</strong><br />
expose_php nustatymas įjungtas standartiškai, tačiau nauda iš jo menka, o žala didelė. Įjungimas reiškia, kad kiekvienos užklausos metu siunčiama informacija apie PHP versiją, naudojama serveryje. O tai be abejo naudinga hackeriams, ieškantiems pažeidžiamų senesnių versijų, be to tai yra ir papildomi nereikalingi duomenys, naudojantys saito pralaidumą. Nebūtina visam pasauliui žinoti kokia kalba parašytas tinklapis. Statistikos rinkimui užtenka panaudoti kad ir header(&#8221;X-Powered-By: PHP&#8221;); kuris nerodo PHP versijos. expose_php nustatymas reguliuojamas tik php.ini faile.</p>
<p><strong>Display Errors</strong><br />
display_errors būna įjungtas default, o tai reiškia, kad visos klaidos bus išvedamos tiesiai į browserį. Be abejo, tokia informacija naudinga norintiems pakenkti. Geriausias variantas yra uždrausti lankytojams matyti klaidas, tačiau leisti programuotojui prie jų prieiti. Klaidų nustatymai gali būti keičiami visuose lygiuose (pačiame PHP skripte - taip pat):</p>
<blockquote><p>error_reporting(E_ALL | E_STRICT);<br />
ini_set(&#8217;display_errors&#8217;, 0);<br />
ini_set(&#8217;log_errors&#8217;, 1);<br />
ini_set(&#8217;error_log&#8217;, &#8216;/var/home/user/logs/php.log&#8217;);</p></blockquote>
<p><strong>Pabaiga</strong><br />
Pirmos dalies pabaiga <img src='http://home.medutis.com/phpblog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /></p>
]]></content:encoded>
			<wfw:commentRss>http://home.medutis.com/phpblog/2007/01/12/php-saugumo-nustatymai-1-dalis/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Kalėdos!</title>
		<link>http://home.medutis.com/phpblog/2006/12/22/kaledos/</link>
		<comments>http://home.medutis.com/phpblog/2006/12/22/kaledos/#comments</comments>
		<pubDate>Fri, 22 Dec 2006 07:22:19 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP aktualijos]]></category>

		<guid isPermaLink="false">http://home.medutis.com/phpblog/2006/12/22/kaledos/</guid>
		<description><![CDATA[Su šventėm, mielieji šio blogo skaitytojai!  Tikiuos IVC nesupyks už šią nuorodą  Tai pats geriausias atvirukas kokį esu matęs. Prieš šventes nusprendžiau vėl pajudint gan aktualią temą, kuri dar visai nesenai buvo plėtojama per mūsų susiėjimus prie alaus bokalų (vadinamieji PHP-GTH).
Taigi aptarinėjom mes tokį reikalą, kad vistik pribrendo reikalas prasukti PHP konferenciją, tik [...]]]></description>
			<content:encoded><![CDATA[<p>Su šventėm, mielieji šio blogo skaitytojai! <img src='http://home.medutis.com/phpblog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Tikiuos <a target="_blank" href="http://www.ivc.lt">IVC</a> nesupyks už <a target="_blank" href="http://ivc.lt/kaledos/?0">šią nuorodą</a> <img src='http://home.medutis.com/phpblog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Tai pats geriausias atvirukas kokį esu matęs. Prieš šventes nusprendžiau vėl pajudint gan aktualią temą, kuri dar visai nesenai buvo plėtojama per mūsų susiėjimus prie alaus bokalų (vadinamieji PHP-GTH).<span id="more-27"></span><br />
Taigi aptarinėjom mes tokį reikalą, kad vistik pribrendo reikalas prasukti PHP konferenciją, tik šį sykį Vilniuje. Nors buvo drąsių pasisakymų, kad tai galima būtų padaryt dar šiemet, ant švenčių (būtų buvę labai šaunu), tačiau manau, kad žiema - sausis, vasaris - taip pat neblogas laikas. Kadangi įvyko šioks toks &#8220;brainstormingas&#8221;, buvo pasiūlyta keletas temų, kurios galėtų būti aktualios šiandienai PHP bendruomenei:</p>
<ol>
<li>CRUD (Create Read Update Delete), CRUD saugumas, Kaip kiekvieną modelį galima supaprastinti iki CRUD (siūlytojas, berods, araki)</li>
<li>Struktūrinai šablonai, praktinis jų panaudojimas (Design patterns) (araki)</li>
<li>Kodėl Yahoo ant PHP? PHP in enterprise (Lakūnas?)</li>
<li>Ruby on Rails, kaip viską padaryti per 15min? (Yozaz?)</li>
<li>Paymentai (apmokėjimai) naudojant PHP (teibaz?)</li>
<li>Zend Core for WINDOWS (saint)</li>
<li>Migracijos gidas iš PHP į ASP.NET ir atvirkščiai (palete?)</li>
<li>PHP brandingas (įvaizdis) (araki?)</li>
<li>Naujasis Filter extensionas, duomenų filtravimas ir eskeipinimas (medutis)</li>
<li>PHP ateitis, PHP6, namespaces, unikodas, etc. (medutis)</li>
<li>Django, SOA! (midgrad)</li>
<li>Apkrovimo mažinimas ir dalinimas, scaling, mySQL5 navarotai (index merge, innodb), mod_proxy_balancer, (midgrad)</li>
</ol>
<p>Neišsigąskite, skliausteliuose nurodyti siūlytojai (nebūtinai skaitovai), entuziastų skaitovų, beje, neatsirado, tačiau galvoju, kad tai nebus didelė bėda <img src='http://home.medutis.com/phpblog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> O dabar laukiu kokių nors komentarų, pasisakymų, galbūt konkrečių idėjų ir pasiūlymų, skaitovai taip pat welcome. Palete jau lyg ir beveik pasižadėjo, jog suorganizuos vietą (viešbučio konferencijų salė arba koks nors univeras).</p>
<p>Beje, jau yra naujasis php|arch gruodžio numeris, ten pat, kur ir visad. Ramių švenčių ir gerų dovanų!</p>
]]></content:encoded>
			<wfw:commentRss>http://home.medutis.com/phpblog/2006/12/22/kaledos/feed/</wfw:commentRss>
		</item>
		<item>
		<title>Darbo skelbimas</title>
		<link>http://home.medutis.com/phpblog/2006/12/08/darbo-skelbimas/</link>
		<comments>http://home.medutis.com/phpblog/2006/12/08/darbo-skelbimas/#comments</comments>
		<pubDate>Fri, 08 Dec 2006 10:01:55 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://home.medutis.com/phpblog/2006/12/08/darbo-skelbimas/</guid>
		<description><![CDATA[Kolega cdmn (taip pat žinomas kaip cdmn4fun) prašė paskelbt savo bloge. Smagu, jei atrodo jog šis blogas to vertas ir rimtai gali pagelbėti  
Reikalingas web (PHP/MySQL) programuotojas.
Darbo pobūdis: freelanceriniai projektai.
Techninio dizainerio gabumai būtų privalumas.
Paskutinio darbo URL arba CV siųsk į mikauzeris@gmail.com
]]></description>
			<content:encoded><![CDATA[<p>Kolega cdmn (taip pat žinomas kaip cdmn4fun) prašė paskelbt savo bloge. Smagu, jei atrodo jog šis blogas to vertas ir rimtai gali pagelbėti <img src='http://home.medutis.com/phpblog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><span class="normal">Reikalingas web (PHP/MySQL) programuotojas.<br />
Darbo pobūdis: freelanceriniai projektai.<br />
Techninio dizainerio gabumai būtų privalumas.<br />
Paskutinio darbo URL arba CV siųsk į <a href="mailto:mikauzeris@gmail.com">mikauzeris@gmail.com</a></span></p>
]]></content:encoded>
			<wfw:commentRss>http://home.medutis.com/phpblog/2006/12/08/darbo-skelbimas/feed/</wfw:commentRss>
		</item>
		<item>
		<title>PHP|arch lapkričio numeris</title>
		<link>http://home.medutis.com/phpblog/2006/11/29/phparch-lapkricio-numeris/</link>
		<comments>http://home.medutis.com/phpblog/2006/11/29/phparch-lapkricio-numeris/#comments</comments>
		<pubDate>Wed, 29 Nov 2006 11:24:49 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[PHP pamąstymai]]></category>

		<guid isPermaLink="false">http://home.medutis.com/phpblog/2006/11/29/phparch-lapkricio-numeris/</guid>
		<description><![CDATA[Ta beveik eilinis pranešimas apie naują šio žurnalo numerį. Kaip ir visada, jį rasite ten pat, ta pačia tvarka  
Pervertęs šį numerį pagalvojau apie mūsų PHP bendruomenės (ir Lietuvoje, ir pasaulyje) tolerantiškumą. Padariau išvadą, kad PHP&#8217;istai yra labai tolerantiški  Nustebino tai, jog žurnale yra ir straipsnis pavadinimu &#8220;learning from Ruby on Rails&#8221;, labai [...]]]></description>
			<content:encoded><![CDATA[<p>Ta beveik eilinis pranešimas apie naują šio žurnalo numerį. Kaip ir visada, jį rasite ten pat, ta pačia tvarka <img src='http://home.medutis.com/phpblog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p><span id="more-25"></span>Pervertęs šį numerį pagalvojau apie mūsų PHP bendruomenės (ir Lietuvoje, ir pasaulyje) tolerantiškumą. Padariau išvadą, kad PHP&#8217;istai yra labai tolerantiški <img src='http://home.medutis.com/phpblog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> Nustebino tai, jog žurnale yra ir straipsnis pavadinimu &#8220;learning from Ruby on Rails&#8221;, labai smagu, jog programuotojai sugeba žvelgti plačiau ir mokytis ne tik virdami &#8220;savo sultyse&#8221;, bet ir pažvelgdami į kitas (galbūt net šiek tiek konkurentines) kalbas. Kitas pavyzdys: pernai įvykusioje PHP konferencijoje taipogi turėjo būti pranešimas apie &#8220;migravimą iš PHP į ASP.NET&#8221;, deja autorius negalėjo (ar pabijojo) atvykti. Nors buvo pasisakymų, jog toks pranešimas tik padarytų gėdą konferencijai, buvo ir manančių, jog paklausyti apie tai būtų gan įdomu, pasimokyti kažko iš skirtingos technologijos. Niekas nebūtų priešinęsis tam, kad jis būtų įvykęs, o galbūt ir pavadinimas visai neatspindi galimos naudos. Galbūt dar ir šiemet įvyksianti (tokie planai prie alaus bokalų buvo rezgami :)) konferencija taip pat be pranešimų apie kitas kalbas ar &#8220;migravimus&#8221; gali neapsieiti. Keletas PHP programuotojų savo bloguose taip pat nevengia brūkštelti apie ruby on rails, juose yra ir pagyrimų, ir kritikos (objektyvios!).</p>
<p>Kartais tenka išgirsti java ar .net programuotojų pašiepiančių, ar net įžeidžiančių pasisakymų apie php.  Galbūt tolerancija ir PHP kūrėjų plačios pažiūros leidžia šiai kalbai išsilaikyti viena iš lyderių?</p>
]]></content:encoded>
			<wfw:commentRss>http://home.medutis.com/phpblog/2006/11/29/phparch-lapkricio-numeris/feed/</wfw:commentRss>
		</item>
	</channel>
</rss>
