<?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>Duodraco &#187; geral</title>
	<atom:link href="http://duodra.co/categoria/geral/feed/" rel="self" type="application/rss+xml" />
	<link>http://duodra.co</link>
	<description>Desenvolvedor PHP, Linux e Opensource</description>
	<lastBuildDate>Wed, 29 Jun 2011 11:04:38 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Integração Contínua e PHP</title>
		<link>http://duodra.co/post/integracao-continua-e-php/</link>
		<comments>http://duodra.co/post/integracao-continua-e-php/#comments</comments>
		<pubDate>Tue, 29 Mar 2011 02:02:18 +0000</pubDate>
		<dc:creator>Duodraco</dc:creator>
				<category><![CDATA[geral]]></category>

		<guid isPermaLink="false">http://duodra.co/?p=279</guid>
		<description><![CDATA[<div style="padding-top:5px;padding-right:0px;padding-bottom:5px;padding-left:0px;;">
											<iframe
												style="height:25px !important; border:0px solid gray !important; overflow:hidden !important; width:550px !important;" frameborder="0" scrolling="no" allowTransparency="true"
												src="http://www.linksalpha.com/social?blog=Duodraco&link=http%3A%2F%2Fduodra.co%2Fpost%2Fintegracao-continua-e-php%2F&title=Integra%C3%A7%C3%A3o+Cont%C3%ADnua+e+PHP&desc=Voltando+a+postar+no+blog+depois+de+MUITO+tempo...+praticamente+um+post+de+p%C3%A1scoa.+Mas+vamos+voltar+com+a+corda+toda%21+Eu+prometi+h%C3%A1+muito+tempo+um+post+sobre+Integra%C3%A7%C3%A3o+Cont%C3%ADnua+-+e+c%C3%A1+est%C3%A1+ele&fc=333333&fs=tahoma&fblname=like&fblref=facebook&fbllang=pt_BR&fblshow=1&fbsbutton=1&fbsctr=1&fbslang=en&fbsendbutton=1&twbutton=1&twlang=en&twmention=duodraco&twrelated1=&twrelated2=&twctr=1&lnkdshow=show&lnkdctr=1&buzzbutton=1&buzzlang=en&buzzctr=1&diggbutton=1&diggctr=1&stblbutton=1&stblctr=1&g1button=1&g1ctr=1&g1lang=en-US">
											</iframe>
										</div>Voltando a postar no blog depois de MUITO tempo&#8230; praticamente um post de páscoa. Mas vamos voltar com a corda toda! Eu prometi há muito tempo um post sobre Integração Contínua &#8211; e cá está ele . Antes de mais &#8230; <a href="http://duodra.co/post/integracao-continua-e-php/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div style="padding-top:5px;padding-right:0px;padding-bottom:5px;padding-left:0px;;">
											<iframe
												style="height:25px !important; border:0px solid gray !important; overflow:hidden !important; width:550px !important;" frameborder="0" scrolling="no" allowTransparency="true"
												src="http://www.linksalpha.com/social?blog=Duodraco&link=http%3A%2F%2Fduodra.co%2Fpost%2Fintegracao-continua-e-php%2F&title=Integra%C3%A7%C3%A3o+Cont%C3%ADnua+e+PHP&desc=Voltando+a+postar+no+blog+depois+de+MUITO+tempo...+praticamente+um+post+de+p%C3%A1scoa.+Mas+vamos+voltar+com+a+corda+toda%21+Eu+prometi+h%C3%A1+muito+tempo+um+post+sobre+Integra%C3%A7%C3%A3o+Cont%C3%ADnua+-+e+c%C3%A1+est%C3%A1+ele&fc=333333&fs=tahoma&fblname=like&fblref=facebook&fbllang=pt_BR&fblshow=1&fbsbutton=1&fbsctr=1&fbslang=en&fbsendbutton=1&twbutton=1&twlang=en&twmention=duodraco&twrelated1=&twrelated2=&twctr=1&lnkdshow=show&lnkdctr=1&buzzbutton=1&buzzlang=en&buzzctr=1&diggbutton=1&diggctr=1&stblbutton=1&stblctr=1&g1button=1&g1ctr=1&g1lang=en-US">
											</iframe>
										</div><p>Voltando a postar no blog depois de MUITO tempo&#8230; praticamente um post de páscoa. Mas vamos voltar com a corda toda! Eu prometi há muito tempo um post sobre Integração Contínua &#8211; e cá está ele .<span id="more-279"></span></p>
<p>Antes de mais nada, vamos à definição de CI (Continuous Integration):</p>
<blockquote><p>Em engenharia de software, Integração Contínua (IC) implementa  continuamente  processos de aplicação de controle de qualidade &#8211; pequenos pedaços de esforço, aplicados frequentemente. Integração Contínua visa melhorar a qualidade de software e reduzir o tempo gasto para entregá-lo, substituindo a prática tradicional de aplicar o controle de qualidade depois de completo todo o desenvolvimento.[1]</p></blockquote>
<p>Indo além: a prática da Integração Contínua vai melhorar a Qualidade e a Velocidade de entrega de seus <a class="bbli" href="http://sledge.boo-box.com/list/page/c29mdHdhcmVzXyMjX2Jhcl8jI190YWdnaW5nLXRvb2wtd3BfIyNfMTYwMzg5NA==-64">softwares<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a>, e de cada nova versão que ele venha a ter. IC também é uma das práticas que auxiliam metodologias ágeis.</p>
<p>A premissa é de que tenhamos uma parte de nosso processo que aconteça continuamente &#8211; parte essa que deve construir uma versão/build/release/pacote/&lt;insira aqui o que você chama de versão nova de seu software&gt; &#8230; lógico que para ter uma versão nova, não basta um <a class="bbli" href="http://sledge.boo-box.com/list/page/ZGVzZW52b2x2ZWRvcl8jI19iYXJfIyNfdGFnZ2luZy10b29sLXdwXyMjXzE2MDM4OTQ=-68">desenvolvedor<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a> dizer que está pronto; a nova versão está condicionada ao sucesso de testes previamente estabelecidos, que vão acontecer a cada nova TENTATIVA de realizar uma nova versão. Tentativa com sucesso: novo release; falha: esqueça esse build.</p>
<p>Lógico que nós, desenvolvedores evoluídos, não gostamos de reinventar a roda e tentamos sempre tirar proveito de soluções bem estabelecidas de software para resolver nossos problemas (e é para isso que o software serve: para resolver problemas). Existem muitas ferramentas prontas para nos ajudar na tarefa da integração contínua, automatizando o processo de recuperação de uma nova versão candidata, execução de testes e finalização/empacotamento/deploy.<br />
Entre elas temos o <a title="Home do CruiseControl" href="http://cruisecontrol.sourceforge.net/" target="_blank">CruiseControl </a>(com versões .NET e Ruby e sua adaptação para o PHP: phpUnderControl), Continuum, Gump, Go, Tinderbox &#8230; mas de todos acredito que o mais simples (e direto ao ponto) e extensível seja o <a title="Home do Jenkins" href="http://jenkins-ci.org" target="_blank">Jenkins </a>(ex-Hudson).</p>
<p>Atente-se para o fato que até então não citei nada exclusivo ao <acronym title="PHP Hypertext Preprocessor">PHP</acronym>, porque não é específico. <acronym title="Integração Contínua">IC</acronym> é relativo a software, em qualquer <a class="bbli" href="http://sledge.boo-box.com/list/page/bGluZ3VhZ2VtXyMjX2Jhcl8jI190YWdnaW5nLXRvb2wtd3BfIyNfMTYwMzg5NA==-64">linguagem<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a>. Mas por que diabos o artigo é Integração Contínua <strong>E</strong> PHP?</p>
<p>Que tal um exemplo de como pode ser um processo de Integração Contínua com PHP?</p>
<p>Imagine o cenário: Estamos desenvolvendo um software em PHP, usando o <a title="Github do PHPUnit" href="https://github.com/sebastianbergmann/phpunit/" target="_blank">PHPUnit </a>e versionando-o com <a title="Git - Fast Version Control System" href="http://git-scm.com" target="_blank">Git</a>.</p>
<p>Nosso time já desenvolveu bastante, &#8220;comittou&#8221; algumas revisões, realizamos um merge e achamos que podemos mandar nossa versão para testes. Podemos nesse ponto mandar essa revisão para a Integração Contínua. Se tudo estiver ok, teremos um software que PODE ir para <a class="bbli" href="http://sledge.boo-box.com/list/page/aG9tb2xvZ2ElRTclRTNvXyMjX2Jhcl8jI190YWdnaW5nLXRvb2wtd3BfIyNfMTYwMzg5NA==-72">homologação<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a>, onde o cliente/gerente/Product Owner vai avaliar se atendemos suas expectativas &#8211; se passarmos desse ponto temos um software que PODE ir para produção.</p>
<p>Porque a enfase no PODE? Não necessariamente esse software vai para produção, ou homologação, mas está pronto e, em tese, sem problemas técnicos para tal.</p>
<p>O Nosso servidor de Integração Contínua está configurado para observar um repositório git acessível a ele. Quando há uma nova revisão ele tentará criar um build.</p>
<p>Temos uma <a class="bbli" href="http://sledge.boo-box.com/list/page/ZmVycmFtZW50YV8jI19iYXJfIyNfdGFnZ2luZy10b29sLXdwXyMjXzE2MDM4OTQ=-64">ferramenta<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a> excelente para realizar builds para PHP: <a title="Phing - Phing Is Not Gnumake" href="http://phing.info" target="_blank">Phing</a>. Este cara é baseado no Apache Ant e basicamente ele funciona realizando tarefas previamente configuradas que culminarão em um novo release. Podemos alterar arquivos (mudando as configurações de ambiente por exemplo), realizar queries, movimentação de arquivos e, para nossa finalidade aqui, rodar os testes do PHPUnit &#8211; além de um sem-número de funcionalidades.<br />
Configuramos o Phing para alterar um arquivo de configuração, rodar nossa suíte de testes e construir um Phar ao final do processo.</p>
<p>Nosso servidor de Integração Contínua, que executou o Phing para nós, identificou que 2 testes não passaram com a nova configuração. Nosso <a class="bbli" href="http://sledge.boo-box.com/list/page/dGltZV8jI19iYXJfIyNfdGFnZ2luZy10b29sLXdwXyMjXzE2MDM4OTQ=-56">time<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a> fez o ajuste necessário, levantamos a nova revisão, o Jenkins (opa, já estou dizendo que usamos ele!) rodou a nova tentativa de build e &#8230; Funcionou! Agora temos um Phar, que o Jenkins/Phing pode se encarregar de entregar no servidor de Homologação se quisermos.</p>
<p>Facilita a vida? É lógico!</p>
<p>Mas lembrem este é só um exemplo, talvez nem o melhor &#8211; mas já dá para ter uma idéia do poder que a Integração Contínua pode dar para seu projeto.</p>
<p>Em breve (prometo <a title="Twitter da Natasha" href="http://twitter.com/nshgeek" target="_blank">@nshgeek</a> e <a title="Twitter do Thiago" href="http://twitter.com/thiagophx" target="_blank">@thiagophx</a>, muito em breve) falamos aqui sobre como fazer o Jenkins funcionar (e bem) com desenvolvimento PHP.</p>
<p>Abraço.</p>
<address>Referencias:<br />
[1] <a title="Artigo na Wikipedia sobre Integração Contínua (em inglês)" href="http://en.wikipedia.org/wiki/Continuous_integration" target="_blank">http://en.wikipedia.org/wiki/Continuous_integration</a></address>
]]></content:encoded>
			<wfw:commentRss>http://duodra.co/post/integracao-continua-e-php/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Voltando a escrever&#8230; Blog novo de novo</title>
		<link>http://duodra.co/post/voltando-a-escrever-blog-novo-de-novo/</link>
		<comments>http://duodra.co/post/voltando-a-escrever-blog-novo-de-novo/#comments</comments>
		<pubDate>Wed, 13 Jan 2010 11:41:49 +0000</pubDate>
		<dc:creator>Duodraco</dc:creator>
				<category><![CDATA[geral]]></category>
		<category><![CDATA[about]]></category>

		<guid isPermaLink="false">http://duodraco.dominiotemporario.com/?p=8</guid>
		<description><![CDATA[<div style="padding-top:5px;padding-right:0px;padding-bottom:5px;padding-left:0px;;">
											<iframe
												style="height:25px !important; border:0px solid gray !important; overflow:hidden !important; width:550px !important;" frameborder="0" scrolling="no" allowTransparency="true"
												src="http://www.linksalpha.com/social?blog=Duodraco&link=http%3A%2F%2Fduodra.co%2Fpost%2Fvoltando-a-escrever-blog-novo-de-novo%2F&title=Voltando+a+escrever...+Blog+novo+de+novo&desc=Salve+povo%0D%0A%0D%0AEu+como+blogueiro+relapso+que+sou+postei+meu+ultimo+artigo+quando+era+lan%C3%A7amento+do+Firefox+3.1beta+%28mar%C3%A7o+de+2009%29.+Mas+%C3%A9+2010+%28faltam+2+anos+pro+fim+do+mundo%29+e+dentre+as+resolu%C3%A7%C3%B5&fc=333333&fs=tahoma&fblname=like&fblref=facebook&fbllang=pt_BR&fblshow=1&fbsbutton=1&fbsctr=1&fbslang=en&fbsendbutton=1&twbutton=1&twlang=en&twmention=duodraco&twrelated1=&twrelated2=&twctr=1&lnkdshow=show&lnkdctr=1&buzzbutton=1&buzzlang=en&buzzctr=1&diggbutton=1&diggctr=1&stblbutton=1&stblctr=1&g1button=1&g1ctr=1&g1lang=en-US">
											</iframe>
										</div>Salve povo Eu como blogueiro relapso que sou postei meu ultimo artigo quando era lançamento do Firefox 3.1beta (março de 2009). Mas é 2010 (faltam 2 anos pro fim do mundo) e dentre as resoluções de ano novo uma era &#8230; <a href="http://duodra.co/post/voltando-a-escrever-blog-novo-de-novo/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div style="padding-top:5px;padding-right:0px;padding-bottom:5px;padding-left:0px;;">
											<iframe
												style="height:25px !important; border:0px solid gray !important; overflow:hidden !important; width:550px !important;" frameborder="0" scrolling="no" allowTransparency="true"
												src="http://www.linksalpha.com/social?blog=Duodraco&link=http%3A%2F%2Fduodra.co%2Fpost%2Fvoltando-a-escrever-blog-novo-de-novo%2F&title=Voltando+a+escrever...+Blog+novo+de+novo&desc=Salve+povo%0D%0A%0D%0AEu+como+blogueiro+relapso+que+sou+postei+meu+ultimo+artigo+quando+era+lan%C3%A7amento+do+Firefox+3.1beta+%28mar%C3%A7o+de+2009%29.+Mas+%C3%A9+2010+%28faltam+2+anos+pro+fim+do+mundo%29+e+dentre+as+resolu%C3%A7%C3%B5&fc=333333&fs=tahoma&fblname=like&fblref=facebook&fbllang=pt_BR&fblshow=1&fbsbutton=1&fbsctr=1&fbslang=en&fbsendbutton=1&twbutton=1&twlang=en&twmention=duodraco&twrelated1=&twrelated2=&twctr=1&lnkdshow=show&lnkdctr=1&buzzbutton=1&buzzlang=en&buzzctr=1&diggbutton=1&diggctr=1&stblbutton=1&stblctr=1&g1button=1&g1ctr=1&g1lang=en-US">
											</iframe>
										</div><p>Salve povo</p>
<p>Eu como blogueiro relapso que sou postei meu ultimo artigo quando era lançamento do Firefox 3.1beta (março de 2009). Mas é 2010 (faltam 2 anos pro fim do mundo) e dentre as resoluções de ano novo uma era voltar a escrever o blog. Desisti da idéia de fazer minha engine e voltei na receita do bom e velho WordPress&#8230; mas ainda faço alguma coisa a respeito&#8230;</p>
<p>Bom, já que vamos fazer algo novo, que entrem novos assuntos também: Linux, KDE, Qt, Android,  Desenvolvimento de Software, Agile e Scrum e o que mais surgir. Espero dar a quem ler um bom conteúdo baseado na experiência e no que aprendo dia a dia.</p>
<p>Abraços aos leitores  ( pessoas raras&#8230; ) .. espero disponibilzar conteúdo de qualidade para vocês</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "about";
            bb_bid  = "1603894";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_width = "600";bb_limit = "6";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->]]></content:encoded>
			<wfw:commentRss>http://duodra.co/post/voltando-a-escrever-blog-novo-de-novo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Seven things that probably you may not know about me</title>
		<link>http://duodra.co/post/seven-things-that-probably-you-may-not-know-about-me/</link>
		<comments>http://duodra.co/post/seven-things-that-probably-you-may-not-know-about-me/#comments</comments>
		<pubDate>Fri, 09 Jan 2009 13:48:28 +0000</pubDate>
		<dc:creator>Duodraco</dc:creator>
				<category><![CDATA[geral]]></category>

		<guid isPermaLink="false">http://duodraco.wordpress.com/?p=134</guid>
		<description><![CDATA[<div style="padding-top:5px;padding-right:0px;padding-bottom:5px;padding-left:0px;;">
											<iframe
												style="height:25px !important; border:0px solid gray !important; overflow:hidden !important; width:550px !important;" frameborder="0" scrolling="no" allowTransparency="true"
												src="http://www.linksalpha.com/social?blog=Duodraco&link=http%3A%2F%2Fduodra.co%2Fpost%2Fseven-things-that-probably-you-may-not-know-about-me%2F&title=Seven+things+that+probably+you+may+not+know+about+me&desc=It%27s+running+in+PHP+world+a+STTPYMNKAM+networking+pings+%28meme%2Ftag%29...+the+idea+is+simple%3A+I+was+tagged+by+Porkaria+%28that+was+tagged+by+Adler%2C+and+so+on...%29+then+I+may+describe+7+%22curious%22+things+about&fc=333333&fs=tahoma&fblname=like&fblref=facebook&fbllang=pt_BR&fblshow=1&fbsbutton=1&fbsctr=1&fbslang=en&fbsendbutton=1&twbutton=1&twlang=en&twmention=duodraco&twrelated1=&twrelated2=&twctr=1&lnkdshow=show&lnkdctr=1&buzzbutton=1&buzzlang=en&buzzctr=1&diggbutton=1&diggctr=1&stblbutton=1&stblctr=1&g1button=1&g1ctr=1&g1lang=en-US">
											</iframe>
										</div>It&#8217;s running in PHP world a STTPYMNKAM networking pings (meme/tag)&#8230; the idea is simple: I was tagged by Porkaria (that was tagged by Adler, and so on&#8230;) then I may describe 7 &#8220;curious&#8221; things about me, and tag another 7 &#8230; <a href="http://duodra.co/post/seven-things-that-probably-you-may-not-know-about-me/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div style="padding-top:5px;padding-right:0px;padding-bottom:5px;padding-left:0px;;">
											<iframe
												style="height:25px !important; border:0px solid gray !important; overflow:hidden !important; width:550px !important;" frameborder="0" scrolling="no" allowTransparency="true"
												src="http://www.linksalpha.com/social?blog=Duodraco&link=http%3A%2F%2Fduodra.co%2Fpost%2Fseven-things-that-probably-you-may-not-know-about-me%2F&title=Seven+things+that+probably+you+may+not+know+about+me&desc=It%27s+running+in+PHP+world+a+STTPYMNKAM+networking+pings+%28meme%2Ftag%29...+the+idea+is+simple%3A+I+was+tagged+by+Porkaria+%28that+was+tagged+by+Adler%2C+and+so+on...%29+then+I+may+describe+7+%22curious%22+things+about&fc=333333&fs=tahoma&fblname=like&fblref=facebook&fbllang=pt_BR&fblshow=1&fbsbutton=1&fbsctr=1&fbslang=en&fbsendbutton=1&twbutton=1&twlang=en&twmention=duodraco&twrelated1=&twrelated2=&twctr=1&lnkdshow=show&lnkdctr=1&buzzbutton=1&buzzlang=en&buzzctr=1&diggbutton=1&diggctr=1&stblbutton=1&stblctr=1&g1button=1&g1ctr=1&g1lang=en-US">
											</iframe>
										</div><p>It&#8217;s running in PHP world a <em>STTPYMNKAM</em> networking pings (meme/tag)&#8230; the idea is simple: I was tagged by Porkaria (that was tagged by Adler, and so on&#8230;) then I may describe 7 &#8220;curious&#8221; things about me, and tag another 7 people, chaining more people.</p>
<p>Thanks to <a title="Porkaria's Blog" href="http://porkaria.wordpress.com" target="_blank">Porkaria</a> to put me in this hole (or pyramid?)&#8230; here we go again&#8230;</p>
<p><strong>1. I choose Duodraco nick</strong>&#8230; from pagan stuff&#8230; it&#8217;s a simple merge from Draco(latin word for Dragon) and Duo(latin &#8220;Two&#8221;(from zodiac Gemini)).</p>
<p><strong>2. I&#8217;m Pagan</strong>: although  christian baptized, I found real spirit peace from ancient knowledge. I was evangelic earlier in my life&#8230; but it&#8217;s past.</p>
<p><strong>3. I say NOT</strong>: usually, it&#8217;s my first answer for generic questions&#8230;</p>
<p><strong>4. I have Zero Tolerance for Dumb Questions</strong>: brazilians can remember from &#8220;Seu Saraiva&#8221; (<a title="Wikipedia page for Francisco Milani" href="http://pt.wikipedia.org/wiki/Francisco_Milani" target="_blank">Francisco Milani</a>&#8216;s comedy role)</p>
<p><strong>5. I like Rock-related music</strong>: rock, metal, blues, jazz and classic.</p>
<p><strong>6. I hate &#8220;Brazilian Carnival&#8221;</strong>&#8230; no explanation&#8230; but I hate so more stuff, like Xuxa, Evangelic Priests and Catolic Fathers.. and Bush(the <span style="text-decoration:line-through;">president</span>).</p>
<p><strong>7. I&#8217;m trying to be a Portuguese citizen</strong>&#8230; My father&#8217;s mom (Isabel grandma&#8230; good risotos&#8230;) and a lot of family people are from there.</p>
<p>And now&#8230; <span style="text-decoration:line-through;">the Oscar goes to</span> I&#8217;m tagging my frinds:</p>
<p><a title="Augusto Pascutti's Blog" href="http://augustopascutti.com" target="_blank">Augusto Pascutti</a>: long date friend, nipo-italian rocker and co-worker</p>
<p><a title="Tatto's Blog" href="http://www.tattodecastro.com/" target="_blank">Tatto</a>: A good frined that I know in PHPConference Brazil &#8217;07, from Santa Catarina/Brasil</p>
<p><a title="Luke Crouch's Blog" href="http://bluke.blogspot.com/" target="_blank">Luke Crouch</a>: He gave a presentation in PHPConference Brazil &#8217;08, and drinked some beer with us.</p>
<p><a title="Chucre and friends" href="http://chucre.com" target="_blank">Fernando Chucre</a>: Another Conference friend; developer from Ceará/Brasil</p>
<p><a title="Bruno Viana's Blog" href="http://www.tupi.etc.br" target="_blank">Bruno Viana</a>: One more&#8230; and we are not familiar (&#8220;Arruda&#8221; family name)</p>
<p>Rules are simple:</p>
<p>Link your original tagger(s), and list these rules on your blog.<br />
Share seven facts about yourself in the post—some random, some weird.<br />
Tag seven people at the end of your post by leaving their names and the links to their blogs.<br />
Let them know they’ve been tagged by leaving a comment on their blogs and/or Twitter.</p>
]]></content:encoded>
			<wfw:commentRss>http://duodra.co/post/seven-things-that-probably-you-may-not-know-about-me/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Ambiente de Desenvolvimento Web</title>
		<link>http://duodra.co/post/desenvolvimento-web/</link>
		<comments>http://duodra.co/post/desenvolvimento-web/#comments</comments>
		<pubDate>Wed, 17 Dec 2008 17:28:15 +0000</pubDate>
		<dc:creator>Duodraco</dc:creator>
				<category><![CDATA[geral]]></category>

		<guid isPermaLink="false">http://duodraco.wordpress.com/?p=32</guid>
		<description><![CDATA[<div style="padding-top:5px;padding-right:0px;padding-bottom:5px;padding-left:0px;;">
											<iframe
												style="height:25px !important; border:0px solid gray !important; overflow:hidden !important; width:550px !important;" frameborder="0" scrolling="no" allowTransparency="true"
												src="http://www.linksalpha.com/social?blog=Duodraco&link=http%3A%2F%2Fduodra.co%2Fpost%2Fdesenvolvimento-web%2F&title=Ambiente+de+Desenvolvimento+Web&desc=Ol%C3%A1%0A%0AComo+voc%C3%AA+desenvolve%3F+O+que+voc%C3%AA+usa+para+desenvolver%3F+Provavelmente+voc%C3%AA+j%C3%A1+viu%2Fouviu+essas+perguntas+em+f%C3%B3runs%2C+listas%2C+ou+mesmo+perguntando+a+colegas+da+%C3%A1rea.+Nesse+artigo+vou+falar+sob&fc=333333&fs=tahoma&fblname=like&fblref=facebook&fbllang=pt_BR&fblshow=1&fbsbutton=1&fbsctr=1&fbslang=en&fbsendbutton=1&twbutton=1&twlang=en&twmention=duodraco&twrelated1=&twrelated2=&twctr=1&lnkdshow=show&lnkdctr=1&buzzbutton=1&buzzlang=en&buzzctr=1&diggbutton=1&diggctr=1&stblbutton=1&stblctr=1&g1button=1&g1ctr=1&g1lang=en-US">
											</iframe>
										</div>Olá Como você desenvolve? O que você usa para desenvolver? Provavelmente você já viu/ouviu essas perguntas em fóruns, listas, ou mesmo perguntando a colegas da área. Nesse artigo vou falar sobre como desenvolvo hoje, na empresa e no home office. &#8230; <a href="http://duodra.co/post/desenvolvimento-web/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div style="padding-top:5px;padding-right:0px;padding-bottom:5px;padding-left:0px;;">
											<iframe
												style="height:25px !important; border:0px solid gray !important; overflow:hidden !important; width:550px !important;" frameborder="0" scrolling="no" allowTransparency="true"
												src="http://www.linksalpha.com/social?blog=Duodraco&link=http%3A%2F%2Fduodra.co%2Fpost%2Fdesenvolvimento-web%2F&title=Ambiente+de+Desenvolvimento+Web&desc=Ol%C3%A1%0A%0AComo+voc%C3%AA+desenvolve%3F+O+que+voc%C3%AA+usa+para+desenvolver%3F+Provavelmente+voc%C3%AA+j%C3%A1+viu%2Fouviu+essas+perguntas+em+f%C3%B3runs%2C+listas%2C+ou+mesmo+perguntando+a+colegas+da+%C3%A1rea.+Nesse+artigo+vou+falar+sob&fc=333333&fs=tahoma&fblname=like&fblref=facebook&fbllang=pt_BR&fblshow=1&fbsbutton=1&fbsctr=1&fbslang=en&fbsendbutton=1&twbutton=1&twlang=en&twmention=duodraco&twrelated1=&twrelated2=&twctr=1&lnkdshow=show&lnkdctr=1&buzzbutton=1&buzzlang=en&buzzctr=1&diggbutton=1&diggctr=1&stblbutton=1&stblctr=1&g1button=1&g1ctr=1&g1lang=en-US">
											</iframe>
										</div><p>Olá</p>
<p>Como você desenvolve? O que você usa para desenvolver? Provavelmente você já viu/ouviu essas perguntas em fóruns, listas, ou mesmo perguntando a colegas da área. Nesse artigo vou falar sobre como desenvolvo hoje, na empresa e no home office. Não me aprofundarei muito em cada tema, pelo menos não agora!</p>
<p><strong>Sistema Operacional</strong><br />
Abandonei o Windows® há algum tempo, usando-o só pra atualizar o Smartphone (Windows Mobile). Minha estação de trabalho é um notebook dotado de de um Turion X2 1.6, com <span style="text-decoration:line-through;">1GB de RAM (que em breve espero que sejam 4)</span> 4Gb de RAM. Neste note utilizo o <a title="Kubuntu" href="http://www.kubuntu.org" target="_blank">Kubuntu</a> Intrepid 64, rodando o KDE 4.2 Beta; Optei pelo [K]ubuntu pela facilidade de manutenção, apesar de arcar com o custo de ter alguns módulos carregados os quais ainda não parei pra tirar da inicialização; O namoro com o Debian/Ubuntu é de longa data; Gosto mais da interface do KDE, a qual você pode customizar bastante, além de haverem ótimos recursos avançados, mas é assunto pra outro artigo<br />
<a title="Kubuntu" href="http://kubuntu.org" target="_blank"><img class="aligncenter" title="Kubuntu" src="http://people.ubuntu.com/~jriddell/8.10-upgrade/kubuntu-810-screenie.png" alt="" width="255" height="167" /></a>Na Burti, onde atuo como desenvolvedor hoje em dia, trabalho com um MacMini rodando o MacOS X 10.5 (leopard); antes de trabalhar lá eu meio que tinah um preconceito com relação a Mac, mas depois de conhecer, e não é nada do outro mundo, você até gosta do bichinho; ótima interface, dificilmente você irá rebootá-lo por uma pane (a não ser quando a Dock inventa de sumir).<br />
O Windows ainda tem a maior variedade de Aplicativos (IDEs, Editores, Servidores, etc) para o desenvolvimento, mas com o que vou comentar a seguir não preciso deles de maneira alguma.</p>
<p><strong>Servidores</strong><br />
Acho que se eu fizesse uma pesquisa aqui sobre qual servidor web é mais usado localmente no desenvolvimento, o <a title="Apache" href="http://httpd.apache.org/" target="_blank">Apache</a> ganharia disparado. E se for falar de BD, o <a title="MySQL" href="http://mysql.com" target="_blank">Mysql</a> teria sua fatia bem gorda também. No note tenho as ultimas versões de Apache e Mysql para o desenvolvimento, com a ultima versão do PHP (hoje a 5.2.8). Para mim é algo bem fácil instalar: apt-get install php5 php5-mysql mysql-server.<br />
No Mac faço uso do <span style="text-decoration:line-through;">truque sujo</span> <a title="Mac Apache Mysql PHP" href="http://www.mamp.info/" target="_blank">MAMP</a>.</p>
<p><strong>Controle de Versão</strong><br />
Esse é um ponto controverso com alguns gerentes/coordenadores que conheço, mas é algo mais que necessário para o desenvolvimento. Uso o <a title="Subversion" href="http://subversion.tigris.org/" target="_blank">subversion</a> na Burti, integrado com a IDE que vou falar adiante. Para quem não conhece sistemas de Controle de versão (<a title="CVS" href="http://www.nongnu.org/cvs/" target="_blank">CVS</a>, Subversion, <a title="Bazzar Version Control System" href="http://bazaar-vcs.org/" target="_blank">Bazaar</a>, <a title="GIT" href="http://git.or.cz/" target="_blank">GIT</a>), deveria se informar melhor do assunto.<br />
Uso o subversion por ter maior conhecimento neste, além de ser mais fácil encontrar alguém que conheça o <em>SVN</em> que o GIT por exemplo.</p>
<p><strong>IDE / Editor</strong><br />
Usar uma <cite title="Integrated Development Enviroment">IDE</cite> ou um Editor mais simples? eis a questão! Eu uso uma IDE para, em uma só ferramenta eu ter o controle do código, visualização da arquitetura de classes, visualização/ mapeamento da classe que estou editando, Debugging e Profilling. Uso o <a title="Netbeans" href="http://netbeans.org" target="_blank">Netbeans</a> 6.5 (sim, existe uma versão hoje de Netbeans com suporte a PHP); Minha principal motivação de mudar do <a title="PHP Development Tools" href="http://zend.com/pdt" target="_blank">PDT</a> para o Netbeans é que o ultimo funciona no meu Kubuntu 64bits, enquanto que o primeiro tenho que mexer em muita coisa pra rodar redondo.<br />
O Netbeans conta com edição de PHP/HTML/CSS/JS integrado com as principais bibliotecas/frameworks (jQuery, Prototype, Dojo), desenvolvimento local e remoto, navegador de código, debugging como já citado, entre outras tantas features. Uso tanto em casa quanto na Burti, e recomendo. Quando tenho que fazer uma alteração remota com urgencia não dispenso o VI.</p>
<div class="wp-caption aligncenter" style="width: 378px"><a href="http://www.netbeans.org"><img title="Netbeans" src="http://www.netbeans.org/images/articles/65/php/quickstart/getting-started-open-new-project.png" alt="Netbeans 6.5 com suporte a PHP" width="368" height="174" /></a><p class="wp-caption-text">Netbeans 6.5 com suporte a PHP</p></div>
<p style="text-align:left;"><strong>Navegador</strong><br />
Pois é, todos nós que trabalhamos com php temos que abrir o navegador vez ou outra para visualizar as coisas feitas no HTML,CSS e Javascript, e as coisas não feitas pelo <cite title="Internet Explorer">IE</cite> <img src='http://duodra.co/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> . Minha primeira opção de navegador é o <a title="Opera" href="http://opera.com" target="_blank">Opera</a>, que dentre outros motivos atende à risca as especificações da <cite title="World Wide Web Consortium">W3C</cite>. Fazendo as coisas darem certo no Opera, tenho que acertar muito pouco, ou nada, minhas investidas contra o client-side em outros navegadores. Meu segundo navegador é claro o <a title="Firefox" href="http://www.mozilla.com/firefox/" target="_blank">Firefox</a>. Sempre há o pecado de ter as coisas no IE bagunçadas&#8230; para isso vamos ao próximo tópico.<br />
<a title="Opera" href="http://opera.com" target="_blank"><img class="hide-mobile aligncenter" src="http://www.opera.com/bitmaps/products/browser/campaign/0811operabrowser.png" alt="" width="400" height="128" /></a><br />
<strong></strong></p>
<p><strong>Máquinas Virtuais</strong><br />
Bom, o principal uso de uma máquina virtual não é, com certeza, visualizar como seu sistema/site fica no IE, embora um dos meus usos seja especificamente esse. Uso o <a title="VirtualBox" href="http://www.virtualbox.org" target="_blank">VirtualBox</a>, com uma maquina windows xp. Apesar de ter o wine no linux, prefiro a <cite title="Maquina Virtual">MV</cite> a instalar o IE[ca] no Linux. Também uso a MV para testar as novas releases do [K|X]Ubuntu quando ainda em alpha/beta, e versões de softwares antes de instalar diretamente na workstation.</p>
<p><strong>Cliente para Bancos de Dados</strong><br />
Bom, ainda não me acostumei a usar a ferramenta built-in do Netbeans (por sinal muito boa&#8230; só falta de costume). Então ainda uso o Mysql Query Browser e o Mysql Administrator, além, é claro, da interface em linha de comando; com o postgresql uso o PGAdmin. Mas ainda vou me acostumar a usar o cliente do netbeans, a se vou.</p>
<p><strong>Editor UML</strong><br />
Sim, temos que utilizar a <cite title="Unified Modeling Language">UML</cite>! Até pouco tempo atrás usava o ótimo Umbrello, do KDE, mas depois do Netbeans comecei a usar seu plugin UML que é ótimo. A única desvantagem para o Umbrello mesmo é a falta de geração de código a partir do Modelo neste ultimo.<br />
<a href="http://uml.sourceforge.net/screenshots/umbrello-2.0.png"> <img src="http://uml.sourceforge.net/screenshots/umbrello-2.0-wee.png" border="0" alt="" width="200" height="151" /> </a></p>
<p><strong>MindMap</strong><br />
Não vou me aprofundar no assunto de <a title="Mapas Mentais na Wikipedia" href="http://pt.wikipedia.org/wiki/Mapa_mental" target="_blank">mindmap</a>, pelo menos não agora, mas é uma das melhores ferramentas para documentação em projetos ágeis, como Scrum e XP. Uso o <a title="Freemind" href="http://freemind.sourceforge.net" target="_blank">Freemind</a> para este serviço.</p>
<p><strong>Metodologia de Desenvolvimento</strong><br />
Utilizo o Scrum como base na metodologia. O grande lance do <a title="Scrum Alliance" href="http://www.scrumalliance.org/" target="_blank">Scrum</a> é ter um ciclo definido de desenvolvimento, e consequentemente de releases para o cliente, no qual o desenvolvedor tem quase que total liberdade para gerenciar o tempo, além de ser flexivel quanto a regras, o que é até &#8220;obrigatório&#8221; no desenrolar de um processo Scrum. Falarei melhor sobre metodologias ágeis em breve.</p>
<p><strong>Estilo de Codificação</strong><br />
Algo essencial para o trabalho em grupo. Utilizar um Estilo significa que o jeito que você escreve o código será igual ao da sua equipe, falando a grosso modo. Utilizo o <a title="Padrões de código no Zend Framework" href="http://framework.zend.com/manual/en/coding-standard.html" target="_blank">Padrão do ZendFramework</a>, que tem poucas variações do <a title="Padrão PEAR" href="http://pear.php.net/manual/en/standards.php" target="_blank">padrão PEAR</a>.</p>
<p><strong>Frameworks</strong><br />
Algo essencial para desenvolver rapidamente aplicações, sem re-re-re-re-inventar a roda.<br />
No PHP estou brincando mais com o <a title="Zend Framework" href="http://framework.zend.com/" target="_blank">ZendFramework</a> pelo nível e por tudo o que ele já possui; No passado ele tinha sérios problemas de performance, os quais não identifico mais, apesar de não ser o avião que o <a title="CodeIgniter" href="http://codeigniter.com/" target="_blank">CodeIgniter</a> / <a title="Kohana PHP" href="http://kohanaphp.com/" target="_blank">Kohana</a> é.<br />
Para o Javascript utilizo o <span style="text-decoration:line-through;">fucker</span> <span style="text-decoration:line-through;">awesome</span> poderoso <a title="jQuey" href="http://jquery.com" target="_blank">jQuery</a>.</p>
<p>Bom pessoal, dei uma passada rápida sobre o que uso no dia-a-dia para desenvolver. Até a próxima</p>
]]></content:encoded>
			<wfw:commentRss>http://duodra.co/post/desenvolvimento-web/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP Conference &#039;08</title>
		<link>http://duodra.co/post/php-conference-08r/</link>
		<comments>http://duodra.co/post/php-conference-08r/#comments</comments>
		<pubDate>Thu, 11 Dec 2008 01:01:53 +0000</pubDate>
		<dc:creator>Duodraco</dc:creator>
				<category><![CDATA[geral]]></category>

		<guid isPermaLink="false">http://duodraco.wordpress.com/?p=55</guid>
		<description><![CDATA[<div style="padding-top:5px;padding-right:0px;padding-bottom:5px;padding-left:0px;;">
											<iframe
												style="height:25px !important; border:0px solid gray !important; overflow:hidden !important; width:550px !important;" frameborder="0" scrolling="no" allowTransparency="true"
												src="http://www.linksalpha.com/social?blog=Duodraco&link=http%3A%2F%2Fduodra.co%2Fpost%2Fphp-conference-08r%2F&title=PHP+Conference+%26%23039%3B08&desc=Tive+que+tirar+umas+teias+de+aranha+pra+postar+aqui+de+novo.%0A%0ABom%2C+ocorreu+nos+dias+27%2C+28+e+29+de+Novembro+o+PHP+Conference+Brasil+2008.+De+longe+um+dos+melhores+eventos+j%C3%A1+ocorridos+por+esses+lados&fc=333333&fs=tahoma&fblname=like&fblref=facebook&fbllang=pt_BR&fblshow=1&fbsbutton=1&fbsctr=1&fbslang=en&fbsendbutton=1&twbutton=1&twlang=en&twmention=duodraco&twrelated1=&twrelated2=&twctr=1&lnkdshow=show&lnkdctr=1&buzzbutton=1&buzzlang=en&buzzctr=1&diggbutton=1&diggctr=1&stblbutton=1&stblctr=1&g1button=1&g1ctr=1&g1lang=en-US">
											</iframe>
										</div>Tive que tirar umas teias de aranha pra postar aqui de novo. Bom, ocorreu nos dias 27, 28 e 29 de Novembro o PHP Conference Brasil 2008. De longe um dos melhores eventos já ocorridos por esses lados. Infra-estrutura decente, &#8230; <a href="http://duodra.co/post/php-conference-08r/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div style="padding-top:5px;padding-right:0px;padding-bottom:5px;padding-left:0px;;">
											<iframe
												style="height:25px !important; border:0px solid gray !important; overflow:hidden !important; width:550px !important;" frameborder="0" scrolling="no" allowTransparency="true"
												src="http://www.linksalpha.com/social?blog=Duodraco&link=http%3A%2F%2Fduodra.co%2Fpost%2Fphp-conference-08r%2F&title=PHP+Conference+%26%23039%3B08&desc=Tive+que+tirar+umas+teias+de+aranha+pra+postar+aqui+de+novo.%0A%0ABom%2C+ocorreu+nos+dias+27%2C+28+e+29+de+Novembro+o+PHP+Conference+Brasil+2008.+De+longe+um+dos+melhores+eventos+j%C3%A1+ocorridos+por+esses+lados&fc=333333&fs=tahoma&fblname=like&fblref=facebook&fbllang=pt_BR&fblshow=1&fbsbutton=1&fbsctr=1&fbslang=en&fbsendbutton=1&twbutton=1&twlang=en&twmention=duodraco&twrelated1=&twrelated2=&twctr=1&lnkdshow=show&lnkdctr=1&buzzbutton=1&buzzlang=en&buzzctr=1&diggbutton=1&diggctr=1&stblbutton=1&stblctr=1&g1button=1&g1ctr=1&g1lang=en-US">
											</iframe>
										</div><p>Tive que tirar umas teias de aranha pra postar aqui de novo.</p>
<p>Bom, ocorreu nos dias 27, 28 e 29 de Novembro o PHP Conference Brasil 2008. De longe um dos melhores eventos já ocorridos por esses lados. Infra-estrutura decente, conteúdo de nível, networking e tudo o mais que um evento desse porte pode querer.</p>
<p>No dia 28 apresentei a palestra &#8220;Objetos, Padrões e Prática&#8221;, abordadando Orientação a Objetos e Design Patterns, mostrando um exemplo funcional de framework mvc, usando os principais padrões. Segue a apresentação:</p>
<iframe src="http://www.slideshare.net/slideshow/embed_code/837269" width="600" height="489" frameborder="0" marginwidth="0" marginheight="0" scrolling="no"></iframe><br/><br/>
<p>No sábado havia uma sala livre, então o Quarteto Fantástico (<a href="http://www.rafaeldohms.com.br" target="_blank">Dohms</a>, <a href="http://augustopascutti.com" target="_blank">Pascutti</a>, <a href="http://horizontesdigitais.com" target="_blank">Chucre</a> e eu) + a colaboração do Surfista de preto (<a href="http://ivanrosolen.com" target="_blank">Ivan</a>) realizamos uma mesa redonda, dissecando um Simulado para a Prova de Certificação da Zend; não é necessario dizer que estrapolamos o tempo da palestra (e do Mock)</p>
<p>Novos Amigos, atualização de conteúdo, networking, premissas e idéias para o PHP.SP. Acho que não ficou faltando nada. Teve quem (de novo) reclamasse da distância para a Unifieo, faculdade que sediou o evento; como moro lá perto, não tive problemas.</p>
<p>Até logo.</p>
]]></content:encoded>
			<wfw:commentRss>http://duodra.co/post/php-conference-08r/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Dicas para um PHP mais veloz</title>
		<link>http://duodra.co/post/dicas-para-um-php-mais-veloz/</link>
		<comments>http://duodra.co/post/dicas-para-um-php-mais-veloz/#comments</comments>
		<pubDate>Sat, 12 Apr 2008 16:09:49 +0000</pubDate>
		<dc:creator>Duodraco</dc:creator>
				<category><![CDATA[geral]]></category>
		<category><![CDATA[performance]]></category>

		<guid isPermaLink="false">http://duodraco.wordpress.com/?p=36</guid>
		<description><![CDATA[<div style="padding-top:5px;padding-right:0px;padding-bottom:5px;padding-left:0px;;">
											<iframe
												style="height:25px !important; border:0px solid gray !important; overflow:hidden !important; width:550px !important;" frameborder="0" scrolling="no" allowTransparency="true"
												src="http://www.linksalpha.com/social?blog=Duodraco&link=http%3A%2F%2Fduodra.co%2Fpost%2Fdicas-para-um-php-mais-veloz%2F&title=Dicas+para+um+PHP+mais+veloz&desc=Salve%0D%0A%0D%0AViu%3F+n%C3%A3o+demorou+muito+para+um+novo+artigo+%3AD%0D%0AVou+passar+a+voc%C3%AAs+uma+mat%C3%A9ria+que+peguei+h%C3%A1+algum+tempo+em+ingl%C3%AAs...+mais+abaixo+coloco+as+refer%C3%AAncias.%0D%0A%0D%0ATrata-se+de+uma+lista+de+dicas&fc=333333&fs=tahoma&fblname=like&fblref=facebook&fbllang=pt_BR&fblshow=1&fbsbutton=1&fbsctr=1&fbslang=en&fbsendbutton=1&twbutton=1&twlang=en&twmention=duodraco&twrelated1=&twrelated2=&twctr=1&lnkdshow=show&lnkdctr=1&buzzbutton=1&buzzlang=en&buzzctr=1&diggbutton=1&diggctr=1&stblbutton=1&stblctr=1&g1button=1&g1ctr=1&g1lang=en-US">
											</iframe>
										</div>Salve Viu? não demorou muito para um novo artigo Vou passar a vocês uma matéria que peguei há algum tempo em inglês&#8230; mais abaixo coloco as referências. Trata-se de uma lista de dicas para o desenvolvimento PHP. Aproveitem. 1. echo &#8230; <a href="http://duodra.co/post/dicas-para-um-php-mais-veloz/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div style="padding-top:5px;padding-right:0px;padding-bottom:5px;padding-left:0px;;">
											<iframe
												style="height:25px !important; border:0px solid gray !important; overflow:hidden !important; width:550px !important;" frameborder="0" scrolling="no" allowTransparency="true"
												src="http://www.linksalpha.com/social?blog=Duodraco&link=http%3A%2F%2Fduodra.co%2Fpost%2Fdicas-para-um-php-mais-veloz%2F&title=Dicas+para+um+PHP+mais+veloz&desc=Salve%0D%0A%0D%0AViu%3F+n%C3%A3o+demorou+muito+para+um+novo+artigo+%3AD%0D%0AVou+passar+a+voc%C3%AAs+uma+mat%C3%A9ria+que+peguei+h%C3%A1+algum+tempo+em+ingl%C3%AAs...+mais+abaixo+coloco+as+refer%C3%AAncias.%0D%0A%0D%0ATrata-se+de+uma+lista+de+dicas&fc=333333&fs=tahoma&fblname=like&fblref=facebook&fbllang=pt_BR&fblshow=1&fbsbutton=1&fbsctr=1&fbslang=en&fbsendbutton=1&twbutton=1&twlang=en&twmention=duodraco&twrelated1=&twrelated2=&twctr=1&lnkdshow=show&lnkdctr=1&buzzbutton=1&buzzlang=en&buzzctr=1&diggbutton=1&diggctr=1&stblbutton=1&stblctr=1&g1button=1&g1ctr=1&g1lang=en-US">
											</iframe>
										</div><p>Salve</p>
<p>Viu? não demorou muito para um novo artigo <img src='http://duodra.co/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /><br />
Vou passar a vocês uma matéria que peguei há algum tempo em inglês&#8230; mais abaixo coloco as referências.</p>
<p>Trata-se de uma lista de dicas para o desenvolvimento PHP. Aproveitem.</p>
<p><span id="more-236"></span></p>
<p>1. <strong>echo</strong><br />
Por questão de performance: use &#8216;echo&#8217; ao invés de &#8216;print&#8217;, e se for usar muitas concatenações, lembre-se de usar &#8216;,&#8217;, como faríamos com argumentos em uma função, ao invés de &#8216;.&#8217;. Em testes simples a diferença é pouco sensível, mas em uma <a class="bbli" href="http://sledge.boo-box.com/list/page/b3BlcmElRTclRTNvXyMjX2Jhcl8jI190YWdnaW5nLXRvb2wtd3BfIyNfMTYwMzg5NA==-68">operação<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a> em que um grande conteúdo será jogado para o buffer de saída faz muita diferença.</p>
<p>2. <strong>chamada de funções em condições de iterações</strong><br />
Imagine o seguinte código:</p>
<pre class="brush:php">&lt;?
$a = array(1,2,3);
for($i = 0; $i &lt; count($a); $i++){
//...
}
?&gt;</pre>
<p>Sabemos que count será executado 3 vezes. Imagine se $a tivesse 10000 itens? Podemos melhorar isso se fizermos o seguinte:</p>
<pre class="brush:php">&lt;?
$a = array(1,2,3);
$c = count($a);
for($i = 0; $i &lt; $c; $i++){
//...
}
?&gt;</pre>
<p>Reduzimos a chamada a <em>count</em> a uma única vez sempre. Qual o nosso <a class="bbli" href="http://sledge.boo-box.com/list/page/Z2FuaG9fIyNfYmFyXyMjX3RhZ2dpbmctdG9vbC13cF8jI18xNjAzODk0-56">ganho<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a>? mais da metade do tempo, fazendo uma iteração com 10000 itens. Isso se você precisa que realmente seja um <em>for</em>. Se for uma iteração em um array, como é este caso, você vai se surpreender se usar <em>foreach</em>.</p>
<pre class="brush:php">&lt;?
$a = array(1,2,3);
foreach($a as $i =&gt; $each){
//...
}
?&gt;</pre>
<p>3. <strong>armazenar strings para echo</strong><br />
Você realmente precisa ter em uma variável tudo o que vai &#8220;echoar&#8221;? Se não for necessário armazenar, &#8220;echoe&#8221; diretamente a string</p>
<pre class="brush:php">&lt;?
echo "Faça isso&lt;br /&gt;";
$s = "Ao invés disso";
echo $s;
?&gt;</pre>
<p>4. <strong>notação de strings</strong><br />
Você sabe a diferença de <strong>&#8216;</strong> e <strong>&#8220;</strong> para o PHP? o primeiro (aspas simples) armazenam a string como você escrever nela. O segundo permite o uso de metacarateres (\n para quebras de linha, por exemplo), uso de variáveis (&#8220;$var  é uma variável&#8221;), portanto o PHP tem que verificar o que há nesse contexto para só então armazenar a string. O ganho em performance não é tão sensível, mas para um script lento, qualquer <a class="bbli" href="http://sledge.boo-box.com/list/page/YWp1ZGFfIyNfYmFyXyMjX3RhZ2dpbmctdG9vbC13cF8jI18xNjAzODk0-56">ajuda<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a> vale muito.</p>
<p>5. <strong>str_replace vs ereg_replace vs preg_replace</strong><br />
Taí um teste que me <a class="bbli" href="http://sledge.boo-box.com/list/page/c3VycHJlZW5kZXVfIyNfYmFyXyMjX3RhZ2dpbmctdG9vbC13cF8jI18xNjAzODk0-64">surpreendeu<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a> quando fiz a primeira vez. Quando for simplesmente trocar uma sentença por outra em uma string (sem o uso de uma expressão regular mais complexa), utilize o <em>str_replace</em>: é ela faz o trabalho das outras duas em aproximadamente 40% do tempo.</p>
<p>Senhores (e senhoras, por que não?), essas é a primaria parte da série de 3 no original, que vou postar nos próximos dias. Ao final, adicionarei algumas dicas próprias. Abaixo seguem os links para os três capítulos.</p>
<p><a href="http://bitfilm.net/2007/08/24/tips-for-faster-php-scripts/">tips-for-faster-php-scripts</a><br />
<a href="http://bitfilm.net/2007/09/07/more-tips-for-faster-php-scripts/">more tips for faster php scripts</a><br />
<a href="http://bitfilm.net/2007/11/27/even-more-tips-for-faster-php-scripts">even more tips for faster php script</a></p>
<p>Sugiro também que dêem uma olhada em meus bookmarks no <a href="http://del.icio.us/duodraco">del.icio.us</a></p>
<p>Até o próximo artigo</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "performance";
            bb_bid  = "1603894";
            bb_lang = "pt-BR";
            bb_name = "custom";bb_width = "600";bb_limit = "6";
          </script>
          <script type="text/javascript" src="http://widgets.boo-box.com/javascripts/embed.js"></script>
          <!-- boo-widget end -->]]></content:encoded>
			<wfw:commentRss>http://duodra.co/post/dicas-para-um-php-mais-veloz/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>BCMath &#8211; PHP fazendo contas direitinho</title>
		<link>http://duodra.co/post/bcmath-php-fazendo-contas-direitinho/</link>
		<comments>http://duodra.co/post/bcmath-php-fazendo-contas-direitinho/#comments</comments>
		<pubDate>Wed, 26 Sep 2007 12:19:10 +0000</pubDate>
		<dc:creator>Duodraco</dc:creator>
				<category><![CDATA[geral]]></category>

		<guid isPermaLink="false">http://duodraco.wordpress.com/2007/09/26/bcmath-php-fazendo-contas-direitinho/</guid>
		<description><![CDATA[<div style="padding-top:5px;padding-right:0px;padding-bottom:5px;padding-left:0px;;">
											<iframe
												style="height:25px !important; border:0px solid gray !important; overflow:hidden !important; width:550px !important;" frameborder="0" scrolling="no" allowTransparency="true"
												src="http://www.linksalpha.com/social?blog=Duodraco&link=http%3A%2F%2Fduodra.co%2Fpost%2Fbcmath-php-fazendo-contas-direitinho%2F&title=BCMath+-+PHP+fazendo+contas+direitinho&desc=Salve%0D%0A%0D%0AN%C3%A3o+sei+voc%C3%AAs%2C+mas+adoro+o+PHP.++Me+d%C3%A1+suporte+a+quase+tudo+que+preciso+para+desenvolver+bem.+Um+problema+do+PHP+voltei+a+ver+essa+semana%2C+e+%C3%A9+at%C3%A9+comum+em+algumas+linguagens%3A+erros+em+o&fc=333333&fs=tahoma&fblname=like&fblref=facebook&fbllang=pt_BR&fblshow=1&fbsbutton=1&fbsctr=1&fbslang=en&fbsendbutton=1&twbutton=1&twlang=en&twmention=duodraco&twrelated1=&twrelated2=&twctr=1&lnkdshow=show&lnkdctr=1&buzzbutton=1&buzzlang=en&buzzctr=1&diggbutton=1&diggctr=1&stblbutton=1&stblctr=1&g1button=1&g1ctr=1&g1lang=en-US">
											</iframe>
										</div>Salve Não sei vocês, mas adoro o PHP. Me dá suporte a quase tudo que preciso para desenvolver bem. Um problema do PHP voltei a ver essa semana, e é até comum em algumas linguagens: erros em operações com números &#8230; <a href="http://duodra.co/post/bcmath-php-fazendo-contas-direitinho/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<div style="padding-top:5px;padding-right:0px;padding-bottom:5px;padding-left:0px;;">
											<iframe
												style="height:25px !important; border:0px solid gray !important; overflow:hidden !important; width:550px !important;" frameborder="0" scrolling="no" allowTransparency="true"
												src="http://www.linksalpha.com/social?blog=Duodraco&link=http%3A%2F%2Fduodra.co%2Fpost%2Fbcmath-php-fazendo-contas-direitinho%2F&title=BCMath+-+PHP+fazendo+contas+direitinho&desc=Salve%0D%0A%0D%0AN%C3%A3o+sei+voc%C3%AAs%2C+mas+adoro+o+PHP.++Me+d%C3%A1+suporte+a+quase+tudo+que+preciso+para+desenvolver+bem.+Um+problema+do+PHP+voltei+a+ver+essa+semana%2C+e+%C3%A9+at%C3%A9+comum+em+algumas+linguagens%3A+erros+em+o&fc=333333&fs=tahoma&fblname=like&fblref=facebook&fbllang=pt_BR&fblshow=1&fbsbutton=1&fbsctr=1&fbslang=en&fbsendbutton=1&twbutton=1&twlang=en&twmention=duodraco&twrelated1=&twrelated2=&twctr=1&lnkdshow=show&lnkdctr=1&buzzbutton=1&buzzlang=en&buzzctr=1&diggbutton=1&diggctr=1&stblbutton=1&stblctr=1&g1button=1&g1ctr=1&g1lang=en-US">
											</iframe>
										</div><p>Salve</p>
<p>Não sei vocês, mas adoro o PHP.  Me dá suporte a quase tudo que preciso para desenvolver bem. Um problema do PHP voltei a ver essa semana, e é até comum em algumas linguagens: erros em operações com números decimais. Como  disse antes, adoro o PHP, e a solução está em uma extensão infelizmente pouco usada: a BCMath.</p>
<p>O problema acontece quando algum numero decimal na operação não é convertido facilmente para uma notação fracionária internamente no PHP, o que pode culminar em alguns bugs; veja o exemplo abaixo, retirado da documentação oficial:</p>
<pre class="brush:php">echo floor((0.1 + 0.7)*10);</pre>
<p>Isto irá exibir 7, e não 8  como esperado. o problema está não conversão para numero fracionário: o floor está recebendo 7.999999999, que resultará em 7;</p>
<p>Para os casos em que você necessita de precisão em números arbitrários existe a BCMath (Binary Calculator Mathematics). É uma extensão, obtida no pacote do php, geralmente habilitada por padrão. Dúvidas na instalção? deixe um comentário.</p>
<p>Se esta extensão estiver habilitada, você terá disponíveis as seguintes funções:</p>
<ul>
<li><span class="refpurpose"><strong>bcscale</strong>($precisao) &#8211; Seta o número de casas decimais (precisão) padrão para todas as funções BCMath do script</span></li>
<li><span class="refpurpose"><strong>bcadd</strong>($n1,$n2,[$precisao]) &#8211; soma 2 números;</span></li>
<li><span class="refpurpose"><strong>bccomp</strong>($n1,$n2,[$precisao]) &#8211; compara $n1 e $n2: se forem iguais retorna 0; 1 se $n1 &gt; $n2, senão -1;</span></li>
<li><span class="refpurpose"><strong>bcdiv</strong>($n1,$n2,[$precisao]) &#8211; Divide $n1 por $n2</span></li>
<li><span class="refpurpose"><strong>bcmod</strong>($n1,$n2,[$precisao]) &#8211; Retorna o resto da divisão de $n1 por $n2</span></li>
<li><span class="refpurpose"><strong>bcmul</strong>($n1,$n2,[$precisão]) &#8211; Multiplica $n1 por $n2</span></li>
<li><span class="refpurpose"><strong>bcpow</strong>($n1,$n2,[$precisao]) &#8211; Retorna $n1 potência de $n2</span></li>
<li><span class="refpurpose"><strong>bcpowmod</strong>($n1,$n2,$mod,[$precisao]) &#8211; O mesmo que bcmod(bcpow($n1,$n2),$mod), mais rápido</span></li>
<li><span class="refpurpose"><strong>bcsqrt</strong>($n1,[$precisao]) &#8211; Retorna a Raiz Quadrada de $n1</span></li>
<li><span class="refpurpose"><strong>bcsub</strong>($n1,$n2,[$precisao]) &#8211; Retorna $n1 &#8211; $n2</span></li>
</ul>
<p><span class="refpurpose">$precisao é um parâmetro opcional para todas as funções, exceto bcscale. O padrão no php.ini é 0, podendo ser alterado via ini_set, ou pelo bcscale.</span></p>
<p>Espero que esta pequena resenha sobre a BCMath seja útil (como foi pra mim&#8230; como foi&#8230; <img src='http://duodra.co/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  ) . Até a próxima.</p>
]]></content:encoded>
			<wfw:commentRss>http://duodra.co/post/bcmath-php-fazendo-contas-direitinho/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

