<?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; How to</title>
	<atom:link href="http://blog.dazoot.ro/categorie/how-to/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>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>Spyware: Cum depistam daca suntem infectati?</title>
		<link>http://blog.dazoot.ro/2009/05/spyware-cum-depistam-daca-suntem-infectati/</link>
		<comments>http://blog.dazoot.ro/2009/05/spyware-cum-depistam-daca-suntem-infectati/#comments</comments>
		<pubDate>Mon, 18 May 2009 18:14:03 +0000</pubDate>
		<dc:creator>Dana Constantin</dc:creator>
				<category><![CDATA[How to]]></category>

		<guid isPermaLink="false">http://blog.dazoot.isdev.dazoot.ro/?p=42</guid>
		<description><![CDATA[Programele tip spyware si adware pot fi la fel de daunatoare si enervante ca si virusii de calculator putand provoca scaderi insemnate in performanta si lovind in dreptul nostru la mentinerea unui caracter privat al datelor stocate pe calculator prin trimiterea de informatii personale pe care nu dorim sa le impartasim cu nimeni. In plus [...]]]></description>
			<content:encoded><![CDATA[<p>Programele tip spyware si adware pot fi la fel de daunatoare si enervante ca si virusii de calculator putand provoca scaderi insemnate in performanta si lovind in dreptul nostru la mentinerea unui caracter privat al datelor stocate pe calculator prin trimiterea de informatii personale pe care nu dorim sa le impartasim cu nimeni. In plus ne mai trezim de multe ori si cu anunturi sau reclame tip pop-up deosebit de iritante mai ales atunci cand lucrezi la un proiect care necesita maxima concentrare.</p>
<p>Ne dam seama ca ceva nu e in regula si putem suspecta infectarea cu spyware si adware daca observam schimbari bruste in performantele calculatorului, aparitia unor ferestre pop-up, schimbari in bara de instrumente a browserului folosit in mod regulat sau icoane cu totul noi care apar pe Desktop sau sau in folderul My Documents. In aceasta situatie, pentru a fi siguri ca nu ne inselam, este intru totul recomandat sa instalam un program antispyware sau sa facem o scanare de rutina daca avem un program antivirus eficient care poate depista si elimina astfel de amenintari.</p>
<p>Din pacate piata programelor antispyware este atat de plina de oferte de tot felul incat este o sarcina grea sa identifici acele programe care sa faca o treaba buna fara a provoca conflicte cu antivirusul instalat anterior si fara a scadea simtitor performantele generale ale calculatorului prin alocarea de resurse pretioase. Unele astfel de programe sunt chiar ele purtatoare de tot felul de amenintari ascunse sub promisiunile autorilor ca veti scapa de spyware pentru totdeauna si nu va mai trebui sa va faceti probleme din acest punct de vedere. Un program bun antispyware este totusi necesar intotdeauna mai ales pentru cei care navigheaza in mod frecvent pe Internet deoarece antivirusul, oricat de performant ar fi, nu va reusi mereu sa elimine astfel de probleme sau macar sa le identifice ca amenintari serioase.</p>
<p>Cele mai bune programe antispyware de la ora actuala de pe piata sunt disponibile fie gratuit, direct de pe website-ul autorilor, fie contra unor preturi modice care pot fi platite de asemenea in regim online direct de pe website-ul producatorilor. Intr-o ordine aleatorie acestea sunt urmatoarele:</p>
<p>- Ad-Aware, produs de compania Lavasoft (gratuit pentru utilizatori casnici si contra-cost pentru uz comercial);</p>
<p>- Spybot Search and Destroy, produs de Safer Networking Ltd. (gratuit, oferit si in limba romana, cu invitatia de a dona sume de bani la alegere pentru a mentine proiectul viabil);</p>
<p>- Windows Defender, cunoscut in trecut ca Microsoft AntiSpyware, este probabil cel mai puternic antispyware de pe piata si vine integrat cu sistemele de operare Windows Vista si Windows 7, fiind disponibil prin download gratuit si pentru utilizatorii de Windows XP-Sp2 si Windows Server 2003 cu licenta genuina.</p>
<p>Articol preluat de pe <a href="http://www.egirl.ro/Spyware-Cum-depistam-daca-suntem-infectati,a3147.html" target="_blank" class="preluat">egirl.ro</a></p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dazoot.ro/2009/05/spyware-cum-depistam-daca-suntem-infectati/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>Tipuri de conexiune la internet</title>
		<link>http://blog.dazoot.ro/2007/08/tipuri-de-conexiune-la-internet/</link>
		<comments>http://blog.dazoot.ro/2007/08/tipuri-de-conexiune-la-internet/#comments</comments>
		<pubDate>Mon, 20 Aug 2007 09:10:41 +0000</pubDate>
		<dc:creator>Dana Constantin</dc:creator>
				<category><![CDATA[How to]]></category>
		<category><![CDATA[conexiune]]></category>
		<category><![CDATA[internet]]></category>

		<guid isPermaLink="false">http://blog.dazoot.isdev.dazoot.ro/?p=124</guid>
		<description><![CDATA[Cel mai probabil ai unul dintre tipurile populare de conexiuni la internet: dial-up, ADSL, cablu sau broadband. Dar care sunt diferentele intre acestea, si cum poti sa iti dai seama exact cum navighezi tu pe Internet?
Dial-up sunt cele mai lente conexiuni dintre cele enumerate mai sus. In acelasi timp insa sunt cele mai populare printre [...]]]></description>
			<content:encoded><![CDATA[<p>Cel mai probabil ai unul dintre tipurile populare de conexiuni la internet: dial-up, ADSL, cablu sau broadband. Dar care sunt diferentele intre acestea, si cum poti sa iti dai seama exact cum navighezi tu pe Internet?</p>
<p>Dial-up sunt cele mai lente conexiuni dintre cele enumerate mai sus. In acelasi timp insa sunt cele mai populare printre utilizatorii ocazionali de acasa. Trebuie sa ai un modem de 56k, ce va genera o viteza de transmisie a datelor lenta, de aproximativ 50k pe secunda. La initierea conexiunii vei auzi calculatorul formind un numar de telefon (cel oferit de provider), de unde si numele conexiunii. Apoi se va conecta la un server, ce iti va permite accesul online. Plata de obicei se face in functie de timpul petrecut online. Exista si varianta pre-paid a unui numar de ore. Deoarece conexiunea se face pe aceeasi linie ca si telefonul, convorbiri nu se pot efectua cat esti logat online.</p>
<p>ADSL este o derivare a tipului de conexiune dial-up, cu un principiu diferit. Imparte linia de telefon in 2 separate: una pentru date si una pentru convorbiri telefonice. Astfel ca poti in continuare vorbi la telefon, chiar daca esti conectat, iar viteza oferita de acest tip de legatura la Internet este net superioara.</p>
<p>Urmatorul tip de conexiune este cel prin cablu. Poate fi cea mai buna optiune pentru utilizatorii de acasa care petrec multe ore navigind pe internet, dar si pentru companiile mici si mijlocii. Providerii de internet prin cablu ofera diferite pachete, cu diferite specificatii de viteza si limite de banda. Plata se face prin abonament lunar. Este un tip de conexiune mult mai rapida si mai sigura decat cea prin dial-up.</p>
<p>Broadband se numesc conexiunile la internet cu viteze mari de transmisie a datelor (de obicei peste 256 kbit/s (0.256 Mbit/s) ). Este un tip de conexiune pentru companii, si nu pentru utilizatorii acasa.</p>
<p>In descrierile de mai sus sunt destule informatii pentru a putea diferentia tipurile de conexiuni. Pentru o analiza mai sigura, exista numeroase site-uri ce ofera o analiza a conexiunii cu ajutorul careia un anume calculator este conectat la internet. Cateva exemple:<br />
<a href="http://www.bandwidthplace.com/speedtest/">http://www.bandwidthplace.com/speedtest/</a><br />
<a href="http://www.speakeasy.net/speedtest/">http://www.speakeasy.net/speedtest/</a><br />
<a href="http://www.speedtest.net/">http://www.speedtest.net/</a><br />
Se poate alege intre diferite servere, iar site-urile ce ofera acest serviciu ofera de obicei si o sectiune de help detaliata, pentru a intelege mai bine rezultatele furnizate.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.dazoot.ro/2007/08/tipuri-de-conexiune-la-internet/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>
