<?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>Dazoot Software :: Blog &#187; Catalin Constantin</title>
	<atom:link href="http://blog.dazoot.ro/author/catalin/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.dazoot.ro</link>
	<description>Dazoot Software :: Blog</description>
	<lastBuildDate>Mon, 06 Sep 2010 08:30:27 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Newsman ESP &#8211; Ip Monitoring Tool</title>
		<link>http://blog.dazoot.ro/2010/03/newsman-esp-ip-monitoring-tool/</link>
		<comments>http://blog.dazoot.ro/2010/03/newsman-esp-ip-monitoring-tool/#comments</comments>
		<pubDate>Sun, 07 Mar 2010 12:43:31 +0000</pubDate>
		<dc:creator>Catalin Constantin</dc:creator>
				<category><![CDATA[Deliverability]]></category>
		<category><![CDATA[Newsletters]]></category>
		<category><![CDATA[bulk / junk]]></category>
		<category><![CDATA[esp]]></category>
		<category><![CDATA[ip monitor]]></category>
		<category><![CDATA[newsletter]]></category>
		<category><![CDATA[Newsman]]></category>
		<category><![CDATA[reputation]]></category>

		<guid isPermaLink="false">http://blog.dazoot.ro/?p=261</guid>
		<description><![CDATA[Când trimiți un newsletter și majoritatea recipienților îl primesc în folderul Junk sau Bulk, ceva nu a mers bine și trebuie să iei măsuri. Motivul pentru care mesajul este plasat în Junk/Bulk diferă de la caz la caz. Mai jos enumăr câteva motive:
1. Content invalid sintactic (bad HTML is not good)
2. Bad IP Reputation (providerul tău [...]]]></description>
			<content:encoded><![CDATA[<p>Când trimiți un newsletter și majoritatea recipienților îl primesc în folderul Junk sau Bulk, ceva nu a mers bine și trebuie să iei măsuri. Motivul pentru care mesajul este plasat în Junk/Bulk diferă de la caz la caz. Mai jos enumăr câteva motive:<br />
1. Content invalid sintactic (bad HTML is not good)<br />
2. Bad IP Reputation (<em>providerul tău curent îți garanteaza IP dedicat pentru livrarea newsletterelor ? Daca NU, atunci ai o problemă</em>)<br />
3. Spammy keywords (fie în subject fie în body-ul mesajului)<br />
4. Rată mare de Spam complaints (<em>providerul tău curent îți procesează și Spam Complaints ? Daca NU, atunci ai o problemă și mai mare</em>)</p>
<p>Oricare ar fi motivul pentru care mesajul tău a ajuns în Junk, daca nu știi ce se întâmpla cu mesajele tale nu ai cum să iei măsuri să îți îmbunătățești rata de penetrarea a Inbox-ului (<strong><a href="http://www.newsman.ro/" target="_blank">deliverability</a></strong>).</p>
<p>La <a title="Servicii newslettering PRO" href="http://www.newsman.ro/" target="_blank">Newsman.ro</a> am introdus recent în Panoul de Administrarea al listelor, un tool de monitorizare a IP-urilor dedicate (per client).<br />
Monitorizarea reputației IP-ului este activată implicit pentru orice client Newsman.ro.<br />
Vrei să știi ce se întâmplă cu emailurile tale după ce sunt trimise? Try us out. Comentează la acest post sau contactează-ne prin email și după o lună de zile îți trimitem un raport detaliat al monitorizării IP-urilor tale.</p>
<p style="text-align: center;">Screenshot mai jos:<br />
<a href="http://blog.dazoot.ro/wp-content/uploads/2010/03/IpMonitor.png" target="_blank"><img class="aligncenter size-medium wp-image-263" title="IpMonitor Newsman" src="http://blog.dazoot.ro/wp-content/uploads/2010/03/IpMonitor-300x196.png" alt="IpMonitor Newsman" width="300" height="196" /></a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dazoot.ro/2010/03/newsman-esp-ip-monitoring-tool/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>BricoMall.ro &#8211; locul al treilea la &#8220;User&#8217;s Choice&#8221; la Gala Premiilor eCommerce 2009</title>
		<link>http://blog.dazoot.ro/2009/10/bricomall-ro-locul-al-treilea-la-users-choice-la-gala-premiilor-ecommerce-2009/</link>
		<comments>http://blog.dazoot.ro/2009/10/bricomall-ro-locul-al-treilea-la-users-choice-la-gala-premiilor-ecommerce-2009/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 11:40:28 +0000</pubDate>
		<dc:creator>Catalin Constantin</dc:creator>
				<category><![CDATA[IT news]]></category>
		<category><![CDATA[Shopping online]]></category>
		<category><![CDATA[bricomall]]></category>
		<category><![CDATA[eCommerce]]></category>
		<category><![CDATA[magazin]]></category>
		<category><![CDATA[online]]></category>
		<category><![CDATA[shopping]]></category>

		<guid isPermaLink="false">http://blog.dazoot.ro/?p=246</guid>
		<description><![CDATA[Cel mai asteptat eveniment al anului pentru comerciantii online din Romania, Gala Premiilor eCommerce a avut loc marti, 20 octombrie, la hotelul Ramada Bucharest Park.

Dupa o serie de prezentari si seminarii despre tot ceea ce presupune o afacere de comert online in Romania, a avut loc momentul cel mai asteptat al serii : decernarea premiilor.
Intr-o [...]]]></description>
			<content:encoded><![CDATA[<p>Cel mai asteptat eveniment al anului pentru comerciantii online din Romania, Gala Premiilor eCommerce a avut loc marti, 20 octombrie, la hotelul Ramada Bucharest Park.</p>
<p><img class="aligncenter size-full wp-image-247" title="CIMG0102" src="http://blog.dazoot.ro/wp-content/uploads/2009/10/CIMG0102.JPG" alt="CIMG0102" width="500" height="374" /></p>
<p>Dupa o serie de prezentari si seminarii despre tot ceea ce presupune o afacere de comert online in Romania, a avut loc momentul cel mai asteptat al serii : decernarea premiilor.</p>
<p>Intr-o atmosfera destinsa, organizatorii au prezentat intai un colaj de filmulete inregistrate in momentul testarii site-urilor inscrise, cu focus pe diferitele erori de functionare descoperite de catre testarii GPeC, iar momentul cel mai amuzant al serii a fost decernarea Verzei editiei, site-ului care a obtinut cel mai mic punctaj.</p>
<p>In total au participat un numar de 63 de magazine online, care au fost supuse la 96 de criterii de jurizare si multe teste de uzabilitate, de catre 2 jurii in paralel, cu 21 de jurati de specialitate si 5 jurati consumatori.</p>
<p><img class="aligncenter size-full wp-image-248" title="CIMG0130" src="http://blog.dazoot.ro/wp-content/uploads/2009/10/CIMG0130.JPG" alt="CIMG0130" width="500" height="374" /></p>
<p>Profitind astfel de aceasta ocazie buna pentru orice magazin online de a-si testa propriile defecte atat in ceea ce priveste interfata web, cat si in ceea ce priveste modul de interactie cu clientii, <a href="http://www.bricomall.ro" target="_blank">BricoMall.ro</a> s-a clasat pe locul al treilea la categoria sa (« Acasa ») cu un total de 787 de puncte obtinute.</p>
<p><img class="aligncenter size-full wp-image-249" title="CIMG0133" src="http://blog.dazoot.ro/wp-content/uploads/2009/10/CIMG0133.JPG" alt="CIMG0133" width="500" height="374" /></p>
<p>In acelasi timp, la categoria premiilor &#8220;<strong>User&#8217;s Choice</strong>&#8221; &#8211; Start Up, din partea consumatorilor, <a href="http://www.bricomall.ro" target="_blank">BricoMall</a> s-a clasat din nou pe locul 3, cu un total insumat de 41 de puncte.</p>
<p><img class="aligncenter size-full wp-image-250" title="CIMG0136" src="http://blog.dazoot.ro/wp-content/uploads/2009/10/CIMG0136.JPG" alt="CIMG0136" width="500" height="374" /></p>
<p>Desi suntem incantati de clasarea <a href="http://www.bricomall.ro" target="_blank">BricoMall.ro</a> in primele 3 pozitii, la ambele sectiuni la care a participat, speram sa putem invata din propriile lipsuri, pentru a imbunatati astfel experienta de shopping online a clientilor nostri.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dazoot.ro/2009/10/bricomall-ro-locul-al-treilea-la-users-choice-la-gala-premiilor-ecommerce-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Prezentare Newsman la OBF Pitesti 2009</title>
		<link>http://blog.dazoot.ro/2009/10/prezentare-newsman-la-obf-pitesti-2009/</link>
		<comments>http://blog.dazoot.ro/2009/10/prezentare-newsman-la-obf-pitesti-2009/#comments</comments>
		<pubDate>Thu, 22 Oct 2009 11:16:35 +0000</pubDate>
		<dc:creator>Catalin Constantin</dc:creator>
				<category><![CDATA[How to]]></category>
		<category><![CDATA[IT news]]></category>
		<category><![CDATA[Newsman]]></category>
		<category><![CDATA[OBF]]></category>

		<guid isPermaLink="false">http://blog.dazoot.ro/?p=226</guid>
		<description><![CDATA[În data de 29 septembrie 2009,  la Hotel Campus (sala de conferinţe), Pitesti, a avut loc a doua editie a Online Business Forum, eveniment ce se doreşte a fi doar primul pas al unei serii de conferinţe pe termen lung, dedicate utilizării instrumentelor online în afaceri.

In program a fost inclusa si o prezentare sustinuta [...]]]></description>
			<content:encoded><![CDATA[<p>În data de 29 septembrie 2009,  la Hotel Campus (sala de conferinţe), Pitesti, a avut loc a doua editie a <a href="http://www.obf.ro" target="_blank">Online Business Forum</a>, eveniment ce se doreşte a fi doar primul pas al unei serii de conferinţe pe termen lung, dedicate utilizării instrumentelor online în afaceri.</p>
<p><img class="size-full wp-image-235 aligncenter" title="Picture 1253" src="http://blog.dazoot.ro/wp-content/uploads/2009/10/Picture-12531.jpg" alt="Picture 1253" width="500" height="332" /></p>
<p>In program a fost inclusa si o prezentare sustinuta de <a href="http://www.newsman.ro" target="_blank"><strong>NewsMan</strong></a>: „<strong><a href="http://www.slideshare.net/dazoot/emailing-pentru-publisheri-i-ecommerce" target="_blank">Emailing pentru Publisheri și E-Commerce</a></strong>”, ce contine o lista cu principalele puncte ce trebuie atinse si de care trebuie tinut cont in momentul in care te decizi sa iti incluzi in modelul tau de business marketarea prin intermediul newsletterelor, si modul in care <a href="http://www.newsman.ro" target="_blank"><strong>NewsMan</strong></a> le trateaza.</p>
<p><img class="aligncenter size-full wp-image-230" title="image001" src="http://blog.dazoot.ro/wp-content/uploads/2009/10/image001.jpg" alt="image001" width="500" height="375" /></p>
<p>Descarca gratuit prezentarea in format ppt:</p>
<p><a href="http://www.slideshare.net/dazoot/emailing-pentru-publisheri-i-ecommerce" target="_blank"><img class="alignleft size-full wp-image-231" title="newsmannou-091022033927-phpapp02-thumbnail-2" src="http://blog.dazoot.ro/wp-content/uploads/2009/10/newsmannou-091022033927-phpapp02-thumbnail-2.jpg" alt="newsmannou-091022033927-phpapp02-thumbnail-2" width="120" height="90" /> </a><br />
<a href="http://www.slideshare.net/dazoot/emailing-pentru-publisheri-i-ecommerce" target="_blank">„Emailing pentru Publisheri  și E-Commerce”</a></p>
<p>Pentru orice informatii referitoare la modalitati de trimitere a newsletterelor cu ajutorul <strong>NewsMan</strong> va rugam sa ne <a href="http://www.dazoot.ro/contact/" target="_blank">contactati</a>.</p>
<p><img class="aligncenter size-full wp-image-240" title="Picture 1257" src="http://blog.dazoot.ro/wp-content/uploads/2009/10/Picture-12571.jpg" alt="Picture 1257" width="500" height="332" /></p>
<p><img class="aligncenter size-full wp-image-242" title="Picture 1252" src="http://blog.dazoot.ro/wp-content/uploads/2009/10/Picture-12522.jpg" alt="Picture 1252" width="500" height="750" /></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dazoot.ro/2009/10/prezentare-newsman-la-obf-pitesti-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Procesare bounce-uri in real time</title>
		<link>http://blog.dazoot.ro/2009/09/procesare-bounce-uri-in-real-time/</link>
		<comments>http://blog.dazoot.ro/2009/09/procesare-bounce-uri-in-real-time/#comments</comments>
		<pubDate>Fri, 04 Sep 2009 13:31:23 +0000</pubDate>
		<dc:creator>Catalin Constantin</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[How to]]></category>

		<guid isPermaLink="false">http://blog.dazoot.ro/?p=149</guid>
		<description><![CDATA[De multe ori este important ca lista de utilizatori ai unui site sau de abonati la un newsletter sa fie &#8220;clean&#8221;. Prin clean ma refer in primul rand la eliminarea adreselor inexistente.
Conform RFC, erorile de tip 5.1.1 reprezinta erori permanente (Bad destination mailbox address). Daca toti ar fi RFC Compliant, totul ar fi foarte simplu, [...]]]></description>
			<content:encoded><![CDATA[<p>De multe ori este important ca lista de utilizatori ai unui site sau de abonati la un newsletter sa fie &#8220;clean&#8221;. Prin clean ma refer in primul rand la eliminarea adreselor inexistente.<br />
Conform <a href="http://rfc.sunsite.dk/rfc/rfc2034.html" target="_blank">RFC</a>, erorile de tip 5.1.1 reprezinta erori permanente (Bad destination mailbox address). Daca toti ar fi RFC Compliant, totul ar fi foarte simplu, dar din pacate multe servere de mail (SMTP) au propriile error codes. Noi la <a href="http://www.newsman.ro/" target="_blank">Newsman.ro</a> incercam sa &#8220;construim&#8221; o lista de mesaje de eroare parsabile care identifica o adresa de mail inexistenta. Solutia noastra este listata mai jos. Folosim Python, dar in mod sigur mesajele RAW email pot fi parsate si in alte limbaje de programare. De exemplu in PHP5 mesajele email pot fi parsate foarte bine si rapid folosind libraria Zend.</p>
<p>Python Bounce Detector:</p>
<div style="width: 500px; overflow-x: hidden;">

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #ff7700;font-weight:bold;">import</span> <span style="color: #dc143c;">email</span>, <span style="color: #dc143c;">re</span>
&nbsp;
NO_USER_FOUND_MSGS = <span style="color: black;">&#91;</span>
    <span style="color: #483d8b;">&quot;user unknown&quot;</span>, <span style="color: #808080; font-style: italic;"># web.de</span>
    <span style="color: #483d8b;">&quot;unknown local part&quot;</span>, <span style="color: #808080; font-style: italic;"># web.de</span>
    <span style="color: #483d8b;">&quot;user is unknown&quot;</span>, <span style="color: #808080; font-style: italic;"># gmx.de</span>
    <span style="color: #483d8b;">&quot;MAILBOX NOT FOUND&quot;</span>, <span style="color: #808080; font-style: italic;"># aol.com</span>
    <span style="color: #483d8b;">&quot;But, your recipient never logged onto their free AIM Mail account.&quot;</span>, <span style="color: #808080; font-style: italic;"># aim.com by AOL</span>
    <span style="color: #dc143c;">re</span>.<span style="color: #008000;">compile</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;554 delivery error<span style="color: #000099; font-weight: bold;">\:</span> dd.*cannot be delivered.*disabled or discontinued.*yahoo&quot;</span>, <span style="color: #dc143c;">re</span>.<span style="color: black;">I</span><span style="color: black;">&#41;</span>, <span style="color: #808080; font-style: italic;"># yahoo</span>
    <span style="color: #dc143c;">re</span>.<span style="color: #008000;">compile</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;554 delivery error<span style="color: #000099; font-weight: bold;">\:</span> dd This user doesn<span style="color: #000099; font-weight: bold;">\'</span>t have a.*yahoo&quot;</span>, <span style="color: #dc143c;">re</span>.<span style="color: black;">I</span><span style="color: black;">&#41;</span>, <span style="color: #808080; font-style: italic;"># yahoo</span>
    <span style="color: #483d8b;">&quot;Requested action not taken: mailbox unavailable&quot;</span>, <span style="color: #808080; font-style: italic;"># hotmail</span>
    <span style="color: #483d8b;">&quot;550 unrouteable address&quot;</span>, <span style="color: #808080; font-style: italic;"># freenet.de</span>
    <span style="color: #483d8b;">&quot;sorry, that mailbox isn't in my list of allowed mailboxes&quot;</span>, <span style="color: #808080; font-style: italic;"># cabanova.com</span>
    <span style="color: #483d8b;">&quot;551 not our customer&quot;</span>, <span style="color: #808080; font-style: italic;"># att.net</span>
    <span style="color: #483d8b;">&quot;Addressee unknown&quot;</span>, <span style="color: #808080; font-style: italic;"># sbcglobal.net</span>
    <span style="color: #483d8b;">&quot;user not found&quot;</span>, <span style="color: #808080; font-style: italic;"># mail.ru</span>
    <span style="color: #483d8b;">&quot;invalid mailbox&quot;</span>, <span style="color: #808080; font-style: italic;"># mail.ru</span>
    <span style="color: #483d8b;">&quot;No such user.&quot;</span>, <span style="color: #808080; font-style: italic;"># k.ro</span>
    <span style="color: #483d8b;">&quot;DOESN'T EXIST&quot;</span>, <span style="color: #808080; font-style: italic;"># k.ro</span>
    <span style="color: #483d8b;">&quot;no such mailbox&quot;</span>, <span style="color: #808080; font-style: italic;"># qmail</span>
    <span style="color: #483d8b;">&quot;No Such User&quot;</span>, <span style="color: #808080; font-style: italic;"># text</span>
    <span style="color: #483d8b;">&quot;No Such mailbox&quot;</span>, <span style="color: #808080; font-style: italic;"># text</span>
    <span style="color: #483d8b;">&quot;Unknown user&quot;</span>, <span style="color: #808080; font-style: italic;"># easynet, text</span>
    <span style="color: #483d8b;">&quot;Unknown mailbox&quot;</span>, <span style="color: #808080; font-style: italic;"># text</span>
    <span style="color: #483d8b;">&quot;Invalid recipient&quot;</span>, <span style="color: #808080; font-style: italic;"># text</span>
    <span style="color: #483d8b;">&quot;Recipient unknown&quot;</span>, <span style="color: #808080; font-style: italic;"># text</span>
    <span style="color: #483d8b;">&quot;No such email&quot;</span>, <span style="color: #808080; font-style: italic;"># text, apropo.ro</span>
    <span style="color: #483d8b;">&quot;No such mail&quot;</span>, <span style="color: #808080; font-style: italic;"># text</span>
    <span style="color: #483d8b;">&quot;unknown recipient&quot;</span>, <span style="color: #808080; font-style: italic;"># text</span>
    <span style="color: #483d8b;">&quot;No such person at this address&quot;</span>, <span style="color: #808080; font-style: italic;"># as.ro</span>
    <span style="color: #483d8b;">&quot;#5.1.0 Address rejected&quot;</span>, <span style="color: #808080; font-style: italic;"># text</span>
    <span style="color: #dc143c;">re</span>.<span style="color: #008000;">compile</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;55<span style="color: #000099; font-weight: bold;">\d</span> sorry, no mailbox&quot;</span>, <span style="color: #dc143c;">re</span>.<span style="color: black;">I</span><span style="color: black;">&#41;</span>, <span style="color: #808080; font-style: italic;"># text, qmail</span>
    <span style="color: #483d8b;">&quot;invalid address&quot;</span>, <span style="color: #808080; font-style: italic;"># text</span>
    <span style="color: #483d8b;">&quot;User account is unavailable&quot;</span>, <span style="color: #808080; font-style: italic;"># text</span>
    <span style="color: #483d8b;">&quot;Recipient not found&quot;</span>, <span style="color: #808080; font-style: italic;"># text</span>
    <span style="color: #483d8b;">&quot;User account is unavailable&quot;</span>, <span style="color: #808080; font-style: italic;"># text</span>
    <span style="color: #483d8b;">&quot;does not exist&quot;</span>, <span style="color: #808080; font-style: italic;"># text</span>
    <span style="color: #483d8b;">&quot;No account by that name here&quot;</span>, <span style="color: #808080; font-style: italic;"># text</span>
    <span style="color: #483d8b;">&quot;Mailbox is inactive&quot;</span>, <span style="color: #808080; font-style: italic;"># text</span>
    <span style="color: #483d8b;">&quot;Nonexistent user&quot;</span>, <span style="color: #808080; font-style: italic;"># text</span>
    <span style="color: #483d8b;">&quot;no mailbox here by that name&quot;</span>, <span style="color: #808080; font-style: italic;"># text</span>
    <span style="color: #483d8b;">&quot;mail not found&quot;</span>, <span style="color: #808080; font-style: italic;"># text</span>
    <span style="color: #483d8b;">&quot;Mailbox disabled&quot;</span>, <span style="color: #808080; font-style: italic;"># text</span>
    <span style="color: #483d8b;">&quot;No such recipient&quot;</span>, <span style="color: #808080; font-style: italic;"># text</span>
    <span style="color: #483d8b;">&quot;5.1.1&quot;</span>, <span style="color: #808080; font-style: italic;"># text - freemail.hu</span>
    <span style="color: black;">&#93;</span>
   
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> NoDeliveryStatusException<span style="color: black;">&#40;</span><span style="color: #008000;">Exception</span><span style="color: black;">&#41;</span>:
    <span style="color: #ff7700;font-weight:bold;">pass</span>
&nbsp;
<span style="color: #ff7700;font-weight:bold;">class</span> WrongDeliveryStatusException<span style="color: black;">&#40;</span><span style="color: #008000;">Exception</span><span style="color: black;">&#41;</span>:
    <span style="color: #ff7700;font-weight:bold;">pass</span>
   
<span style="color: #ff7700;font-weight:bold;">class</span> BounceParser:   
    <span style="color: #ff7700;font-weight:bold;">def</span> <span style="color: #0000cd;">__init__</span><span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, raw_msg=<span style="color: #008000;">None</span><span style="color: black;">&#41;</span>:
        <span style="color: #008000;">self</span>.<span style="color: black;">matched_msg</span> = <span style="color: #008000;">None</span>
        <span style="color: #ff7700;font-weight:bold;">if</span> raw_msg <span style="color: #ff7700;font-weight:bold;">is</span> <span style="color: #ff7700;font-weight:bold;">not</span> <span style="color: #008000;">None</span>:
            <span style="color: #008000;">self</span>.<span style="color: black;">parse</span><span style="color: black;">&#40;</span>raw_msg<span style="color: black;">&#41;</span>
   
    <span style="color: #ff7700;font-weight:bold;">def</span> parse<span style="color: black;">&#40;</span><span style="color: #008000;">self</span>, raw_msg<span style="color: black;">&#41;</span>:
        <span style="color: #008000;">self</span>._parsed = <span style="color: #008000;">False</span>
       
        <span style="color: #008000;">self</span>.<span style="color: black;">status</span> = <span style="color: #008000;">None</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">diagnostic_message</span> = <span style="color: #008000;">None</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">action</span> = <span style="color: #008000;">None</span>
       
        <span style="color: #008000;">self</span>.<span style="color: black;">msg</span> = <span style="color: #dc143c;">email</span>.<span style="color: black;">message_from_string</span><span style="color: black;">&#40;</span>raw_msg<span style="color: black;">&#41;</span>
        <span style="color: #008000;">self</span>.<span style="color: black;">dsmsg</span> = <span style="color: #008000;">None</span>
        <span style="color: #ff7700;font-weight:bold;">for</span> part <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">self</span>.<span style="color: black;">msg</span>.<span style="color: black;">get_payload</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
            <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #008000;">type</span><span style="color: black;">&#40;</span>part<span style="color: black;">&#41;</span> <span style="color: #ff7700;font-weight:bold;">is</span> <span style="color: #008000;">str</span>:
                <span style="color: #ff7700;font-weight:bold;">raise</span> NoDeliveryStatusException<span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;No message/delivery-status part found.&quot;</span><span style="color: black;">&#41;</span>
            <span style="color: #ff7700;font-weight:bold;">if</span> part.<span style="color: black;">get_content_type</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> == <span style="color: #483d8b;">&quot;message/delivery-status&quot;</span>:
                <span style="color: #008000;">self</span>.<span style="color: black;">dsmsg</span> = part
                <span style="color: #ff7700;font-weight:bold;">break</span>
        <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #008000;">self</span>.<span style="color: black;">dsmsg</span> <span style="color: #ff7700;font-weight:bold;">is</span> <span style="color: #008000;">None</span>:
            <span style="color: #ff7700;font-weight:bold;">raise</span> NoDeliveryStatusException<span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;No message/delivery-status part found.&quot;</span><span style="color: black;">&#41;</span>
       
        <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #ff7700;font-weight:bold;">not</span> <span style="color: #008000;">self</span>.<span style="color: black;">dsmsg</span>.<span style="color: black;">is_multipart</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
            <span style="color: #008000;">self</span>.<span style="color: black;">status</span> = <span style="color: #008000;">self</span>.<span style="color: black;">dsmsg</span>.<span style="color: black;">get</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Status&quot;</span>, <span style="color: #008000;">None</span><span style="color: black;">&#41;</span>
            <span style="color: #008000;">self</span>.<span style="color: black;">diagnostic_message</span> = <span style="color: #008000;">self</span>.<span style="color: black;">dsmsg</span>.<span style="color: black;">get</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Diagnostic-Code&quot;</span>, <span style="color: #008000;">None</span><span style="color: black;">&#41;</span>
            <span style="color: #008000;">self</span>.<span style="color: black;">action</span> = <span style="color: #008000;">self</span>.<span style="color: black;">dsmsg</span>.<span style="color: black;">get</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Action&quot;</span>, <span style="color: #008000;">None</span><span style="color: black;">&#41;</span>
        <span style="color: #ff7700;font-weight:bold;">else</span>:
            <span style="color: #ff7700;font-weight:bold;">for</span> part <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">self</span>.<span style="color: black;">dsmsg</span>.<span style="color: black;">get_payload</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
                <span style="color: #ff7700;font-weight:bold;">if</span> part.<span style="color: black;">has_key</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Status&quot;</span><span style="color: black;">&#41;</span>:
                    <span style="color: #008000;">self</span>.<span style="color: black;">status</span> = part.<span style="color: black;">get</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Status&quot;</span><span style="color: black;">&#41;</span>
                <span style="color: #ff7700;font-weight:bold;">if</span> part.<span style="color: black;">has_key</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Diagnostic-Code&quot;</span><span style="color: black;">&#41;</span>:
                    <span style="color: #008000;">self</span>.<span style="color: black;">diagnostic_message</span> = part.<span style="color: black;">get</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Diagnostic-Code&quot;</span>, <span style="color: #008000;">None</span><span style="color: black;">&#41;</span>
                <span style="color: #ff7700;font-weight:bold;">if</span> part.<span style="color: black;">has_key</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Action&quot;</span><span style="color: black;">&#41;</span>:
                    <span style="color: #008000;">self</span>.<span style="color: black;">action</span> = part.<span style="color: black;">get</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;Action&quot;</span>, <span style="color: #008000;">None</span><span style="color: black;">&#41;</span>
       
        <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #008000;">self</span>.<span style="color: black;">status</span> <span style="color: #ff7700;font-weight:bold;">is</span> <span style="color: #008000;">None</span>:
            <span style="color: #ff7700;font-weight:bold;">raise</span> WrongDeliveryStatusException<span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;No Status: found in message/delivery-status part.&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #008000;">self</span>.<span style="color: black;">action</span> <span style="color: #ff7700;font-weight:bold;">is</span> <span style="color: #008000;">None</span>:
            <span style="color: #ff7700;font-weight:bold;">raise</span> WrongDeliveryStatusException<span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;No Action: found in message/delivery-status part.&quot;</span><span style="color: black;">&#41;</span>
        <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #008000;">self</span>.<span style="color: black;">diagnostic_message</span> <span style="color: #ff7700;font-weight:bold;">is</span> <span style="color: #ff7700;font-weight:bold;">not</span> <span style="color: #008000;">None</span>:
            <span style="color: #008000;">self</span>.<span style="color: black;">diagnostic_message</span> = <span style="color: #008000;">self</span>.<span style="color: black;">diagnostic_message</span>.<span style="color: black;">replace</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\r</span>&quot;</span>, <span style="color: #483d8b;">&quot;&quot;</span><span style="color: black;">&#41;</span>.<span style="color: black;">replace</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\t</span>&quot;</span>, <span style="color: #483d8b;">&quot; &quot;</span><span style="color: black;">&#41;</span>.<span style="color: black;">replace</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span>, <span style="color: #483d8b;">&quot; &quot;</span><span style="color: black;">&#41;</span>
       
        <span style="color: #008000;">self</span>._parsed = <span style="color: #008000;">True</span>
    
    <span style="color: #ff7700;font-weight:bold;">def</span> isParsed<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">self</span>._parsed
&nbsp;
    <span style="color: #ff7700;font-weight:bold;">def</span> isFailed<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">self</span>.<span style="color: black;">action</span>.<span style="color: black;">lower</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span> == <span style="color: #483d8b;">&quot;failed&quot;</span>
    
    <span style="color: #ff7700;font-weight:bold;">def</span> is5xx<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">self</span>.<span style="color: black;">status</span>.<span style="color: black;">find</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;5.&quot;</span><span style="color: black;">&#41;</span> == <span style="color: #ff4500;">0</span>
   
    <span style="color: #ff7700;font-weight:bold;">def</span> is4xx<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">self</span>.<span style="color: black;">status</span>.<span style="color: black;">find</span><span style="color: black;">&#40;</span><span style="color: #483d8b;">&quot;4.&quot;</span><span style="color: black;">&#41;</span> == <span style="color: #ff4500;">0</span>
   
    <span style="color: #ff7700;font-weight:bold;">def</span> getDiagnosticMessage<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">self</span>.<span style="color: black;">diagnostic_message</span>
   
    <span style="color: #ff7700;font-weight:bold;">def</span> isNoUserFound<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #ff7700;font-weight:bold;">not</span> <span style="color: #008000;">self</span>.<span style="color: black;">isFailed</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
            <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">False</span>
       
        <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #ff7700;font-weight:bold;">not</span> <span style="color: #008000;">self</span>.<span style="color: black;">is5xx</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>:
            <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">False</span>
       
        <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #008000;">self</span>.<span style="color: black;">status</span> == <span style="color: #483d8b;">&quot;5.1.1&quot;</span>:
            <span style="color: #808080; font-style: italic;"># @see &lt;a href=&quot;http://rfc.sunsite.dk/rfc/rfc2034.html&quot;&gt;http://rfc.sunsite.dk/rfc/rfc2034.html&lt;/a&gt;</span>
            <span style="color: #808080; font-style: italic;"># 5.1.1 is always no such user / mailbox</span>
            <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">True</span>
       
        <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #008000;">self</span>.<span style="color: black;">diagnostic_message</span> <span style="color: #ff7700;font-weight:bold;">is</span> <span style="color: #008000;">None</span>:
            <span style="color: #808080; font-style: italic;"># Missing diagnostig message =&amp;gt; no can do parse :D</span>
            <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">False</span>
           
        diagnostic_message = <span style="color: #008000;">self</span>.<span style="color: black;">diagnostic_message</span>.<span style="color: black;">lower</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>.<span style="color: black;">strip</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span>
        <span style="color: #ff7700;font-weight:bold;">for</span> m <span style="color: #ff7700;font-weight:bold;">in</span> NO_USER_FOUND_MSGS:
            <span style="color: #ff7700;font-weight:bold;">if</span> <span style="color: #008000;">type</span><span style="color: black;">&#40;</span>m<span style="color: black;">&#41;</span> <span style="color: #ff7700;font-weight:bold;">is</span> <span style="color: #008000;">str</span>:
                <span style="color: #ff7700;font-weight:bold;">if</span> diagnostic_message.<span style="color: black;">find</span><span style="color: black;">&#40;</span>m.<span style="color: black;">lower</span><span style="color: black;">&#40;</span><span style="color: black;">&#41;</span><span style="color: black;">&#41;</span> <span style="color: #66cc66;">!</span>= -<span style="color: #ff4500;">1</span>:
                    <span style="color: #008000;">self</span>.<span style="color: black;">matched_msg</span> = m
                    <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">True</span>
            <span style="color: #ff7700;font-weight:bold;">else</span>:
                <span style="color: #ff7700;font-weight:bold;">if</span> m.<span style="color: black;">search</span><span style="color: black;">&#40;</span>diagnostic_message<span style="color: black;">&#41;</span>:
                    <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">True</span>
       
        <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">False</span>
   
    <span style="color: #ff7700;font-weight:bold;">def</span> getAction<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">self</span>.<span style="color: black;">action</span>
       
    <span style="color: #ff7700;font-weight:bold;">def</span> getStatus<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">self</span>.<span style="color: black;">status</span>
       
    <span style="color: #ff7700;font-weight:bold;">def</span> getMatchedMsg<span style="color: black;">&#40;</span><span style="color: #008000;">self</span><span style="color: black;">&#41;</span>:
        <span style="color: #ff7700;font-weight:bold;">return</span> <span style="color: #008000;">self</span>.<span style="color: black;">matched_msg</span></pre></div></div>

</div>
]]></content:encoded>
			<wfw:commentRss>http://blog.dazoot.ro/2009/09/procesare-bounce-uri-in-real-time/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Brico Interactive, in parteneriat cu Dazoot Software, lanseaza BricoMall.ro si BricoUtil.ro</title>
		<link>http://blog.dazoot.ro/2009/08/brico-interactive-in-parteneriat-cu-dazoot-software-lanseaza-bricomall-ro-si-bricoutil-ro/</link>
		<comments>http://blog.dazoot.ro/2009/08/brico-interactive-in-parteneriat-cu-dazoot-software-lanseaza-bricomall-ro-si-bricoutil-ro/#comments</comments>
		<pubDate>Sun, 16 Aug 2009 09:29:46 +0000</pubDate>
		<dc:creator>Catalin Constantin</dc:creator>
				<category><![CDATA[Shopping online]]></category>
		<category><![CDATA[bricolaj]]></category>
		<category><![CDATA[bricomall]]></category>
		<category><![CDATA[dazoot software]]></category>

		<guid isPermaLink="false">http://blog.dazoot.ro/?p=143</guid>
		<description><![CDATA[
Brico Interactive, in parteneriat cu Dazoot Software, lanseaza BricoMall.ro si BricoUtil.ro, pentru a veni in intampinarea dorintelor clientilor sai, oferind tot ce au acestia nevoie in orice proiect de amenajare interioara sau exterioara.
100% dedicata comercializării produselor de bricolaj, constructii si din alte domenii adiacente, echipa Brico Interactive a decis sa adopte o platforma de shop [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://bricomall.ro" target="_blank"><img src="http://blog.dazoot.ro/wp-content/uploads/2009/08/brico.jpg" alt="bricomall" title="bricomall" width="500" height="284" class="alignleft size-full wp-image-125" style="border: 1px solid gray; padding: 1px; margin: 5px; margin-left: 0px; background: white;" /></a><br />
<strong><a href="http://bricointeractive.ro/" target="_blank">Brico Interactive</a>, in parteneriat cu Dazoot Software, lanseaza <a href="http://bricomall.ro" target="_blank">BricoMall.ro</a> si <a href="http://BricoUtil.ro" target="_blank">BricoUtil.ro</a>, pentru a veni in intampinarea dorintelor clientilor sai, oferind tot ce au acestia nevoie in orice proiect de amenajare interioara sau exterioara.</strong></p>
<p>100% dedicata comercializării produselor de bricolaj, constructii si din alte domenii adiacente, echipa <a href="http://bricointeractive.ro/" target="_blank">Brico Interactive</a> a decis sa adopte o platforma de shop online cat mai performanta si mai sigura pentru clientii sai, astfel incat oricine sa poata cauta si compara cu usurinta, sa se poata documenta si sa poata cumpara fără să se deplaseze din confortul casei sau al biroului.</p>
<p>Prezentand o gama larga de produse decorative, feronerie, utilaje pentru constructii, unelte si scule, inclusiv echipamente de masura si control, echipamente de protectie, dar si obiecte de uz general in gradina sau produse sanitare, in total aproximativ 10 000 de produse, <a href="http://bricomall.ro/" target="_blank">BricoMall.ro</a> pune la dispozitie si o serie de facilitati tuturor utilizatorilor sai, pentru obtinerea tuturor informatiilor necesare achizitionarii produselor de care clientii nostri au cu adevarat nevoie:<br />
<br />
- functia de cautare a produselor este complexa, fiindu-i adaugat un modul de sugerare a termenilor;<br />
<br />
- structurate pe categorii bine definite, produsele si modul de prezentate a acestora sugereaza eficienta, informare si simplitate;<br />
<br />
- pentru cazurile in care utilizatorii sunt indecisi sau doresc sa obtina o imagine mai buna asupra performantelor anumitor produse, exista functia de comparare a acestora, astfel incat sa existe, intotdeauna, posibilitatea achizitionarii unui produs care sa indeplineasca toate conditiile cerute de client.</p>
<p>Prin varietatea de produse prezentate si numarul mare al acestora, orice client poate gasi in BricoMall.ro orice isi doreste. Clientii <a href="http://bricomall.ro" target="_blank">BricoMall.ro</a> variaza de la simpli proprietari de apartamente, care incep un nou proiect de amenajare a propriei locuinte, si au nevoie de diferite produse din aceste domenii, pentru care <a href="http://bricomall.ro" target="_blank">BricoMall.ro</a> ofera tot suportul necesar, fie specialisti in domeniul constructiilor, care gasesc in <a href="http://bricomall.ro" target="_blank">BricoMall.ro</a> o modalitate ieftina si usoara de a isi achizitiona toate cele necesare lor.</p>
<p>Pentru completarea magazinului online BricoMall, a fost dezvoltat si blog-ul <a href="http://bricoutil.ro" target="_blank">BricoUtil.ro</a>, cu scopul prezentarii mai detaliate, testarii si chiar recomandarii pentru anumite sarcini a produselor comercializate de <a href="http://bricointeractive.ro/" target="_blank">Brico Interactive</a>.<br />
<br />
In paralel, sunt prezentate saptamanal idei si solutii pentru cele mai ambitioase proiecte ale tale.</p>
<p>Cu atatea informatii din Gradinarit si Amenajari ecologice, Decoratiuni interioare, precum si din alte domenii asemanatoare, consultarea BricoUtil.ro este aproape mandatorie pentru oricine care incepe sau este in cursul de a desfasura un proiect de amenajari interioare sau exterioare.</p>
<p>Daca proiectul tau are nevoie de materiale sau utilaje, unelte sau decoratiuni, idei sau pareri, <a href="http://bricointeractive.ro/" target="_blank">Brico Interactiva</a> va ofera solutiile: la doar un click distanta, <a href="http://bricomall.ro" target="_blank">BricoMall.ro</a> si <a href="http://bricoutil.ro" target="_blank">BricoUtil.ro</a>, magazin online si blog de produse de bricolaj.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dazoot.ro/2009/08/brico-interactive-in-parteneriat-cu-dazoot-software-lanseaza-bricomall-ro-si-bricoutil-ro/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Must have in optimizarea site-urilor LAMP</title>
		<link>http://blog.dazoot.ro/2009/01/must-have-in-optimizarea-site-urilor-lamp/</link>
		<comments>http://blog.dazoot.ro/2009/01/must-have-in-optimizarea-site-urilor-lamp/#comments</comments>
		<pubDate>Thu, 01 Jan 2009 10:04:35 +0000</pubDate>
		<dc:creator>Catalin Constantin</dc:creator>
				<category><![CDATA[How to]]></category>

		<guid isPermaLink="false">http://blog.dazoot.isdev.dazoot.ro/?p=38</guid>
		<description><![CDATA[Nu de multe ori, VITEZA de incarcare a unui site PHP / MYSQL / Apache se poate reduce &#8220;vizibil&#8221; facand 3 mici chestii:
1. Activare compresie GZIP pentru content-ul TEXT (html, xml, plain text, css, javascript):
Exemplu pentru Apache:
LoadModule deflate_module /usr/lib/apache2/modules/mod_deflate.so
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-javascript text/css
2. Activare Opcode Cache penru PHP. Cel mai cuonscut optimizator pentru [...]]]></description>
			<content:encoded><![CDATA[<p>Nu de multe ori, VITEZA de incarcare a unui site PHP / MYSQL / Apache se poate reduce &#8220;vizibil&#8221; facand 3 mici chestii:<br />
1. Activare compresie GZIP pentru content-ul TEXT (html, xml, plain text, css, javascript):<br />
Exemplu pentru Apache:</p>
<p>LoadModule deflate_module /usr/lib/apache2/modules/mod_deflate.so<br />
AddOutputFilterByType DEFLATE text/html text/plain text/xml application/x-javascript text/css</p>
<p>2. Activare Opcode Cache penru PHP. Cel mai cuonscut optimizator pentru PHP este Eaccelerator.</p>
<p>3. Enable Mysql Query cache. In felul asta select-urile din tabele care NU s-au schimbat sunt retinute in &#8220;memorie&#8221;, in acest fel reducand server load-ul si viteza de raspuns.</p>
<p>Exemplu:</p>

<div class="wp_syntax"><div class="code"><pre class="ini" style="font-family:monospace;">#
# * Query Cache Configuration
#
<span style="color: #000099;">query_cache_limit</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> 1000M</span>
<span style="color: #000099;">query_cache_size</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> 1500M</span>
<span style="color: #000099;">query_cache_type</span> <span style="color: #000066; font-weight:bold;">=</span><span style="color: #660066;"> 1</span></pre></div></div>

<p>Te poti astepta la:<br />
- reducerea volumului de date transferate la Apache cu pana la 50%<br />
- cresterea vitezei de raspuns a script-urilor PHP cu peste 200% (uneori chiar mai mult)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dazoot.ro/2009/01/must-have-in-optimizarea-site-urilor-lamp/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mini Book Shop in Symfony</title>
		<link>http://blog.dazoot.ro/2007/11/mini-book-shop-in-symfony/</link>
		<comments>http://blog.dazoot.ro/2007/11/mini-book-shop-in-symfony/#comments</comments>
		<pubDate>Thu, 29 Nov 2007 07:59:48 +0000</pubDate>
		<dc:creator>Catalin Constantin</dc:creator>
				<category><![CDATA[How to]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[platforma]]></category>
		<category><![CDATA[shop]]></category>

		<guid isPermaLink="false">http://blog.dazoot.isdev.dazoot.ro/?p=103</guid>
		<description><![CDATA[Am lansat acum câteva zile pentru un client site-ul http://www.amsta.ro/. Un mini SHOP pentru cărţile editurii (puţine pentru moment).
Am avut 3 variante în realizarea shop-ului:
1. Folosire engine intern, Dazoot Shop:http://www.fisela.ro/
2. Implementare shop pe platforma open source (Magento Commerce)
3. From scratch în Symfony Framework
Timpul era FOARTE scurt din cauza târgului aşa că am ales varianta 3. [...]]]></description>
			<content:encoded><![CDATA[<p>Am lansat acum câteva zile pentru un client site-ul <a href="http://www.amsta.ro/">http://www.amsta.ro/</a>. Un mini SHOP pentru cărţile editurii (puţine pentru moment).<br />
Am avut 3 variante în realizarea shop-ului:<br />
<strong>1.</strong> Folosire engine intern, Dazoot Shop:<a href="http://www.fisela.ro/">http://www.fisela.ro/</a><br />
<strong>2.</strong> Implementare shop pe platforma open source (Magento Commerce)<br />
<strong>3.</strong> From scratch în Symfony Framework</p>
<p>Timpul era FOARTE scurt din cauza târgului aşa că am ales varianta 3. A mers EXTREM de rapid development-ul, cu tot cu Admin şi optimizări SEO.<br />
<strong>Concluzia:</strong> Vă recomand cu cea mai mare încredere: <a href="http://www.symfony-project.org/">Symfony Framework</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dazoot.ro/2007/11/mini-book-shop-in-symfony/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Python Template Engine</title>
		<link>http://blog.dazoot.ro/2007/02/python-template-engine/</link>
		<comments>http://blog.dazoot.ro/2007/02/python-template-engine/#comments</comments>
		<pubDate>Mon, 19 Feb 2007 08:04:49 +0000</pubDate>
		<dc:creator>Catalin Constantin</dc:creator>
				<category><![CDATA[How to]]></category>
		<category><![CDATA[Engine]]></category>
		<category><![CDATA[Pylons]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[Template]]></category>

		<guid isPermaLink="false">http://blog.dazoot.isdev.dazoot.ro/?p=106</guid>
		<description><![CDATA[Am avut de facut zilele astea o mini aplicatie in care la un moment dat trebuia sa generez un raport in format HTML si sa il tirmit pe mail.
Cum partea cu rapotrul nu era &#8220;primordiala&#8221; am zis sa incerc sa folosesc un light template engine. M-am gandit la &#8220;Airspeed python template&#8221; care are sintaxa 100% [...]]]></description>
			<content:encoded><![CDATA[<p>Am avut de facut zilele astea o mini aplicatie in care la un moment dat trebuia sa generez un raport in format HTML si sa il tirmit pe mail.<br />
Cum partea cu rapotrul nu era &#8220;primordiala&#8221; am zis sa incerc sa folosesc un light template engine. M-am gandit la &#8220;<a href="http://dev.sanityinc.com/airspeed/">Airspeed python template</a>&#8221; care are sintaxa 100% compatibila cu Velocity din Java.<br />
Site-ul nu prea mergea, dar cum tot &#8220;template&#8221; engine-ul este intr-un singur fisier, am reusit sa il iau direct din &#8220;Trac SVN Browser&#8221;.<br />
Bon. Ma apuc sa scriu template-ul, pana ajung la CSS. In velocity tot ce incepe cu # este considerat ca fiind template &#8220;tag&#8221; si cum in CSS folosesti # cand definesti stilurile, chestia a devenit problematica.</p>
<p><strong>Varianta 1: </strong>pui \# in fiecare loc unde apare # si nu face parte din &#8220;Velocity&#8221;. Urat. Nu mi-a placut.</p>
<p><strong>Varianta 2:</strong> caut un {literal}{/literal} a la <a href="http://www.smarty.net/">Smarty</a> in <a href="http://velocity.apache.org/">Velocity</a>. Citesc User Guide de la <a href="http://velocity.apache.org/">Velocity</a>: NIMIC. Ma uit prin unit tests la <a href="http://dev.sanityinc.com/airspeed/">airspeed</a>: NIMIC. Deja devenisem &#8220;stresat&#8221; de mica problema. Sa pierzi timp pe &#8220;template engine&#8221; cand nu este o PARTE mare din aplicatie.</p>
<p>Am decis sa renunt la Airspeed si sa incerc ceva mai OK. <a href="http://kid-templating.org/">Kid</a> /<a href="http://genshi.edgewall.org/">Genshi</a> nici nu se punea problema. Nu vroiam sintaxa XML, si vroiam sa fie RAPIDA generarea output-ului.</p>
<p>Myghty.org. De ceva vreme tot cochetez cu <a href="http://pylonshq.com/">Pylons Python Framework</a> care are ca default template engine, <a href="http://www.myghty.org/">Myghty</a>. Am zis: ok, asta e un moment BUN sa folosesc timpul de &#8220;serviciu&#8221; sa &#8220;invat/testez&#8221; o chestie noua, mai ales ca intr-un viitor foarte apropiat o sa intru putin mai adanc in <a href="http://pylonshq.com/">Pylons</a>.</p>
<p>Surpiza placuta de care am dat pe <a href="http://www.myghty.org/">myghty.org</a> a fost <a href="http://www.makotemplates.org/">Makotemplates</a>. Este de departe cel mai Pythonic template engine ever. Este super usor de inteles si de &#8220;butonat&#8221; si pe deasupra este extrem de rapid.<br />
Cod de genul:</p>

<div class="wp_syntax"><div class="code"><pre class="python" style="font-family:monospace;"><span style="color: #66cc66;">%</span> <span style="color: #ff7700;font-weight:bold;">for</span> i <span style="color: #ff7700;font-weight:bold;">in</span> <span style="color: #008000;">range</span><span style="color: black;">&#40;</span><span style="color: #ff4500;">0</span>, <span style="color: #ff4500;">100</span><span style="color: black;">&#41;</span>:
i = $<span style="color: black;">&#123;</span>i<span style="color: black;">&#125;</span>
<span style="color: #66cc66;">%</span> endfor</pre></div></div>

<p>pare destul de Python, dupa parerea mea.</p>
<p>Stii python ? Stii si <a href="http://www.makotemplates.org/">Makotemplates</a>.<br />
<strong>Concluzia:</strong> <a href="http://www.makotemplates.org/">Try Mako</a>, <a href="http://pylonshq.com/">Try Pylons</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dazoot.ro/2007/02/python-template-engine/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Crap XFS File System</title>
		<link>http://blog.dazoot.ro/2006/12/crap-xfs-file-system/</link>
		<comments>http://blog.dazoot.ro/2006/12/crap-xfs-file-system/#comments</comments>
		<pubDate>Wed, 13 Dec 2006 08:56:53 +0000</pubDate>
		<dc:creator>Catalin Constantin</dc:creator>
				<category><![CDATA[How to]]></category>
		<category><![CDATA[File]]></category>
		<category><![CDATA[server]]></category>
		<category><![CDATA[System]]></category>
		<category><![CDATA[XFS]]></category>

		<guid isPermaLink="false">http://blog.dazoot.isdev.dazoot.ro/?p=112</guid>
		<description><![CDATA[Astazi am suferit al doilea &#8220;pretty major&#8221; crash la partitia XFS de pe server. XFS chiar e nasol. La indemnul unui coleg din Germania am zis sa instalez noul server (acu 1 an) pe XFS.
Consider ca alegerea asta a fost CEA MAI PROASTA ever.
XFS nu e bun daca:
1. ai server multi CPU
2. ai heavy CPU [...]]]></description>
			<content:encoded><![CDATA[<p>Astazi am suferit al doilea &#8220;pretty major&#8221; crash la partitia XFS de pe server. XFS chiar e nasol. La indemnul unui coleg din Germania am zis sa instalez noul server (acu 1 an) pe XFS.</p>
<p>Consider ca alegerea asta a fost CEA MAI PROASTA ever.</p>
<p>XFS nu e bun daca:</p>
<p>1. ai server multi CPU<br />
2. ai heavy CPU usage uneori<br />
3. ti se umple partitia<br />
4. ai partieie LARGE (1 TB sau pe acolo)<br />
5. ai directoare cu MULTE fisiere inside (&gt; 50 000)</p>
<p>Recomand cu cea mai mare caldura SA nu incercati XFS in serverele de productie. Stick to the old safe EXT3.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dazoot.ro/2006/12/crap-xfs-file-system/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Qmail VMailMgr SMTP Users Check</title>
		<link>http://blog.dazoot.ro/2006/12/qmail-vmailmgr-smtp-users-check/</link>
		<comments>http://blog.dazoot.ro/2006/12/qmail-vmailmgr-smtp-users-check/#comments</comments>
		<pubDate>Sun, 03 Dec 2006 08:58:37 +0000</pubDate>
		<dc:creator>Catalin Constantin</dc:creator>
				<category><![CDATA[How to]]></category>
		<category><![CDATA[mail]]></category>
		<category><![CDATA[Python]]></category>
		<category><![CDATA[qmail]]></category>
		<category><![CDATA[SMTP]]></category>
		<category><![CDATA[VMailMgr]]></category>

		<guid isPermaLink="false">http://blog.dazoot.isdev.dazoot.ro/?p=114</guid>
		<description><![CDATA[Am pe 2 servere mai vechi instalat qmail + VMailMgr pentru virtual email hosting. Problema cu VMailMgr cat si cu VPopmail e ca verificarea daca userul (recipient) exista, se face DUPA ce se trece de SMTP stuff.
Problema este chiar destul de aiurea penru ca mesajul de eroare generat de serverul de MAIL consuma banda si [...]]]></description>
			<content:encoded><![CDATA[<p>Am pe 2 servere mai vechi instalat <a href="http://www.qmail.org/">qmail </a>+ <a href="http://untroubled.org/vmailmgr/">VMailMgr</a> pentru virtual email hosting. Problema cu <a href="http://untroubled.org/vmailmgr/">VMailMgr</a> cat si cu VPopmail e ca verificarea daca userul (recipient) exista, se face DUPA ce se trece de SMTP stuff.</p>
<p>Problema este chiar destul de aiurea penru ca mesajul de eroare generat de serverul de MAIL consuma banda si de multe ori ramane agatat in coada mailului pana expira.</p>
<p>Serverele de mail &#8220;moderne&#8221; si OK gen yahoo.com, gmail.com verifica existenta destinatarului la nivelul SMTP si daca userul nu exista, intoarce un mesaj de eroare 550 &#8230; no such user, etc.</p>
<p>In felul asta mesajul nici macar nu ajunge pe server.</p>
<p>Solutia pe care am gasit-o / implementat-o a fost:</p>
<p>1. Instalarea pe Qmail a patch-ului <a href="http://qmail-spp.sourceforge.net/">Qmail SPP</a><br />
2. Implementarea unui script care verifica existenta userului local</p>
<p>Am scris scriptul in <a href="http://www.python.org/">python</a> si i-am zis <a href="http://opensource.dazoot.ro/member/catalin/vmgrucheck/">vmgrucheck</a>. L-am pus online la: <a href="http://opensource.dazoot.ro/member/catalin/vmgrucheck/">http://opensource.dazoot.ro/&#8230;/vmgrucheck/</a></p>
<p>Chiar functioneaza si marimea cozii qmail s-a redus simtitor.</p>
<p>Dec 3 17:10:20 dristor smtpd: 1165158620.473732 No such mailbox rdslink.ro@domeniu-mail.ro from: bzq-84-110-21-199.red.bezeqint.net (84.110.21.199)</p>
<p>Dec  3 17:15:50 dristor smtpd: 1165158950.026269 No such mailbox ra</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dazoot.ro/2006/12/qmail-vmailmgr-smtp-users-check/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
