<?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; desenvolvimento</title>
	<atom:link href="http://duodra.co/categoria/desenvolvimento/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>PHP 5.4 &#8211; saiba o que vem por aí</title>
		<link>http://duodra.co/post/php-5-4-saiba-o-que-vem-por-ai/</link>
		<comments>http://duodra.co/post/php-5-4-saiba-o-que-vem-por-ai/#comments</comments>
		<pubDate>Wed, 29 Jun 2011 11:02:53 +0000</pubDate>
		<dc:creator>Duodraco</dc:creator>
				<category><![CDATA[php]]></category>
		<category><![CDATA[php54]]></category>

		<guid isPermaLink="false">http://duodra.co/?p=287</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-5-4-saiba-o-que-vem-por-ai%2F&title=PHP+5.4+-+saiba+o+que+vem+por+a%C3%AD&desc=Ol%C3%A1+Pessoal.+O+PHP+5.4+vem+a%C3%AD+com+muita+coisa+boa%21+Acabou+de+sair+o+primeiro+alpha+release+da+pr%C3%B3xima+grande+atualiza%C3%A7%C3%A3o+do+PHP.+Quem+acompanha+as+listas+internas+do+desenvolvimento+do+PHP+j%C3%A1+sa&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á Pessoal. O PHP 5.4 vem aí com muita coisa boa! Acabou de sair o primeiro alpha release da próxima grande atualização do PHP. Quem acompanha as listas internas do desenvolvimento do PHP já sabe o que esperar. Para quem &#8230; <a href="http://duodra.co/post/php-5-4-saiba-o-que-vem-por-ai/">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-5-4-saiba-o-que-vem-por-ai%2F&title=PHP+5.4+-+saiba+o+que+vem+por+a%C3%AD&desc=Ol%C3%A1+Pessoal.+O+PHP+5.4+vem+a%C3%AD+com+muita+coisa+boa%21+Acabou+de+sair+o+primeiro+alpha+release+da+pr%C3%B3xima+grande+atualiza%C3%A7%C3%A3o+do+PHP.+Quem+acompanha+as+listas+internas+do+desenvolvimento+do+PHP+j%C3%A1+sa&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á Pessoal. O PHP 5.4 vem aí com muita coisa boa! Acabou de sair o primeiro alpha release da próxima grande atualização do PHP. Quem acompanha as listas internas do <a class="bbli" href="http://sledge.boo-box.com/list/page/ZGVzZW52b2x2aW1lbnRvXyMjX2JveF8jI190YWdnaW5nLXRvb2wtd3BfIyNfdW5kZWZpbmVk-72">desenvolvimento<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a> do PHP já sabe o que esperar. Para quem não acompanha, seguem as principais mudanças:<span id="more-287"></span></p>
