<?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>danield.ro &#187; php</title>
	<atom:link href="http://danield.ro/tag/php/feed/" rel="self" type="application/rss+xml" />
	<link>http://danield.ro</link>
	<description>Remember the Big Picture</description>
	<lastBuildDate>Mon, 19 Sep 2011 18:44:00 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>into.ro/do update</title>
		<link>http://danield.ro/2009/11/13/into-rodo-update/</link>
		<comments>http://danield.ro/2009/11/13/into-rodo-update/#comments</comments>
		<pubDate>Thu, 12 Nov 2009 22:39:46 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[intudo]]></category>
		<category><![CDATA[jquery]]></category>
		<category><![CDATA[management]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[task]]></category>

		<guid isPermaLink="false">http://www.danield.ro/?p=584</guid>
		<description><![CDATA[Dupa cum scriam acum mai bine de o luna, m-am mai jucat putin in timpul liber cu into.ro/do si am facut un update adaugand cateva chestii noi, nu chiar la ce ma gandeam initial, dar e un mic pas inainte: drag and drop pentru taskuri control din tastatura Drag and drop posibil sa nu mearga [...]]]></description>
			<content:encoded><![CDATA[<p>Dupa cum <a title="Intu/Do" href="http://www.danield.ro/2009/09/30/intu-rodo-lista-de-taskuri/">scriam</a> acum mai bine de o luna, m-am mai jucat putin in timpul liber cu into.ro/do si am facut un update adaugand cateva chestii noi, nu chiar la ce ma gandeam initial, dar e un mic pas inainte:</p>
<ul>
<li>drag and drop pentru taskuri</li>
<li>control din tastatura</li>
</ul>
<p>Drag and drop posibil sa nu mearga pe Chrome 3 (taskul zboara pe toata pagina, dar e plasat corect in momentul in care e dropped), numai pe versiunea 4, in rest pe Safari si Firefox e ok. Posibil ca pe Chrome 3 sa mearga aiurea pentru ca e putin cam tricky sa te joci cu jQuery UI cu elemente generate dupa incarcarea unei pagini.</p>
<p>La controlul din taste, sagetile stanga si dreapta dau calendarul inainte sau inapoi, T il aduce la data curenta, enter functioneaza acum la adaugarea unui element, u deschide lista cu taskurile Upcoming, D taskurile terminate si L cele pe care nu le-ai mai rezolvat.</p>
<p><a title="Intu/Do" href="http://intu.ro/do/">Test it up</a>. <img src='http://danield.ro/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://danield.ro/2009/11/13/into-rodo-update/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>intu.ro/do &#8211; lista de taskuri</title>
		<link>http://danield.ro/2009/09/30/intu-rodo-lista-de-taskuri/</link>
		<comments>http://danield.ro/2009/09/30/intu-rodo-lista-de-taskuri/#comments</comments>
		<pubDate>Wed, 30 Sep 2009 15:42:27 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[intudo]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[tasks]]></category>
		<category><![CDATA[todo]]></category>

		<guid isPermaLink="false">http://www.danield.ro/2009/09/30/intu-rodo-lista-de-taskuri/</guid>
		<description><![CDATA[In urma cu ceva vreme, mai exact prin mai, am avut de facut o mica aplicatie ce poate sa tina locul unei liste de lucruri pe care le ai de facut, nu suna prea bine, dar nu stiu cum as putea sa numesc in momentul de fata micul proiect. Asadar, IntuDo este o mini-aplicatie online [...]]]></description>
			<content:encoded><![CDATA[<p>In urma cu ceva vreme, mai exact prin mai, am avut de facut o mica aplicatie ce poate sa tina locul unei liste de lucruri pe care le ai de facut, nu suna prea bine, dar nu stiu cum as putea sa numesc in momentul de fata micul proiect.</p>
<p>Asadar, <a href="http://intu.ro/do/" target="_blank">IntuDo</a> este o mini-aplicatie online ce iti permite sa faci o lista de taskuri si sa o organizezi pe zile. Nu este ceva foarte complex, ci o chestie foarte simpla ce iti permite sa iti organizezi mai bine timpul si, intr-un fel, sa faci ceea ce ti-ai propus pentru ziua respectiva.</p>
<p>Am continuat sa lucrez la IntuDO mai mult dintr-o joaca, tot ce a trebuit sa fac a fost sa termin de implementat login-ul prin intermediul RPX, astfel ca oricine are un cont de Yahoo!, Google, Facebook sau alte servicii ce se bazeaza pe OpenID se poate loga, fara a fi nevoit sa-si mai faca un nou cont si sa mai tina minte o noua parola.</p>
<p>De ce ar folosi cineva asa ceva?</p>
<ol>
<li>e o aplicatie foarte simpla</li>
<li>nu trebuie sa iti faci cont, te poti loga folosind Google, Yahoo!, Facebook, Openid etc</li>
<li>exista studii care spun ca in momentul in care ai scris un lucru, inseamna ca ti-ai asumat un angajamet, de aici rezulta ca vazand lista ta de taskuri iti va fi mai usor sa le duci la bun sfarsit <img src='http://danield.ro/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </li>
</ol>
<p>Pe lista mea de to-do pentru IntuDo sunt urmatoarele:</p>
<ul>
<li>drag &amp; drop la elemente pentru a le schimba data</li>
<li>posibilitatea de a-ti sterge complet contul si toate datele</li>
<li>posibilitatea de a adauga mai multe identitati pe acelasi cont (Google, Yahoo! etc)</li>
<li>subliste</li>
</ul>
<p><a href="http://intu.ro/do/" target="_blank">Test &amp; organize</a> <img src='http://danield.ro/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://danield.ro/2009/09/30/intu-rodo-lista-de-taskuri/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Simple PHP Cache</title>
		<link>http://danield.ro/2009/03/26/simple-php-cache/</link>
		<comments>http://danield.ro/2009/03/26/simple-php-cache/#comments</comments>
		<pubDate>Wed, 25 Mar 2009 23:14:37 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Programare]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.danield.ro/?p=259</guid>
		<description><![CDATA[Avand in vedere ca  nu am mai avut chef sa lucrez in seara asta, m-am gandit sa postez despre o chestie la care am lucrat in trecut si care, cel putin in cazul meu, mi-a fost de folos. Este vorba de o solutie simpla si home-made de a face cache la anumite date in PHP. [...]]]></description>
			<content:encoded><![CDATA[<p>Avand in vedere ca  nu am mai avut chef sa lucrez in seara asta, m-am gandit sa postez despre o chestie la care am lucrat in trecut si care, cel putin in cazul meu, mi-a fost de folos.</p>
<p>Este vorba de o solutie simpla si home-made de a face cache la anumite date in PHP. Cel mai simplu exemplu ar fi urmatorul: ai o pagina cu un articol, pagina respectiva se modifica destul de rar, dar e accesata destul de des. Ce rost ar avea sa preiei/procesezi din nou informatiile de fiecare data cand e accesata pagina, cand ai putea sa salvezi datele si sa le trimiti direct catre partea ce se ocupa cu afisarea lor. Sper sa nu gresesc, dar daca am vorbi despre o arhitectura <a title="MVC" href="http://en.wikipedia.org/wiki/Model-view-controller">Model-View-Controller</a> in PHP, practic sari in mare parte peste Model.</p>
<p><span id="more-259"></span>Stiu ca exista solutii gata facute pentru cache, majoritatea framework-urilor au asa ceva, exista un pachet PEAR pentru cache, dar cred ca e mai fun sa incerci sa faci unele chestii de unul singur, poti invata multe lucruri noi si poti sa controlezi fiecare aspect a ceea ce vrei sa realizezi.</p>
<p>Revenind acum la subiectul principal. Deoarece am avut nevoie de o solutie simpla de a face cache la anumite pagini, am facut cu ceva timp in urma o clasa destul de simpla ce permite sa stochez informatiile pe care le afisez, fara a le mai mesteca inca o data.</p>
<blockquote><p>(1. Vreau pagina x) -&gt; (2.1. Macina datele primite -&gt; 2.2 Returneaza datele) -&gt; (3. Afiseaza continutul)</p></blockquote>
<p>Schema de mai sus putem spune ca e ceea ce se intampla in mod normal. Punctul 2. este de obicei cel care consuma si foloseste cele mai multe resurse. Cred ca deja se poate vedea directia pe care vreau sa merg. De ce nu am incerca sa scoatem punctul 2.1? Nu are rost ca acelasi proces sa se repete de foarte multe ori, mai ales cand datele returnate sunt aceleasi. Ce facem mai departe? Luam datele &#8220;macinate&#8221;, le salvam, iar data viitoare cand vom mai avea nevoie de ele, le luam direct din cache, fara a mai repeta inca o data procesul cel mai greoi.</p>
<p style="text-align: left;">Solutia a fost destul de eficienta pentru mine. Nu am testat chiar atat de serios si nu am testat eficienta decat pe un computer de test, dar rezultatul a fost destul de satisfacator.<img class="size-full wp-image-263 aligncenter" title="Grafic performanta" src="http://www.danield.ro/wp-content/uploads/2009/03/imagine.png" alt="Grafic performanta" width="450" height="320" /></p>
<p style="text-align: left;">Primele doua valori din grafic nu sunt reprezentative, deoarece am testat la rece sistemul, nici varful acela de la seria fara cache. Cu toate acestea, este clar ca la prima accesare, in cazul de fata, momentul in care s-au salvat datele in cache, timul de procesare si afisare a paginii a fost mai ridicat, dar pe parcurs, facandu-se media, se poate vedea ca solutia a fost eficienta.</p>
<p style="text-align: left;">Clasa are 3 metode principale: constructorul, get si set, care sunt prezentate pe scurt mai jos.</p>
<p>In <strong>constructor</strong>, in cazul in care exista date de configurare (directorul, timeout si active), luam datele si le salvam, apoi se verifica daca putem scrie in directorul in care salvam fisierele, daca nu se poate, nu se poate. <img src='http://danield.ro/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<pre class="brush: php">public function __construct($config = array()) {
		if (count($config)) {
			foreach($config as $var =&gt; $value)
				if (in_array($var, $this-&gt;config))
					$this-&gt;$var = $value;
		}

		if (!is_writable($this-&gt;dir)) {
			throw new Exception('Cache directory not writable.');
			$this-&gt;active = false;
		}
	}</pre>
<p><strong>set()</strong> e folosita pentru a salva datele. Se verifica daca id-ul este ok, mai verificam directorul in care scriem, verificam si daca putem sa scriem fisierul si salvam datele. Nimic mai simplu.</p>
<pre class="brush: php">public function set($id, $data) {
		if (!$this-&gt;active)
			return false;

		$this-&gt;data = $data;

		if (preg_match("/(^[a-zA-Z0-9_-]{3,64}$)/", $id)) {
			$cache_file = $this-&gt;dir.$id;
		} else {
			throw new Exception('Invalid cache ID');
			return false;
		}

		if (!is_dir($this-&gt;dir)) {
			throw new Exception('Cache directory not available');
			return false;
		}
		else {
			if (!$handle = fopen($cache_file, 'w')) {
				throw new Exception('Cannot open file');
				return false;
			}
			else {
				if (fwrite($handle, serialize($this-&gt;data))===false) {
					throw new Exception('Cannot write to file');
					return false;
				}
				fclose($handle);
			}
		}

		return true;
	}</pre>
<p><strong>get()</strong> e folosita pentru a prelua datele de cache. Facem din nou niste verificari, daca fisierul exista si e valid (din punct de vedere al timeout-ului), preluam datele si le returnam.</p>
<pre class="brush: php">public function get($id) {
		if (!$this-&gt;active)
			return false;

		if (preg_match("/(^[a-zA-Z0-9_-]{3,64}$)/", $id)) {
			$cache_file=$this-&gt;dir.$id;
		} else {
			throw new Exception('Invalid cache ID');
			return false;
		}
		if (($this-&gt;active)&amp;&amp;(file_exists($cache_file))) {
			if ((time()-filemtime($cache_file))&gt;($this-&gt;timeout*60)) {
				unlink($cache_file);
				return false;
			}

			$this-&gt;data = unserialize(@file_get_contents($cache_file));
			$this-&gt;hit++;
			return $this-&gt;data;
		}
	}</pre>
<p>Am sa postez si un mic exemplu, care poate parea cam greoi, ca si cum ai omora o musca cu pusca, dar nu mi-a venit pe moment o idee de un exemplu mai complex.</p>
<pre class="brush: php">function salut() {
	$mesaj = "Salut, uite ora la care m-au executat :". date("Y-m-d H:i:s");

	return $mesaj;
}

try {
	$cache = new Cache();

	if (!$mesaj = $cache-&gt;get("f-salut")) {
		$mesaj = salut();
		$cache-&gt;set("f-salut", $mesaj);
	}

	echo $mesaj;
} catch (Exception $e) {
    echo 'Ceva n-a mers: '. $e-&gt;getMessage();
}</pre>
<p>Clasa, impreuna cu un exemplu, poate fi downloadata de aici: <a title="Cache" href="http://greentempo.com/funbox/simplecache/Cache.zip">PHP Simple Cache</a>. Un exemplu live poate fi gasit <a title="Cache" href="http://greentempo.com/funbox/simplecache/">aici</a>, dar e cu doua ore in urma pentru ca am uitat sa setez fusul orar <img src='http://danield.ro/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  . In exemplul respectiv se poate vedea data la care a fost geneerat fisierul de cache, data se actualizeaza la fiecare 15 minute, adica la durata de viata setata in acest moment pentru cache.</p>
<p>In cazul in care cineva are sugestii, critici sau orice fel de comentarii, le primesc pe toate cu placere. <img src='http://danield.ro/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://danield.ro/2009/03/26/simple-php-cache/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Care e problema cu PHP?</title>
		<link>http://danield.ro/2008/05/07/caree-problema-cu-php/</link>
		<comments>http://danield.ro/2008/05/07/caree-problema-cu-php/#comments</comments>
		<pubDate>Tue, 06 May 2008 21:56:04 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[La intamplare]]></category>
		<category><![CDATA[Programare]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[script]]></category>

		<guid isPermaLink="false">http://www.blogverde.info/?p=223</guid>
		<description><![CDATA[Tine minte cineva &#8220;Familia Bundy&#8221; sau &#8220;Married with children&#8221;, in engleza? Mi-am adus aminte de o gluma din acest serial. Tot timpul cand cineva o intreba pe Peggy cu ce se ocupa sotul ei, ea prefera sa zica ca Al e gunoier. Cam asa e in ziua de azi cu noi, cei ce ne castigam [...]]]></description>
			<content:encoded><![CDATA[<p>Tine minte cineva &#8220;Familia Bundy&#8221; sau &#8220;Married with children&#8221;, in engleza? Mi-am adus aminte de o gluma din acest serial. Tot timpul cand cineva o intreba pe Peggy cu ce se ocupa sotul ei, ea prefera sa zica ca Al e gunoier.</p>
<p>Cam asa e in ziua de azi cu noi, cei ce ne castigam existenta din PHP. Cred ca de multe ori scapi mai usor daca spui cuiva ca pur si simplu lucrezi in Word sau Excel decat sa recunosti ca ai o relatie mai apropiata cu PHP-ul. Citind bloguri ce tin de programare si sectiunea dedicata programarii de pe reddit, iti dai seama ca pentru foarte multa lume PHP nu e altceva decat o gluma sau un motiv de a face misto.</p>
<p><span id="more-223"></span></p>
<p><strong>De ce nu ia lumea PHP-ul in serios?</strong></p>
<p>In primul rand trebuie sa lamurim un lucru. PHP nu e chiar un limbaj de programare, ci e un limbaj de &#8220;<a title="Scripting language" href="http://en.wikipedia.org/wiki/Scripting_language">scripting</a>&#8221; care e foarte usor de invatat si de cele mai multe ori te ajuta sa faci foarte multe lucruri foarte usor si intr-un timp destul de scurt.</p>
<p>Tocmai de aici vine problema principala. Oricine poate scrie un script PHP, toata lumea ofera pachete de gazduire ieftine sau chiar gratuite ce contine PHP+MySQL. PHP este astfel un limbaj extrem de accesibil si atragator chiar si pentru cei ce nu au experienta cu programarea. Nu vreau sa spun ca e ceva in neregula cu simplitatea si accesibilitatea PHP-ului, dimpotriva, e chiar foarte bine ca a ajuns sa fie chiar atat de raspandit.</p>
<p>Partea proasta la PHP e ca nu e un limbaj prea organizat, si intr-un fel iti cere si te implora sa scrii cod complet dezorganizat (nu exista un standard in denumirea functiilor, ordinea parametrilor la unele functii din aceeasi categorie e diferita de la o functie la alta samd) in care imbini partea de logica sau procesare cu partea de prezentare iar in goana de a rezolva problemele cat mai repede nimeni nu se mai uita la fond, pentru ca tot ceea ce conteaza e sa ai o aplicatie ce functioneaza.</p>
<p><strong>Ce e de facut?</strong></p>
<p>Dupa cum spuneam si mai sus, pentru ca este un limbaj destul de usor de stapanit, nimeni nu mai incearca sa citeasca carti despre PHP si, de obicei, nimeni nu citeste documentatia oficiala. <strong>PHP are una dintrele cele mai bune <a title="Documentatie PHP" href="http://www.php.net/docs.php">documentatii</a></strong> pe care le-am vazut pana acum. Cred ca fiecare aspect al acestui limbaj e documentat si discutat pe site-ul oficial.</p>
<p>Citind documentatia, citind carti si articole vei reusi foarte usor sa evoluezi incetul cu incetul in a scrie cod din ce in ce mai bun. Daca ma gandesc bine, mie mi-e si groaza sa ma uit in trecut la ce scriam acum 3-4 ani. Si acum mai am foarte multe de invatat iar daca deschid un fisier la care am lucrat acum o luna, stau si imi zic: &#8220;problema asta asta putea fi rezolvata mult mai bine asa&#8230;&#8221;. In programare tot timpul cred ca este loc de mai bine si in fiecare zi poti sa inveti si sa te perfectionezi.</p>
<p><strong>Concluzia</strong></p>
<p>Chiar daca este vazut ca un Visual Basic al internetului, PHP-ul cred ca e doar putin neinteles si nefolosit corespunzator. In orice limbaj poti sa scrii cod bun si in orice limbaj poti sa scrii cod mai putin bun. Eu trebuie sa recunosc, dupa ce am lucrat in C si Java, PHP-ul a fost un pas inapoi, cel putin cand vine vorba de &#8220;curatenia&#8221; codului. Incetul cu incetul poti sa ajungi la un nivel destul de ridicat si in PHP, trebuie doar munca si pasiune. Si daca (acum urmeaza lista clasica a aparatorilor PHP) Yahoo, Wikipedia, Facebook, Flickr, Digg, WordPress etc. au reusit sa faca niste aplicatii solide, scalabile, la un asemenea nivel, noi de ce nu am reusi acelasi lucru, la un nivel mult mai mic, bineinteles.</p>
<p><strong>Linkuri</strong></p>
<p><a title="PHP Best Practices" href="http://www.odi.ch/prog/design/php/guide.php">PHP Best Practices</a> &#8211; un ghid foarte bun despre cum se poate trece peste unele dintre problemele de design ale PHP-ului</p>
<p><a title="Documentatie PHP" href="http://www.php.net/docs.php">Documentatia oficiala</a> &#8211; stiu, am mai pus o data linkul in acest post, dar aici chiar chiar veti gasi tot ce vreti sa stiti despre PHP, de la exemple foarte bune pana la functii si instructiuni foarte detaliate.</p>
]]></content:encoded>
			<wfw:commentRss>http://danield.ro/2008/05/07/caree-problema-cu-php/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Multi nervi cu WordPress si PHP</title>
		<link>http://danield.ro/2008/05/05/multi-nervi-cu-wordpress-si-php/</link>
		<comments>http://danield.ro/2008/05/05/multi-nervi-cu-wordpress-si-php/#comments</comments>
		<pubDate>Mon, 05 May 2008 00:32:41 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Programare]]></category>
		<category><![CDATA[feed]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.blogverde.info/?p=222</guid>
		<description><![CDATA[Am stat astazi cateva ore, asta daca nu pun la socoteaza si orele pierdute in primavara la munca pe cand lucram la Boomr.ro, sa-mi dau seama de ce nu merge sa parsezi anumite feeduri XML (RSS si Atom) din PHP. Acum in sfarsit mi-am dat seama care era problema, dar chestia e ca nu o [...]]]></description>
			<content:encoded><![CDATA[<p>Am stat astazi cateva ore, asta daca nu pun la socoteaza si orele pierdute in primavara la munca pe cand lucram la Boomr.ro, sa-mi dau seama de ce nu merge sa parsezi anumite feeduri XML (RSS si Atom) din PHP. Acum in sfarsit mi-am dat seama care era problema, dar chestia e ca nu o pot rezolva.</p>
<p>Concluzia: nu poti parsa feedurile generate de WordPress 2.1.3 (posibil si alte versiuni 2.1.*) din PHP. Dupa ce am facut upgrade la un WordPress pe care testam, totul a mers perfect.</p>
<p><strong>Edit:</strong></p>
<p>N-a mers nici cu Python, folosind urllib si minidom. E ciudat ca feedurile cu probleme in PHP cu fopen sau file sunt deschise in 10-15 secunde, dar daca folosesti un socket, trimiti un request  HTTP, iei pagina, totul e mai rapid (si pentru feeduirle fara probleme) singura problema fiind ca, cel putin eu nu reusesc, nu merge sa parsezi datele xml primite.</p>
]]></content:encoded>
			<wfw:commentRss>http://danield.ro/2008/05/05/multi-nervi-cu-wordpress-si-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Securitatea in aplicatiile web</title>
		<link>http://danield.ro/2008/01/23/securitatea-in-aplicatiile-web/</link>
		<comments>http://danield.ro/2008/01/23/securitatea-in-aplicatiile-web/#comments</comments>
		<pubDate>Tue, 22 Jan 2008 21:10:38 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Internet]]></category>
		<category><![CDATA[Online]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[securitate]]></category>

		<guid isPermaLink="false">http://www.blogverde.info/2008/01/23/securitatea-in-aplicatiile-web/</guid>
		<description><![CDATA[In ultimele zile lucrand atat la un proiect de la munca, cat si la anumite probleme legate de licenta si FifaRomania, ma gandeam la cat de sigure sunt aplicatiile si site-urile pe care le vizitam in fiecare zi. Diferenta dintre un site si un program, cel putin dupa mine, este destul de mare. In unele [...]]]></description>
			<content:encoded><![CDATA[<p>In ultimele zile lucrand atat la un proiect de la munca, cat si la anumite probleme legate de licenta si FifaRomania, ma gandeam la cat de sigure sunt aplicatiile si site-urile pe care le vizitam in fiecare zi.</p>
<p>Diferenta dintre un site si un program, cel putin dupa mine, este destul de mare. In unele cazuri poti lucra la proiecte ce ajung sa fie folosite si vizitate de zeci de mii de useri. Daca e vorba de magazine online, siteuri ce proceseaza si pastreaza date importante despre userii lor, siguranta ar trebui sa vina intotdeauna pe primul loc.</p>
<p><span id="more-204"></span></p>
<p>Daca cititi alte bloguri romanesti mult mai cunoscute, probabil ati observat o tendinta a site-urilor de la noi sa aiba anumite lacune cand e vorba despre securitate. De unde vine aceasta problema? Adevarul e ca, de multe ori, programatorilor nu prea le pasa, iar pentru asta sunt 2 motive:</p>
<ul>
<li>nu au destula experienta si nu sunt obisnuiti cu proiecte serioase, ei se multumesc cu faptul ca au reusit sa faca ceva functional</li>
<li>nu au destul timp, iar asta se intampla de cele mai multe ori cand esti sub presiune si trebuie sa indeplinesti niste deadline-uri imposibile, astfel ajungi sa renunti la unele ce nu se observa atat de usor</li>
</ul>
<p>In cazul PHP-ului, una din regulile de baza pe care le inveti citind manualul este sa nu ai niciodata incredere in ceea ce iti trimite utilizatorul. Nu vreau aici sa jignesc pe nimeni, dar adevarul este ca de multe ori se intmpla ca o persoana sa faca o eroare neintentionata, eroare la care programatorul nu se asteapta, pentru ca, sa fim sinceri, de multe ori cand lucrezi la o aplicatie si nu ai la dispozitie niste persoane care sa testeze si/sau persoane care sa lucreze la &#8220;usability&#8221; (scuze, imi scapa cuvantul <img src='http://danield.ro/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  ) vei ajunge sa construiesti ceva extrem de simplu de folosit pentru tine, dar foarte complicat de folosit pentru o persoana neinitiata.</p>
<p>Cel mai simplu este sa incepi cu lucrurile de baza, iar documentatia oficiala a limbajului/tehnologiei pe care o folosesti e punctul cel mai bun de plecare. Intotdeauna de acolo vei putea invata si vei gasi informatii reale si pe care te vei putea baza.</p>
<p>Voi reveni in urmatoarele zile cu exemple mai concrete. <img src='http://danield.ro/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://danield.ro/2008/01/23/securitatea-in-aplicatiile-web/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>PDF in PHP</title>
		<link>http://danield.ro/2007/03/20/pdf-in-php/</link>
		<comments>http://danield.ro/2007/03/20/pdf-in-php/#comments</comments>
		<pubDate>Tue, 20 Mar 2007 19:30:48 +0000</pubDate>
		<dc:creator>Daniel</dc:creator>
				<category><![CDATA[Programare]]></category>
		<category><![CDATA[pdf]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.blogverde.info/2007/03/20/pdf-in-php/</guid>
		<description><![CDATA[In ultimele saptamani am avut destul de mult de lucru cu generarea fisierelor PDF din PHP. In cazul in care nu stiati, functiile PDF din PHP folosesc PDFlib, librarie care nu este gratuita iar in varianta lite nu poate sa fie folosita decat respectand anumite conditii (sa o folositi doar in interes personal). In cazul [...]]]></description>
			<content:encoded><![CDATA[<p>In ultimele saptamani am avut destul de mult de lucru cu generarea fisierelor PDF din PHP. In cazul in care nu stiati, functiile PDF din PHP folosesc PDFlib, librarie care nu este gratuita iar in varianta lite nu poate sa fie folosita decat respectand anumite conditii (sa o folositi doar in interes personal).</p>
<p>In cazul in care aveti lucruri mai serioase de facut si nu aveti bani de licenta PDFlib, va recomand o clasa foarte simpla si foarte usor de folosit: <a href="http://www.fpdf.org/">FPDF</a>. Singura problema este ca nu stie sa lucreze cu ÅŸ,Å£,Äƒ,Ã® si Ã¢. Se poate rezolva important un set nou de fonturi, din pacate procesul e destul de greoi.</p>
]]></content:encoded>
			<wfw:commentRss>http://danield.ro/2007/03/20/pdf-in-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