<ul>
<li><strong>Remoção</strong> de funcionalidades (ou &#8220;desfuncionalidades&#8221;) legadas
<ul>
<li>Configuração de SafeMode no ini.</li>
<li>register_globals (até que enfim)</li>
<li>y2k_compliance (ini)</li>
<li>session bug compatibility mode</li>
<li>funções session_(is_registered|register|unregister)</li>
</ul>
</li>
</ul>
<ul>
<li>ext/SQLite movido para PECL</li>
<li>$_SERVER['REQUEST_TIME'] tem <a class="bbli" href="http://sledge.boo-box.com/list/page/cHJlY2lzJUUzb18jI19ib3hfIyNfdGFnZ2luZy10b29sLXdwXyMjX3VuZGVmaW5lZA==-68">precisão<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a> de microsegundos</li>
<li>Valor default de default_charset (php.ini) agora é &#8216;UTF-8&#8242;</li>
<li><strong>&lt;?=</strong> é sempre disponível mesmo com short_open_tag desligada</li>
</ul>
<ul>
<li>Melhorias Gerais:
<ul>
<li>Suporte a multibyte por default</li>
<li>Suporte a Traits (Leia mais na <acronym title="Request For Comments">RFC</acronym> para <a title="RFC para Horizontal Reuse / Traits" href="https://wiki.php.net/rfc/horizontalreuse" target="_blank">Horizontal Reuse</a> e no site do <a title="Traits em PHP – herança horizontal no hlegius" href="http://www.hlegius.pro.br/traits-em-php-heranca-horizontal/" target="_blank">@hlegius</a>)</li>
<li>Suporte a array dereference (em poucas palavras, será possível fazer $foo = array_merge(&#8216;a&#8217;,'b&#8217;)[1] , sabendo que array_merge retorna um array. Veja mais no <a title="Features in PHP trunk: Array dereferencing de Johannes Schlüter" href="http://schlueters.de/blog/archives/138-Features-in-PHP-trunk-Array-dereferencing.html" target="_blank">post do Johannes</a>)</li>
<li>Suporte a referência de objetos em chamadas recursivas a serialize() e melhorada a <a class="bbli" href="http://sledge.boo-box.com/list/page/cGVyZm9ybWFuY2VfIyNfYm94XyMjX3RhZ2dpbmctdG9vbC13cF8jI191bmRlZmluZWQ=-68">performance<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a> de unserialize()</li>
<li>Suporte a Dtrace</li>
<li>Suporte a API para Stream <a class="bbli" href="http://sledge.boo-box.com/list/page/TWV0YWRhdGFfIyNfYm94XyMjX3RhZ2dpbmctdG9vbC13cF8jI191bmRlZmluZWQ=-64">Metadata<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a></li>
<li>Melhoria no uso de memória, performance e otimizações para a Zend Engine
<ul>
<li>Melhorada a porformance do @ (evite usá-lo de qualquer maneira <img src='http://duodra.co/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> )</li>
<li>Adicionados caches para eliminar repetições de bindings em tempo de execução para funções, classes, métodos, etc</li>
</ul>
</li>
<li>Melhorias no CLI e FastCGI</li>
<li>Melhorias nas extensões: CURL, Date, DBA, Hash, Intl, LDAP, Mysql, OpenSSL, PDO-Dblib, PostgreSQL, Zlib, SNMP</li>
<li>Adicionadas a SPL:
<ul>
<li>RegexIterator::getRegex()</li>
<li>SplObjectStorage::getHash()</li>
<li>CallbackFilterIterator e RecursiveCallbackFilterIterator</li>
</ul>
</li>
<li>JSON:
<ul>
<li>Interface JsonSerializable</li>
<li>json_decode: opção JSON_BIGINT_AS_STRING</li>
<li>opções json_encode:</li>
<li>JSON_NUMERIC_CHECK converte strings numéricas em ints</li>
<li>JSON_PRETTY_PRINT e JSON_UNESCAPED_SLASHES</li>
</ul>
</li>
</ul>
</li>
</ul>
<p>Exitem muitas outras <a class="bbli" href="http://sledge.boo-box.com/list/page/bXVkYW4lRTdhc18jI19ib3hfIyNfdGFnZ2luZy10b29sLXdwXyMjX3VuZGVmaW5lZA==-68">mudanças<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a>, e esta é só a versão alpha. Para mais informações confira o <a title="Anuncio do PHP 5.4 no php.net" href="http://www.php.net/archive/2011.php#id2011-06-28-1" target="_blank">anúncio oficial</a>.</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "php54";
            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/php-5-4-saiba-o-que-vem-por-ai/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Seu ambiente de trabalho em 7 itens</title>
		<link>http://duodra.co/post/seu-ambiente-de-trabalho-em-7-itens/</link>
		<comments>http://duodra.co/post/seu-ambiente-de-trabalho-em-7-itens/#comments</comments>
		<pubDate>Thu, 16 Dec 2010 12:36:55 +0000</pubDate>
		<dc:creator>Duodraco</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[integração contínua]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://duodra.co/?p=181</guid>
		<description><![CDATA[Há quase um ano escrevi um artigo sobre meu ambiente de trabalho. Estou listando 7 itens e repassando para que mais algumas pessoas escrevam sobre seus ambientes também <a href="http://duodra.co/post/seu-ambiente-de-trabalho-em-7-itens/">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%2Fseu-ambiente-de-trabalho-em-7-itens%2F&title=Seu+ambiente+de+trabalho+em+7+itens&desc=H%C3%A1+quase+um+ano+escrevi+um+artigo+sobre+ambiente+de+trabalho.+O+Augusto+Pascutti+jogou+uma+id%C3%A9ia+no+ar%3A+%22vamos+fazer+um+meme+sobre%3F%22+...+e+c%C3%A1+eu+estou+a+realizar+algo+sobre.+As+regras+s%C3%A3o+claras%3A%0D&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>Há quase um ano escrevi um artigo sobre <a title="Artigo sobre Ambiente de trabalho" href="http://duodra.co/post/meu-ambiente-de-trabalho/" target="_self">ambiente de trabalho</a>. O Augusto Pascutti jogou uma idéia no ar: &#8220;vamos fazer um meme sobre?&#8221; &#8230; e cá eu estou a realizar algo sobre. As regras são claras:<br />
1ª &#8211; escreva sobre 7 itens de seu <a class="bbli" href="http://sledge.boo-box.com/list/page/YW1iaWVudGVfIyNfYmFyXyMjX3RhZ2dpbmctdG9vbC13cF8jI18xNjAzODk0-60">ambiente<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a> de trabalho &#8211; fale sobre qualquer ponto que quiser;<br />
2ª &#8211; indique de 3 a 5 pessoas para que possivelmente façam um artigo sobre seu ambiente.</p>
<p>Vamos lá?<span id="more-181"></span></p>
<ol>
<li><strong>OS: <em>Opensuse 11.3</em></strong>: A distribuição <a class="bbli" href="http://sledge.boo-box.com/list/page/bGludXhfIyNfYmFyXyMjX3RhZ2dpbmctdG9vbC13cF8jI18xNjAzODk0-56">linux<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a> que melhor suporta o KDE, contando com o Zypper como gerenciador de pacotes&#8230; é simples instalar qualquer pacote, e reverter a uma versão anterior caso seja necessário, além de tudo o que o Yast oferece. <a title="Conheça o OpenSuse" rel="nofollow" href="http://opensuse.org" target="_blank">Conheça o opensuse</a>.</li>
<li><strong>IDE: <em>KDevelop4</em></strong>: Entre os que testei no meu ambiente, o <a title="Site do projeto Kdevelop" rel="nofollow" href="http://kdevelop.org" target="_blank">KDevelop</a> é de longe o IDE mais rápido. Infelizmente não conto com a integração com xdebug na versão atual, mas o <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> de desenvolvimento &#8211; que também está empenhado em trazer o Quanta para o KDE4 &#8211; está fazendo grandes esforços para que tenhamos uma IDE completa muito em breve.</li>
<li><strong>Browser</strong>: Todos &#8211; Sim, uso praticamente todas a engines de navegador &#8211; hora uma, hora outra: Rekonq, Opera, Internet Explorer (sim, uso na VM &#8212; o debugger apesar de ser uma carroça ajuda bastante) e o que estou mais usando no momento: <em><strong>Firefox 4</strong></em> (beta) &#8230; e uso o lynx vez ou outra também.</li>
<li><strong>Versionamento: <em>Mercurial</em> e <em>Git</em></strong>: os dois são os mais conhecidos <acronym title="Version Control System">VCS</acronym>s descentralizados. Gosto muito do mercurial pela quantidade de <a class="bbli" href="http://sledge.boo-box.com/list/page/Y2xpZW50ZXNfIyNfYmFyXyMjX3RhZ2dpbmctdG9vbC13cF8jI18xNjAzODk0-60">clientes<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a> e pela facilidade. Mas o Github não é algo a se menosprezar.</li>
<li><strong>Integração contínua: <em>Hudson</em></strong>: sim, a 8ª maravilha do mundo quando o assunto é Desenvolvimento de Software. Fácil de instalar, configurar e usar. Aí nele penduro phpunit, phpcpd, pdepend, phpmd &#8230; e estou para testar o php_codebrowser e o phpadd &#8211; <a title="Página do Hudson - Continuous Integration" rel="nofollow" href="http://hudson-ci.org/" target="_blank">confira o Hudson</a></li>
<li><strong>Gerenciador de projetos: <em>Redmine</em></strong>: é em ruby, eu sei&#8230; mas é 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> bem completa e extensível. Dá um trabalhinho configurar o rails e as dependencias dos plugins que uso, como o Easy Agile. Também se integra a diversos VCSs. Trabalho com <a title="Site do projeto Redmine" rel="nofollow" href="http://www.redmine.org/" target="_blank">ele</a> faz um bom tempo e recomendo.</li>
<li><strong>Banco de Dados: <em>MongoDB</em></strong>: tá, vamos falar do projeto atual só, pois tenho MariaDB e PostgreSQL aqui, além do SQLServer no trabalho. Não dá pra explicar muito &#8230; <a title="Mongo DB" rel="nofollow" href="http://www.mongodb.org/" target="_blank">instale e teste</a>&#8230; você não vai se arrepender.</li>
</ol>
<p>Não precisava falar do PHP né? bom são esses meus 7 itens. Agora passo a bola para:</p>
<ul>
<li><a title="7 itens do Augusto Pascutti" rel="nofollow" href="http://blog.augustopascutti.com/PHP/2010/12/16/meu-ambiente.html" target="_blank">Augusto Pascutti</a></li>
<li><a title="7 itens do Ivo Nascimento" rel="nofollow" href="http://ianntech.com.br/2010/12/18/meu-ambiente-de-trabalho-em-7-itens/" target="_blank">Ivo Nascimento</a></li>
<li><a title="7 itens do Felipe Moura" rel="nofollow" href="http://felipenmoura.org/en/meu-ambiente-de-trabalho-em-7-itens/" target="_blank">Felipe Moura</a></li>
<li><a title="7 itens do Rafael Dohms" rel="nofollow" href="http://blog.rafaeldohms.com.br/2010/12/17/meme-seu-ambiente-de-desenvolvimento-em-7-items" target="_blank">Rafael Dohms</a></li>
<li><a title="7 itens do Elton Minetto" rel="nofollow" href="http://www.eltonminetto.net/meu-ambiente.htm" target="_blank">Elton Minetto</a></li>
</ul>
<p>Assim que os mesmos fizerem seus artigos, os links seguirão para os mesmos.</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "linux";
            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/seu-ambiente-de-trabalho-em-7-itens/feed/</wfw:commentRss>
		<slash:comments>16</slash:comments>
		</item>
		<item>
		<title>JSON &#8211; você não devia ter medo dele</title>
		<link>http://duodra.co/post/json-voce-nao-devia-ter-medo-dele/</link>
		<comments>http://duodra.co/post/json-voce-nao-devia-ter-medo-dele/#comments</comments>
		<pubDate>Thu, 30 Sep 2010 14:30:49 +0000</pubDate>
		<dc:creator>Duodraco</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[javascript]]></category>
		<category><![CDATA[json]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://duodra.co/?p=132</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%2Fjson-voce-nao-devia-ter-medo-dele%2F&title=JSON+-+voc%C3%AA+n%C3%A3o+devia+ter+medo+dele&desc=Ele+te+persegue+h%C3%A1+tempos%3B+est%C3%A1+al%C3%AD%2C+pronto+para+te+matar+facilitar+a+vida...+sim+o+JSON+est%C3%A1+a%C3%AD%2C+h%C3%A1+muito+tempo+para+te+ajudar.+O+JavaScript+Object+Notation+%28ou+JSON%29%C2%A0+segundo+a+wikipedia+%22...&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>Ele te persegue há tempos; está alí, pronto para te matar facilitar a vida&#8230; sim o JSON está aí, há muito tempo para te ajudar. O JavaScript Object Notation (ou JSON)  segundo a wikipedia &#8220;&#8230; é um formato leve para &#8230; <a href="http://duodra.co/post/json-voce-nao-devia-ter-medo-dele/">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%2Fjson-voce-nao-devia-ter-medo-dele%2F&title=JSON+-+voc%C3%AA+n%C3%A3o+devia+ter+medo+dele&desc=Ele+te+persegue+h%C3%A1+tempos%3B+est%C3%A1+al%C3%AD%2C+pronto+para+te+matar+facilitar+a+vida...+sim+o+JSON+est%C3%A1+a%C3%AD%2C+h%C3%A1+muito+tempo+para+te+ajudar.+O+JavaScript+Object+Notation+%28ou+JSON%29%C2%A0+segundo+a+wikipedia+%22...&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>Ele te persegue há tempos; está alí, pronto para te <span style="text-decoration: line-through;">matar</span> facilitar a vida&#8230; sim o JSON está aí, há muito tempo para te ajudar. O JavaScript Object Notation (ou JSON)  segundo a wikipedia &#8220;&#8230; é um formato leve para intercâmbio de dados computacionais. <strong>JSON</strong> é um subconjunto da notação de objeto de JavaScript, mas seu uso não requer Javascript exclusivamente.&#8221;. Tem aplicação desde a manutenção de código javascript até em interface com bancos NoSQL, como o CouchDB e o MongoDB, e mais&#8230; <span id="more-132"></span></p>
<p>JSON é subconjunto do padrão ECMA-262 3ª edição (ou seja, desde Dezembro de 1999). o site json.org foi ao ar em 2002. Três anos depois o Yahoo disponibilizou alguns de seus serviços no formato; o Google um ano depois do concorrente com o GData.</p>
<p>Basicamente o JSON descreve informação. No Javascript você define suas variáveis com Json:</p>
<pre class="brush:js">var _boolean = true;
var _integer = 42;
var _float = 1.54;
var _string = "Esta é uma string";
var _null = null;
var _array = [1,2,3];
var _objeto = {
    "id":1234,
    "nome":"Duodraco",
    "telefones":[5252525,88833322],
    "ativo":true
}</pre>
<p>Sim, os dados escalares também são considerados JSON, afinal os inteiros e strings são objetos para o Javascript, e o JSON é simplesmente a notação. Veja que objetos e arrays podem conter em seus elementos/atributos outros tipos descritos no formato (strings, floats, outros arrays ou objetos, etc&#8230;).</p>
<p>Tendo o domínio do formato, a evolução da sua calvície vai desacelerar (não vai parar, até porque o IE está aí pra isso). Você tem em suas mãos uma ferramenta quase que divina para a organização e legibilidade, nativa e fácil de usar.</p>
<p>É humanamente compreensível e serve muito bem no PHP, seja como arquivo de configuração, transporte de dados ou qualquer outra coisa. Existem as seguintes funções desde o PHP 5.2: <a title="Documentação de json_encode" href="http://php.net/json_encode" target="_blank">json_encode</a> e <a title="Documentação de json_decode" href="http://php.net/json_decode" target="_blank">json_decode</a>, que retornam respectivamente uma string em formato JSON &#8211; dado um valor PHP &#8211; e o outro um valor PHP &#8211; dada uma string JSON. Vale lembrar que o json_decode interpretará o json de maneira estrita, ou seja, nada de atributos do objeto sem aspas, ou objetos com vírgulas a mais.<br />
A função <em>json_encode</em> tem um 2º parâmetro desde o PHP 5.3, que refere-se a opções para a &#8220;tradução&#8221; do valor php para a string json: com JSON_FORCE_OBJECT o retorno será sempre um objeto, caso o valor passado seja um array, por exemplo, e com JSON_HEX_QUOT sua string virá com possíveis aspas nos valores de atributos ou itens do array escapados.</p>
<pre class="brush:php">$obj = array(
'name' =&gt; 'Xpto é melhor que "foo"',
'id' =&gt; 256);
echo json_encode($obj,JSON_HEX_QUOT | JSON_FORCE_OBJECT);
//{"name":"Xpto é melhor que \u0022foo\u0022","id":256}</pre>
<p>JSON é também o formato da resposta que alguns bancos de dados orientados a documento, como MongoDB  e CouchDB, geralmente devolvem para seus clientes.</p>
<p>Só posso dizer: domine o formato, pois ele está aí para ser usado. É simples e rápido. No PHP você não precisa de nada a mais para interpretá-lo. Em aplicações web com HttpRequests que você utiliza XML aberto, prefira o JSON: é muito mais leve.</p>
<p>Não tenha medo!</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "javascript,json,desenvolvimento";
            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/json-voce-nao-devia-ter-medo-dele/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Post sobre Javascript no Ajaxianos</title>
		<link>http://duodra.co/post/post-sobre-javascript-no-ajaxianos/</link>
		<comments>http://duodra.co/post/post-sobre-javascript-no-ajaxianos/#comments</comments>
		<pubDate>Fri, 24 Sep 2010 15:36:03 +0000</pubDate>
		<dc:creator>Duodraco</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[ajaxianos]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://duodra.co/?p=106</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%2Fpost-sobre-javascript-no-ajaxianos%2F&title=Post+sobre+Javascript+no+Ajaxianos&desc=Voc%C3%AA+conhece+o+Ajaxianos+%5Blink%5D%3F+%C3%89+o+blog+iniciado+pelo+Alexandre+Bevilacqua+e+Wender+Lima+sobre+Javascript.+Conte%C3%BAdo+de+primeira+qualidade.%0D%0A%0D%0AEles+me+chamaram+para+blogar+com+eles+l%C3%A1+e+meu+prime&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>Você conhece o Ajaxianos [link]? É o blog iniciado pelo Alexandre Bevilacqua e Wender Lima sobre Javascript. Conteúdo de primeira qualidade. Eles me chamaram para blogar com eles lá e meu primeiro artigo no Ajaxianos acabou de sair do forno: &#8230; <a href="http://duodra.co/post/post-sobre-javascript-no-ajaxianos/">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%2Fpost-sobre-javascript-no-ajaxianos%2F&title=Post+sobre+Javascript+no+Ajaxianos&desc=Voc%C3%AA+conhece+o+Ajaxianos+%5Blink%5D%3F+%C3%89+o+blog+iniciado+pelo+Alexandre+Bevilacqua+e+Wender+Lima+sobre+Javascript.+Conte%C3%BAdo+de+primeira+qualidade.%0D%0A%0D%0AEles+me+chamaram+para+blogar+com+eles+l%C3%A1+e+meu+prime&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>Você conhece o Ajaxianos [<a title="Ajaxianos" href="http://ajaxianos.com.br" target="_blank">link</a>]? É o blog iniciado pelo Alexandre Bevilacqua e Wender Lima sobre Javascript. Conteúdo de primeira qualidade.</p>
<p>Eles me chamaram para blogar com eles lá e meu primeiro artigo no Ajaxianos acabou de sair do forno:<br />
<a title="Permanent Link: Boas Práticas ao desenvolver com Javascript" rel="bookmark" href="http://www.ajaxianos.com.br/2010/09/boas-praticas-ao-desenvolver-com-javascript/" target="_blank">Boas Práticas ao desenvolver com Javascript</a></p>
<p>Confiram!</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "ajaxianos";
            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/post-sobre-javascript-no-ajaxianos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Consumindo um RSS com simplexml</title>
		<link>http://duodra.co/post/consumindo-um-rss-com-simplexml/</link>
		<comments>http://duodra.co/post/consumindo-um-rss-com-simplexml/#comments</comments>
		<pubDate>Fri, 17 Sep 2010 19:30:57 +0000</pubDate>
		<dc:creator>Duodraco</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[cache]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[rss]]></category>
		<category><![CDATA[xml]]></category>

		<guid isPermaLink="false">http://duodra.co/?p=59</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%2Fconsumindo-um-rss-com-simplexml%2F&title=Consumindo+um+RSS+com+simplexml&desc=Essa+semana+precisei+consumir+um+RSS+do+wordpress+%28UTF-8%29%2C+para+utilizar+o+conte%C3%BAdo+em+outra+aplica%C3%A7%C3%A3o+%28ISO-8859-1%29.+Realizei+rapidamente+%28sem+frameworks+ou+firulas%29+e+o+fiz+usando+simplexml+e+um+e&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>Essa semana precisei consumir um RSS do wordpress (UTF-8), para utilizar o conteúdo em outra aplicação (ISO-8859-1). Realizei rapidamente (sem frameworks ou firulas) e o fiz usando simplexml e um esquema de cache simples. O resultado  segue abaixo:O Simplexml é &#8230; <a href="http://duodra.co/post/consumindo-um-rss-com-simplexml/">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%2Fconsumindo-um-rss-com-simplexml%2F&title=Consumindo+um+RSS+com+simplexml&desc=Essa+semana+precisei+consumir+um+RSS+do+wordpress+%28UTF-8%29%2C+para+utilizar+o+conte%C3%BAdo+em+outra+aplica%C3%A7%C3%A3o+%28ISO-8859-1%29.+Realizei+rapidamente+%28sem+frameworks+ou+firulas%29+e+o+fiz+usando+simplexml+e+um+e&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>Essa semana precisei consumir um <abbr title="Really Simple Syndication">RSS</abbr> do wordpress (UTF-8), para utilizar o conteúdo em outra aplicação (ISO-8859-1). Realizei rapidamente (sem frameworks ou firulas) e o fiz usando simplexml e um esquema de cache simples. O resultado  segue abaixo:<span id="more-59"></span>O <a title="Documentação do SimpleXML" href="http://php.net/simplexml" target="_blank">Simplexml</a> é uma das ferramentas embutidas no PHP para manipulação de xml. É leve e rápida, porém não tão robusta como XMLReader/Writer ou o DOM; ela é ideal para manipulação simples, como é o caso de um RSS. Sua interface é bem simples: a partir do nó pai, incluindo-o, todos os nós descendentes são instâncias de SimpleXMLElement. Cada nó filho é um atributo do elemento pai; atributos de nó são acessados como índice alfanumérico (texto) e nós filhos semelhantes são acessados como array, em índices numéricos; dados textuais dos elementos são acessados como texto. Dado o xml:</p>
<pre class="brush:xml">&lt;root&gt;
  &lt;persons&gt;
    &lt;person id="1"&gt;Bianca&lt;/person&gt;
    &lt;person id="2"&gt;Carolina&lt;/person&gt;
  &lt;/persons&gt;
&lt;/root&gt;</pre>
<p>podemos acessar os elementos assim:</p>
<pre class="brush:php">//$xml é uma string com o xml descrito acima
$sxe = simplexml_load_string($xml);
//$sxe é um SimpleXMLElement referente ao &lt;root&gt;
echo $sxe-&gt;persons-&gt;person[0];//Bianca
echo $sxe-&gt;persons-&gt;person[1]['id'];//2</pre>
<p>Bom, voltando ao problema: Armazenar o feed rss localmente em uma aplicação. A lógica seria simples: fiz um cache (para que não fosse feito um request a todo momento para o rss) atualizado de hora em hora. Segue o código:</p>
<pre class="brush:php">$cache = '/path/para/o/cache/';
$file = $cache.'feed-'.date('Y-m-d-H');
$feedurl = 'http://blog.com/feed';
$ns = 'http://purl.org/rss/1.0/modules/content/';
$collection = array();</pre>
<p>Criando variáveis para nosso uso. Em $file teremos algo como /path/para/o/cache/feed-2010-09-17-10. Em $ns guardamos a url do namespace de content do nosso XML</p>
<pre class="brush:php">if(!file_exists($file)){
  file_put_contents(
    $file,file_get_contents($feedurl)
  );
}</pre>
<p>Crio o cache do RSS</p>
<pre class="brush:php">$xml = simplexml_load_file($file);
if(!$xml){ exit();}</pre>
<p>Leitura do RSS no SimpleXML</p>
<pre class="brush:php">$getId = function($link){
  return str_replace(
    'p=','',array_pop(explode('?',$link))
  );
};
$replace = function($string){
  if (!preg_match("/([\200-\237])/", $string)
    &amp;&amp; !preg_match("/([\241-\377])/", $string)){
    return $string;
  }
  $string = preg_replace(
    "/([\340-\357])([\200-\277])([\200-\277])/e",
    "'&amp;#'.((ord('\\1')-224)*4096 + (ord('\\2')-128)*64".
      "+ (ord('\\3')-128)).';'",
    $string);
  $string = preg_replace(
    "/([\300-\337])([\200-\277])/e",
    "'&amp;#'.((ord('\\1')-192)*64+(ord('\\2')-128)).';'",
    $string);
  return $string;
};</pre>
<p>Funções utilizadas (5.3 Style <img src='http://duodra.co/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> ). A primeira só faz o trabalho de pegar o id do post, enquanto que a segunda funciona como um adendo a htmlentities, que possui suporte a UTF-8, porém convertendo caracteres de mais de 2 bytes, os quais o wordpress usa e abusa, como aspas de início e fim.</p>
<pre class="brush:php">foreach($xml-&gt;channel-&gt;item as $post){
  $id = $getId($post-&gt;guid);
  $content = $post-&gt;children($ns);
  $collection[$id] = new stdClass;
  $collection[$id]-&gt;id = $id;
  $collection[$id]-&gt;title = $replace(
    (string)$post-&gt;title
  );
  $collection[$id]-&gt;description = $replace(
    (string)$post-&gt;description
  );
  $collection[$id]-&gt;content = $replace(
    (string) $content-&gt;encoded
  );
  if(!file_exists($cache.'feeds/'.$id)){
    file_put_contents(
      $cache.'feeds/'.$id,
      base64_encode(serialize($collection[$id]))
    );
  }
}</pre>
<p>Bom, creio que o código acima não é difícil de compreender. A lógica é simples:</p>
<ol>
<li>crio uma cópia do rss localmente no 1º request de cada hora</li>
<li>carrego esse arquivo em um simplexml</li>
<li>populo um objeto stdClass com os dados do post (só incluí atributos que utilizei, mas poderíamos usar qualquer um)</li>
<li>e faço um &#8220;cache&#8221; de cada objeto, serializado.</li>
</ol>
<p>Por que usar um stdClass e não o SimpleXMLElement para o cache direto? não é serializável, pelo menos não no PHP5.3</p>
<p>Por que não fazer de outra maneira? porque eu não quis. Era uma funcionalidade pontual, e (ainda) não estou numa estrutura que me facilite as coisas, então scripts estruturados ainda são comuns por aqui.</p>
<p>Ah Duodraco, boa sacada&#8230; posso por isso em meu projeto? NÃO. Esta era uma prova de conceito, e ela por sí só não trata uma série de questões, como segurança e performance, além de estar totalmente fora de qualquer padrão.</p>
<p>Por que então diabos você publicou isso? Um: porque quis <img src='http://duodra.co/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> ; Dois: isoladamente temos algumas soluções para problemas frequentes:</p>
<ul>
<li>cache simples: existem aplicações por aí que podem usar cache, e ainda demoram valiosos segundos em páginas com pouca atualização, que já ganhariam em performance com algo assim; Lógico que se você quer uma solução efetiva de cache, procure por ferramentas como o <a title="Site do Memcached" href="http://memcached.org/" target="_blank">Memcached</a>.</li>
<li>conversão de caracteres UTF-8: Os RSS gerados pelo wordpress são por padrão UTF-8 mas utilizam caracteres de mais de 2bytes que o htmlentities não interpreta. A função que chamei de $replace mapeia boa parte desses caracteres; ela foi obtida nos comentários da documentação do PHP e adaptada para usar preg_replace</li>
<li>Parseamento com SimpleXML: nesse exemplo usamos inclusive a leitura dos namespaces, mostrando a facilidade do uso dessa ferramenta</li>
<li>Serialização de objetos: apesar do gargalo ser o IO no sistema de arquivos, a operação de leitura ficou bem rápida, pois quando recuperamos o objeto, não faço nenhum tratamento, ele está pronto para uso. Podemos utilizar, para o caso de armazenamento paralelo ao principal do sistema podemos usar o filesystem como no exemplo, SQLite, etc.</li>
</ul>
<p>Então, recomendo que NÃO use essa solução diretamente. Utilize isso para estudar os pontos-chave e estude individualmente os mecanismos utilizados. Em breve farei posts isolados sobre SimpleXML, Serialização, Cache e Encoding e Expressões Regulares.</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "xml";
            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/consumindo-um-rss-com-simplexml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Meu Ambiente de Trabalho</title>
		<link>http://duodra.co/post/meu-ambiente-de-trabalho/</link>
		<comments>http://duodra.co/post/meu-ambiente-de-trabalho/#comments</comments>
		<pubDate>Sat, 23 Jan 2010 12:54:18 +0000</pubDate>
		<dc:creator>Duodraco</dc:creator>
				<category><![CDATA[desenvolvimento]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://duodraco.dominiotemporario.com/?p=11</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%2Fmeu-ambiente-de-trabalho%2F&title=Meu+Ambiente+de+Trabalho&desc=Cerca+de+um+ano+atr%C3%A1s+eu+fiz+um+post+sobre+ambiente+de+desenvolvimento.+Dando+uma+olhada%2C+mudou+muito+meu+ambiente%2C+desde+hardware+a+IDE+e+Navegador.%0D%0A%0D%0AQuando+desenvolvemos+sistemas+%C3%A9+imprescind%C3%ADv&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>Cerca de um ano atrás eu fiz um post sobre ambiente de desenvolvimento. Dando uma olhada, mudou muito meu ambiente, desde hardware a IDE e Navegador. Quando desenvolvemos sistemas é imprescindível que tenhamos um bom ambiente (hardware + software) para &#8230; <a href="http://duodra.co/post/meu-ambiente-de-trabalho/">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%2Fmeu-ambiente-de-trabalho%2F&title=Meu+Ambiente+de+Trabalho&desc=Cerca+de+um+ano+atr%C3%A1s+eu+fiz+um+post+sobre+ambiente+de+desenvolvimento.+Dando+uma+olhada%2C+mudou+muito+meu+ambiente%2C+desde+hardware+a+IDE+e+Navegador.%0D%0A%0D%0AQuando+desenvolvemos+sistemas+%C3%A9+imprescind%C3%ADv&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>Cerca de um ano atrás eu fiz um post sobre <a class="bbli" href="http://sledge.boo-box.com/list/page/YW1iaWVudGVfIyNfYmFyXyMjX3RhZ2dpbmctdG9vbC13cF8jI18xNjAzODk0-60">ambiente<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a> de desenvolvimento. Dando uma olhada, mudou muito meu ambiente, desde hardware a IDE e Navegador.</p>
<p>Quando desenvolvemos sistemas é imprescindível que tenhamos um bom ambiente (hardware + software) para que nosso trabalho flua da melhor maneira possível. Sistema Operacional, Linguagem, IDE e/ou Editores, etc. A seguir as minhas escolhas para o trabalho pessoal.</p>
<p><img class="size-full wp-image-30   alignnone" style="padding: 0pt; margin: 0px; border: 0pt none;" title="desktop do duodraco" src="http://duodra.co/wp-content/uploads/2010/01/snapshot22.png" alt="desktop do duodraco" width="480" height="300" /></p>
<p style="text-align: center;">
<p><span id="more-11"></span></p>
<p><strong>Hardware</strong><br />
Um bom hardware vai evitar que hajam problemas, como engasgos de processamento ou limitações idiotas como falta de memória para executar alguma tarefa, tirando sua atenção quando você tem que ficar focado em desenvolver direito.<br />
<a class="bbli" href="http://sledge.boo-box.com/list/page/Tm90ZWJvb2tfIyNfYmFyXyMjX3RhZ2dpbmctdG9vbC13cF8jI18xNjAzODk0-60">Notebook<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a> HP Pavillion, Turion X2 2Mhz, com 4GB de Ram, HD sata de 250GB + 1HD externo eSata 160GB</p>
<p><strong>Sistema Operacional<br />
</strong>Minha opção pelo Linux/<a title="Opensuse" href="http://opensuse.org" target="_blank">Opensuse</a>, em substituição ao (k)ubuntu, foi basicamente por conta do <a title="KDE" href="http://kde.org" target="_blank">KDE</a>: O Opensuse é para o KDE, o que o Ubuntu é para o Gnome: a distribuição que melhor veste o ambiente gráfico. O Opensuse possui o Yast, uma excelente central de gerenciamento do <a class="bbli" href="http://sledge.boo-box.com/list/page/c2lzdGVtYV8jI19iYXJfIyNfdGFnZ2luZy10b29sLXdwXyMjXzE2MDM4OTQ=-60">sistema<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a>. E o zypper (gestor de pacotes e repositórios RPM) é bem espertinho.<br />
Opensuse <span style="text-decoration: line-through;">11.2</span> 11.3 64bits, rodando KDE <span style="text-decoration: line-through;">4.4</span> 4.5+<span style="text-decoration: line-through;"><br />
</span></p>
<p><strong>Linguagem de Programação</strong><br />
O Pessoal de outras linguagens me pergunta: &#8216;porque diabos você abraça tanto o <a title="PHP Hypertext Preprocessor" href="http://php.net" target="_blank">PHP</a>?&#8217; É hoje a plataforma que domino, que me deu o pouco que tenho em bens materiais e o muito que tenho em conhecimento, que me levou a ser palestrante em diversos eventos, que me fez conhecer pessoas extraordinárias, o <a title="Grupo de Usuários PHP de São Paulo" href="http://phpsp.org.br" target="_blank">PHPSP</a>, e tanta coisa que se fosse agradecer precisaria de um post dedicado a isso (ta ái uma boa idéia). É uma linguagem madura, com gente experiente (infelizmente ainda não é maioria, mas estamos trabalhando pra isso), e tem excelente documentação e <a class="bbli" href="http://sledge.boo-box.com/list/page/cGVyZm9ybWFuY2VfIyNfYmFyXyMjX3RhZ2dpbmctdG9vbC13cF8jI18xNjAzODk0-64">performance<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a>.<br />
PHP (Duh!) 5.3+, com um pack bom de extensões que serão citados em outro post</p>
<p><strong>Banco de Dados<br />
</strong>A opção pelo <a title="MySQL" href="http://mysql.com" target="_blank">MySQL</a> é pela maioria dos projetos, não por opção de qualidade. O <a title="PostgreSQL" href="http://postgresql.org" target="_blank">PostgreSQL</a> oferece um ambiente mais completo e estável, porém (ainda) é difícil achar bons hosts com suporte a ele&#8230; ou se paga por um servidor dedicado ou na nuvem.<br />
Mysql 5.1 , PostgreSQL 8.4 e SQLite3</p>
<p><strong>Controle de Versão</strong><br />
Dentre as diversas opções que temos hoje para este trabalho, se destacam pela liberdade que oferecem as de controle distribuído. Git, Bazaar &#8230; mas minha opção é pela simplicidade e quantidade e <a class="bbli" href="http://sledge.boo-box.com/list/page/cXVhbGlkYWRlXyMjX2Jhcl8jI190YWdnaW5nLXRvb2wtd3BfIyNfMTYwMzg5NA==-64">qualidade<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a> de clientes disponíveis.<br />
<a title="Mercurial" href="http://http://mercurial.selenic.com/" target="_blank">Mercurial</a></p>
<p><strong>Browser</strong><br />
Estou na cruel dúvida: Chrome ou Opera? enquanto não decido vou brincando com os disponíveis. O firefox perdeu seu posto de navegador padrão: lento e pesado (boa parte é por executá-lo no KDE (que tem que carregar as libs do GTK para utilizá-lo)) fica lá no desktop pra fazer prova-real em testes de interface e usar o firebug; aliás, o firebug foi uma das coisas que me segurou no firefox tanto tempo.. o inspector do webkit (disponível no chrome, rekonq, midori, etc.) e o dragonfly do opera o substitui bem.<br />
Principal: Google Chrome(5.0+) e Opera (10.60+)<br />
Secundário: Firefox e Rekonq/Konqueror<br />
Outros: IE6/7 via wine e Midori</p>
<p><strong>IDE</strong><br />
Bom, já falei no outro artigo o porque da minha escolha do <a title="Netbeans" href="http://netbeans.org" target="_blank">Netbeans</a>. Roda sem problemas em qualquer plataforma&#8230; quando você se acostuma com os atalhos de teclado então&#8230; é uma IDE que sem dúvida te poupa muito trabalho.<br />
O <a title="Kdevelop" href="http://kdevelop.org" target="_blank">Kdevelop</a> por sua vez traz as melhorias do framework Qt4 em uma plataforma única: rápida, integrada ao KDE, e que promete (e já atende) muito.<br />
Netbeans 6.9+ com suporte a PHP<br />
Testando o Kdevelop 4</p>
<p><strong>Modeladores</strong><br />
Quem, além de codificar, precisa ou quer realizar análise não dispensa <a class="bbli" href="http://sledge.boo-box.com/list/page/YXBsaWNhdGl2b3NfIyNfYmFyXyMjX3RhZ2dpbmctdG9vbC13cF8jI18xNjAzODk0-64">aplicativos<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a> para confecção de modelos ER e de diagramas UML. O ideal é que você tenha nessas aplicações para ter agilidade na confecção do documento, e que tenha boas opções de exportação, e que o resultado seja legível.<br />
<a title="Umbrello" href="http://uml.sourceforge.net/" target="_blank">Umbrello</a> e Netbeans (via plugin) para UML<br />
<a title="Mysql Workbench" href="http://wb.mysql.com/" target="_blank">Mysql Workbench</a> para ER</p>
<p><strong>MindMapping</strong><br />
Sim, uma ferramenta surpreendente quando bem usada. segundo a wikipedia o mapa mental é &#8220;&#8230;voltado para a gestão de  informações, de conhecimento e de capital intelectual; para a compreensão e solução de problemas;  na memorização e aprendizado; na criação de  manuais, livros e palestras; como ferramenta de <em>brainstorming</em> (tempestade de ideias); e no auxílio da gestão estratégica de uma  empresa ou <a class="bbli" href="http://sledge.boo-box.com/list/page/bmVnJUYzY2lvXyMjX2Jhcl8jI190YWdnaW5nLXRvb2wtd3BfIyNfMTYwMzg5NA==-64">negócio<img class="bbic" src="http://boo-box.com/bbli" alt="[bb]" /></a>.&#8221;. Há quem o cite como ferramenta ágil de documentação. O XMind é uma opção de fácil utilização e multiplataforma.<br />
<a title="XMind" href="http://www.xmind.net/" target="_blank">XMind</a></p>
<p>Bom pessoal, resumidamente é isso. Deixem suas opções nos comentários, inclusive se forem usuários de outras plataformas.</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "php";
            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/meu-ambiente-de-trabalho/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>SimpleXML</title>
		<link>http://duodra.co/post/simplexml/</link>
		<comments>http://duodra.co/post/simplexml/#comments</comments>
		<pubDate>Mon, 25 Jun 2007 01:08:48 +0000</pubDate>
		<dc:creator>Duodraco</dc:creator>
				<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://duodraco.wordpress.com/2007/06/24/simplexml/</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%2Fsimplexml%2F&title=SimpleXML&desc=XML+%C3%A9+uma+linguagem+de+nota%C3%A7%C3%A3o%2C+baseada+em+tags%2C+para+mantermos+informa%C3%A7%C3%A3o+de+maneira+uniforme%2C+flex%C3%ADvel%2C+organizada+e+leg%C3%ADvel.+Simples+e+descomplicada+%C3%A9+o+formato+ideal+para+troca+de+informa%C3&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>XML é uma linguagem de notação, baseada em tags, para mantermos informação de maneira uniforme, flexível, organizada e legível. Simples e descomplicada é o formato ideal para troca de informação entre diferentes sistemas. Exemplos de uso: webservices, RSS, Podcasts, Configuração &#8230; <a href="http://duodra.co/post/simplexml/">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%2Fsimplexml%2F&title=SimpleXML&desc=XML+%C3%A9+uma+linguagem+de+nota%C3%A7%C3%A3o%2C+baseada+em+tags%2C+para+mantermos+informa%C3%A7%C3%A3o+de+maneira+uniforme%2C+flex%C3%ADvel%2C+organizada+e+leg%C3%ADvel.+Simples+e+descomplicada+%C3%A9+o+formato+ideal+para+troca+de+informa%C3&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>XML é uma linguagem de notação, baseada em tags, para mantermos informação de maneira uniforme, flexível, organizada e legível. Simples e descomplicada é o formato ideal para troca de informação entre diferentes sistemas. Exemplos de uso: webservices, RSS, Podcasts, Configuração de sistemas, arquivos de troca de informação simples, etc…</p>
<p class="entry"><a title="SimpleXML" href="http://www.php.net/simplexml">SimpleXML</a> é uma funcionalidade embutida no PHP5, que visa trabalhar, de maneira simples, XML no PHP. Trabalhando numa estrutura de ojetos, é bem fácil trabalhar com ele:<br />
Para começar vamos a um pouco de código:</p>
<pre class="brush:php">$sxe = simplexml_load_file(’teste.xml’);</pre>
<p>Supondo que <em>teste.xml</em> Seja um xml válido, <strong>$sxe</strong> receberá uma instância de SimpleXMLElement, referente ao nó raiz do xml; caso contrario receberá false.</p>
<p>Você pode adionar elementos com <em>addChild</em>, e attributos com <em>addAttribute</em>, como a seguir:</p>
<pre class="brush:php">$ne = $sxe-&gt;addChild(’novo_elemento’);
$ne-&gt;addAttribute(’novo_atributo’,'valor_do_novo_atributo’);</pre>
<p>Note que addChild retorna uma referência ao novo elemento criado.</p>
<p>A informação no SimpleXML é editada facilmente:</p>
<pre class="brush:php">$sxe-&gt;elemento[0]-&gt;descendente = ‘dado textual do descendente’;
$sxe-&gt;elemento[0][’atributo_do_elemento’] = ‘novo valor do atributo’;</pre>
<p>Os atributos de SimpleXMLElement são os elementos descendentes da tag raiz do xml, respeitando sua hierarquia. Esses elementos podem ser acessados via Array de índíce numérico nos atributos do objeto. Agora falando dos atributos do xml: estes são aceesados por arrays de índice textual.<br />
Para exportar as edições feitas para o xml, usa-se o método <em>asXML</em>:</p>
<pre class="brush:php">$sxe-&gt;asXML();</pre>
<p>Simples não? O SimpleXML ainda permite importação de Elementos DOM do php, além de pesquisas com XPath. Só peca por não conte métodos de remoção de elementos.<br />
SimpleXML foi tema de minha apresentação na última PHP Conference Brasil ‘06. Você pode ver a apresentação em <a title="Apresentação SimpleXML - PHPConf ‘07" href="http://duodra.co/wp-content/uploads/2007/06/simplexmlphpconf.pdf">Apresentação SimpleXML &#8211; PHPConf ‘07</a><a title="clicando aqui" href="http://duodra.co/SimpleXML.PHPConf.pdf" target="_blank"> </a></p>
]]></content:encoded>
			<wfw:commentRss>http://duodra.co/post/simplexml/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>__autoload()::Santa função</title>
		<link>http://duodra.co/post/__autoloadsanta-funcao/</link>
		<comments>http://duodra.co/post/__autoloadsanta-funcao/#comments</comments>
		<pubDate>Mon, 25 Jun 2007 01:02:13 +0000</pubDate>
		<dc:creator>Duodraco</dc:creator>
				<category><![CDATA[dicas]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://duodraco.wordpress.com/2007/06/24/__autoloadsanta-funcao/</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%2F__autoloadsanta-funcao%2F&title=__autoload%28%29%3A%3ASanta+fun%C3%A7%C3%A3o&desc=Quem+trabalha+com+PHP+sabe+o+parto+que+%C3%A9+ficar+incluindo+os+arquivos+com+as+classes+da+sua+aplica%C3%A7%C3%A3o%2C+que+se+n%C3%A3o+est%C3%A3o+bem+estruturadas+em+pastas%2Fdiret%C3%B3rios%2Fpacotes+torna-se+tudo+uma+bagun%C3%A7a.+S&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>Quem trabalha com PHP sabe o parto que é ficar incluindo os arquivos com as classes da sua aplicação, que se não estão bem estruturadas em pastas/diretórios/pacotes torna-se tudo uma bagunça. Se você trabalha centralizando as requisições em um arquivo &#8230; <a href="http://duodra.co/post/__autoloadsanta-funcao/">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%2F__autoloadsanta-funcao%2F&title=__autoload%28%29%3A%3ASanta+fun%C3%A7%C3%A3o&desc=Quem+trabalha+com+PHP+sabe+o+parto+que+%C3%A9+ficar+incluindo+os+arquivos+com+as+classes+da+sua+aplica%C3%A7%C3%A3o%2C+que+se+n%C3%A3o+est%C3%A3o+bem+estruturadas+em+pastas%2Fdiret%C3%B3rios%2Fpacotes+torna-se+tudo+uma+bagun%C3%A7a.+S&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 class="entry">Quem trabalha com PHP sabe o parto que é ficar incluindo os arquivos com as classes da sua aplicação, que se não estão bem estruturadas em pastas/diretórios/pacotes torna-se tudo uma bagunça. Se você trabalha centralizando as requisições em um arquivo para ai rodar os diferentes scripts dos seu projeto e não quer ficar incluindo todas os arquivos de classes em cada programa que faz eis a solução: <a href="http://br2.php.net/__autoload">__autoload()</a>. Segue a descrição do PHP.net para esta belezura:</p>
<p><em> Muitos desenvolvedores ao desenvolver aplicações orientadas a objeto criam um arquivo PHP para cada definição de classe. Um dos maiores contratempos é ter de escrever uma longa lista de includes no início de cada script(um include para cada classe necessária).</em></p>
<p><em>Com PHP 5 isso não é mais necessário. Você pode definir uma função __autoload que é automaticamente chamada no caso de você tentar usar uma classe que ainda não foi definida. Ao chamar essa função o ’scripting engine’ tem uma última chance para carregar a classe antes que o PHP falhe com erro. </em></p>
<p>Digamos que você tenha um arquivo “index.php”. Onde voce faria:(lógico, supondo que suas classes estejam em “/classes/”)</p>
<pre class="brush:php">include_once(”classes/User.class.php”);
include_once(”classes/Store.class.php”);
include_once(”classes/Book.class.php”);
$oUser = new User();
$oStore = new Store();
$oBook = new Book();</pre>
<p>Com o autoload você faz assim:</p>
<pre class="brush:php">function __autoload($class_name) {
require_once(”classes/”. $class_name . “.class.php”;
}
$oUser = new User();
$oStore = new Store();
$oBook = new Book();</pre>
<p>E todos seus objetos serão instanciados como se com o include/require no script.</p>
<p>Vamos além… sou um cara muito preguiçoso, e tenho classes em 3 pastas: “domain”,”engine” e “util”:</p>
<pre class="brush:php">$sep = PATH_SEPARATOR
set_include_path(get_include_path() . “$sep./domain/$sep./engine/$sep./util/”);
function __autoload($className){
include($className . “class.php”);
}
$oUser = new User();
$oStore = new Store();
$oBook = new Book();
</pre>
<p>Viu como é bom ser preguiçoso? até a linguagem apóia! Lógico que é muito bom ter um controle de “o que é incluído quando”, mas às vezes temos que utilizar certas coisas do tipo pra facilitar nossa vida.</p>
]]></content:encoded>
			<wfw:commentRss>http://duodra.co/post/__autoloadsanta-funcao/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>PHP &#8211; Começando</title>
		<link>http://duodra.co/post/php-comecando/</link>
		<comments>http://duodra.co/post/php-comecando/#comments</comments>
		<pubDate>Mon, 25 Jun 2007 01:00:32 +0000</pubDate>
		<dc:creator>Duodraco</dc:creator>
				<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://duodraco.wordpress.com/2007/06/24/php-comecando/</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-comecando%2F&title=PHP+-+Come%C3%A7ando&desc=PHP+-+Hist%C3%B3ria%3A+l%C3%A1+pros+idos+de+1995%2C+Rasmus+Lerdorf+criou+um+conjunto+de+funcionalidades+para+seus+projetos+que+chamou+de+Personal+Home+Pages.+A+coisa+evoluiu%2C+chegando+ao+%E2%80%9CPHP2%E2%80%B3.%0D%0AAlgum+tempo+&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>PHP &#8211; História: lá pros idos de 1995, Rasmus Lerdorf criou um conjunto de funcionalidades para seus projetos que chamou de Personal Home Pages. A coisa evoluiu, chegando ao “PHP2″. Algum tempo depois Zeev Zuraski e Andi Gutmans abraçaram o &#8230; <a href="http://duodra.co/post/php-comecando/">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-comecando%2F&title=PHP+-+Come%C3%A7ando&desc=PHP+-+Hist%C3%B3ria%3A+l%C3%A1+pros+idos+de+1995%2C+Rasmus+Lerdorf+criou+um+conjunto+de+funcionalidades+para+seus+projetos+que+chamou+de+Personal+Home+Pages.+A+coisa+evoluiu%2C+chegando+ao+%E2%80%9CPHP2%E2%80%B3.%0D%0AAlgum+tempo+&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><strong>PHP &#8211; História</strong>: lá pros idos de 1995, Rasmus Lerdorf criou um conjunto de funcionalidades para seus projetos que chamou de Personal Home Pages. A coisa evoluiu, chegando ao “PHP2″.<br />
Algum tempo depois Zeev Zuraski e Andi Gutmans abraçaram o projeto: criaram uma empresa para cuidar profissionamente do PHP, a Zend, e refizeram a base da linguagem, a agora Zend Engine; o significado de PHP também mudou: <em>PHP Hypertext Preprocessor</em>. Lançaram o PHP3, que rapidamente estourou como linguagem de programação para a web. Isto evoului e chegamos ao PHP4 com significativas mudanças na maneira como o PHP trabalha com a Zend Engine.<br />
Em 2005 foi lançada a versão 5 da linguagem, que trouxe a Orientação a Objetos como maior destaque na evolução. Hoje o PHP é a linguagem mais utilizada na internet, com grandes comunidades e “seguidores”, inclusive este que vos escreve.</p>
<p>Bom, o que precisamos então para utilizar o PHP como linguagem de programação? vamos à receita de bolo:</p>
<ul>
<li>Servidor Web</li>
<li>PHP</li>
<li>Browser</li>
</ul>
<p>Só explicando os itens: <em>Servidor Web</em> Software que irá “servir” arquivos sob requisições do protocolo de internet (<em>HTTP</em>); dentre os mais comuns estão o <a href="http://httpd.apache.org/">Apache</a>, IIS, Xitami, etc. O PHP será executado no servidor assim que este receber uma requisição, tratando-a e devolvendo ao navegador. O procedimento de instalação não é o foco deste artigo, porém não é nada do outro mundo.</p>
<p>Supondo que você já tenha seu servidor web rodando, você terá uma pasta que será a Raiz, ou seja, de onde o servidor irá começar a buscar arquivos (algo como o “C:/” para o windows). Esta pasta no windows pode ser c:\inetpub\wwwroot\ para o IIS ou c:\htdocs no caso do apache; no linux as distribuições baseadas em Debian geralmente criam por padrão a \var\www para este propósito<br />
Para se criar um pequeno programa em PHP, crie um arquivo novo com o nome de “artigo.php” nesta pasta raiz. Abra-o e insira o seguinte código:</p>
<p><code>&lt;?<br />
echo “Olha só, escrevi no navegador”;<br />
?&gt;</code></p>
<p>Abra seu navegador, entre no endereço “http://localhost/artigo.php” [não esqueça o http://] e <em>voilá</em></p>
<p>Concluindo: este artigo foi só uma apresentação rápida sobre o PHP, e como rodar um script simples. Em outro artigo explico como se começa a programar em PHP. Duvidas? a parte de comentários está ai pra isso</p>
<!-- boo-widget start -->
          <script type="text/javascript">
            bb_keywords = "php";
            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/php-comecando/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

