<?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>Klaus Paiva &#187; PHP</title>
	<atom:link href="http://blog.klaus.pro.br/tags/php/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.klaus.pro.br</link>
	<description>Idéias e desventuras de Klaus Paiva</description>
	<lastBuildDate>Wed, 08 Sep 2010 19:15:55 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0.1</generator>
		<item>
		<title>Novos Ventos S.A.</title>
		<link>http://blog.klaus.pro.br/2010/ler/novos-ventos/index.html</link>
		<comments>http://blog.klaus.pro.br/2010/ler/novos-ventos/index.html#comments</comments>
		<pubDate>Wed, 08 Sep 2010 19:15:55 +0000</pubDate>
		<dc:creator>Klaus Paiva</dc:creator>
				<category><![CDATA[Textos]]></category>
		<category><![CDATA[Carreira]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[UOL]]></category>
		<category><![CDATA[Yahoo!]]></category>

		<guid isPermaLink="false">http://blog.klaus.pro.br/?p=450</guid>
		<description><![CDATA[Bom, estou aqui pra comunicar uma mudança recente em minha vida. OK, essa mudança já ocorreu há alguns meses atrás mas resolvi comentá-la aqui só agora. Após 5 anos de UOL, entendi que era necessário dar novos rumos a minha carreira profissional e aceitei uma oportunidade para fazer parte do Yahoo!. Estou bastante feliz com [...]]]></description>
			<content:encoded><![CDATA[<p>Bom, estou aqui pra comunicar uma mudança recente em minha vida. <em>OK, essa mudança já ocorreu há alguns meses atrás mas resolvi comentá-la aqui só agora.</em> <img src='http://blog.klaus.pro.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Após 5 anos de <strong>UOL</strong>, entendi que era necessário dar novos rumos a minha carreira profissional e aceitei uma oportunidade para fazer parte do <strong style="color: purple;">Yahoo!</strong>.</p>
<p>Estou bastante feliz com a mudança, estou tendo diversas novas oportunidades de aprendizado e crescimento (muito <strong>PHP</strong>, #cool), além de poder aprimorar definitivamente o inglês.</p>
<p>Claro que uma mudança dessas nem sempre é fácil, foi uma decisão difícil mas bem pensada, e tenho certeza que o <strong>UOL</strong> foi uma parte importante da minha vida profissional, onde tive a oportunidade de fazer diversos amigos que certamente lembrarei por toda a vida.</p>
<p>Bom, assim sendo, que uma nova fase da minha vida se inicie, agora no <strong style="color: purple;">Yahoo!</strong>. <img src='http://blog.klaus.pro.br/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.klaus.pro.br/2010/ler/novos-ventos/index.html/feed</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Comet? Reverse Ajax? Ajax 2.0? Como assim?</title>
		<link>http://blog.klaus.pro.br/2007/ler/comet-reverse-ajax-como-assim/index.html</link>
		<comments>http://blog.klaus.pro.br/2007/ler/comet-reverse-ajax-como-assim/index.html#comments</comments>
		<pubDate>Wed, 31 Oct 2007 19:45:56 +0000</pubDate>
		<dc:creator>Klaus Paiva</dc:creator>
				<category><![CDATA[Textos]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[Comet]]></category>
		<category><![CDATA[Gmail]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://wp.blog.klaus.pro.br/2007/ler/comet-reverse-ajax-como-assim/index.html</guid>
		<description><![CDATA[Hoje, um colega aqui do trabalho me indicou um post que fala sobre as otimizações de Javascript do Gmail. Porém, o que eu achei mais interessante foi seguir alguns dos links e encontrar o nome para uma técnica que eu já conhecia, mas que agora vi documentada e explicada. Trata-se do Comet ou Reverse Ajax. [...]]]></description>
			<content:encoded><![CDATA[<p>Hoje, um colega aqui do trabalho me indicou um <em>post</em> que fala sobre as <a href="http://blogoscoped.com/archive/2007-10-31-n76.html">otimizações de Javascript</a> do <a href="http://mail.google.com/">Gmail</a>.</p>
<p>Porém, o que eu achei mais interessante foi seguir alguns dos <em>links</em> e encontrar o nome para uma técnica que eu já conhecia, mas que agora vi documentada e explicada. Trata-se do <a href="http://en.wikipedia.org/wiki/Comet_%28programming%29"><strong>Comet</strong></a> ou <strong>Reverse Ajax</strong>.</p>
<h3 class="subtitles">Um novo nome para o Ajax comum?</h3>
<p>O segundo nome, <strong>Reverse Ajax</strong>, pode facilitar o entendimento da técnica. Primeiro, vamos lembrar resumidamente como funciona um <em>Ajax</em> tradicional.</p>
<p>No <em>Ajax</em> comum, o cliente (o navegador) dispara uma requisição e o servidor responde em seguida, daí o cliente processa essa resposta e exibe da forma adequada ao usuário.</p>
<p>Um exemplo prático: imagine que no seu <em>webmail</em> favorito exista um endereço que retorna quando há mensagens novas na sua caixa de entrada.</p>
<p>Se você fizer essa requisição a cada meio segundo, seu servidor irá receber muitas requisições apenas para dizer: &#8220;hey, não tem nada de novo!&#8221;.</p>
<p>Seria interessante que o servidor pudesse responder a requisição somente quando houvesse alguma mensagem nova. É aí que o <em>Comet</em> (ou <em>Reverse Ajax</em>) entra. <img src='http://blog.klaus.pro.br/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<h3 class="subtitles">Comet e o poder de resposta do servidor</h3>
<p>Tudo bem, muito bacana que o servidor possa responder quando houver algo novo mas&#8230; Como fazer implementar isso de verdade?</p>
<p>Este artigo demonstra <a href="http://www.zeitoun.net/index.php?2007/06/22/46-how-to-implement-comet-with-php">duas formas de se implementar o <strong>Comet</strong> com PHP</a>. Como PHP é uma linguagem bem conhecida, fica fácil entender os exemplos. Vou comentar aqui apenas o segundo exemplo, feito usando o objeto tradicional de <em>Ajax</em>: <em>XMLHttpRequest</em>.</p>
<p>Se você analisar o segundo exemplo, verá que a técnica basicamente consiste em manter a conexão ativa até uma resposta ser gerada (ou até um limite máximo de tempo, claro).</p>
<p>Isso pode ser feito, na maioria das linguagens, através de um método <a href="http://br2.php.net/sleep"><em>sleep</em></a> ou similar.</p>
<h3 class="subtitles">Resumindo</h3>
<p>Como você pode ver, implementar <strong>Comet</strong> não é algo novo, mas com certeza é uma técnica bastante interessante e possui aplicações valiosas. Se você já usou em algum lugar, deixe seu comentário com a sua experiência! <img src='http://blog.klaus.pro.br/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
<dl class="references">
<dt>Referências</dt>
<dd> <a href="http://en.wikipedia.org/wiki/Comet_%28programming%29">Comet</a> ou <strong>Reverse Ajax</strong> </dd>
<dd> <a href="http://blogoscoped.com/archive/2007-10-31-n76.html">Otimizações de Javascript no Gmail</a> </dd>
<dd> <a href="http://mail.google.com/">Gmail</a> </dd>
<dd> <a href="http://www.zeitoun.net/index.php?2007/06/22/46-how-to-implement-comet-with-php">Implementando Comet com PHP</a> </dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://blog.klaus.pro.br/2007/ler/comet-reverse-ajax-como-assim/index.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Ferramentas e sites úteis para desenvolvimento web</title>
		<link>http://blog.klaus.pro.br/2007/ler/lista-de-links-sobre-ajax-javascript-css-ruby-on-rails-php-editores-2/index.html</link>
		<comments>http://blog.klaus.pro.br/2007/ler/lista-de-links-sobre-ajax-javascript-css-ruby-on-rails-php-editores-2/index.html#comments</comments>
		<pubDate>Thu, 18 Oct 2007 20:51:10 +0000</pubDate>
		<dc:creator>Klaus Paiva</dc:creator>
				<category><![CDATA[Textos]]></category>
		<category><![CDATA[Cheat Sheets]]></category>
		<category><![CDATA[CSS]]></category>
		<category><![CDATA[JavaScript]]></category>
		<category><![CDATA[Links]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://wp.blog.klaus.pro.br/?p=57</guid>
		<description><![CDATA[O Mashable divulgou uma lista bastante completa, com mais de 250 links, sobre Ajax, Javascript, CSS, XHTML, Ruby on Rails, Python, PHP, Java, SQL e ainda mais. Desta lista, vou destacar os endereços que uso regularmente e alguns outros endereços que considero também boas ferramentas ou boas fontes de informações. Na parte de Javascript e [...]]]></description>
			<content:encoded><![CDATA[<p>O <a href="http://mashable.com/">Mashable</a> divulgou uma <a href="http://mashable.com/2007/10/14/web-coding/">lista bastante completa</a>, com mais de 250 <em>links</em>, sobre Ajax, Javascript, CSS, XHTML, Ruby on Rails, Python, PHP, Java, SQL e ainda mais. Desta lista, vou destacar os endereços que uso regularmente e alguns outros endereços que considero também boas ferramentas ou boas fontes de informações.</p>
<p>Na parte de Javascript e Ajax, há <em>links</em> para páginas de ótimas bibliotecas como a <a href="http://jquery.com/">jQuery</a> e o <a href="http://script.aculo.us/">script.aculo.us</a>. Além de boas referências sobre a linguagem como: <a href="http://www.quirksmode.org/">QuirksMode.org</a> e o <a href="http://www.devguru.com/technologies/javascript/index.asp">DevGuru</a>.</p>
<p>A listagem sobre CSS é boa, mas eu senti falta de alguns sites importantes como o <a href="http://positioniseverything.net/">Position is Everything</a> e também dos <a href="http://blog.html.it/layoutgala/">Layouts Gala</a>.</p>
<p>Em <em>Tools</em> (ferramentas), além das boas dicas sobre editores, duas adições interessantes seriam os editores <a href="http://www.scintilla.org/SciTE.html">SciTE</a> e o <a href="http://jedit.sourceforge.net/">jEdit</a>. Tenho usado bastante o jEdit nos últimos tempos e ele tem se mostrado um editor bem versátil, principalmente com o suporte a <em>snippets</em>.</p>
<p>Para PHP, embora faça um bom tempo que eu não trabalho com a linguagem, continuo vendo alguns lançamentos e notícias relacionados à linguagem. O <em>framework</em> <a href="http://www.akelos.org/">Akelos</a>, que não está na lista, segue a mesma linha de funcionamento do <a href="http://rubyonrails.org/">Rails</a> (Ruby on Rails), sendo uma boa opção para desenvolvimento ágil.</p>
<p>Nos links de Rails, recomendo ainda o <a href="http://www.railscasts.com/">Railscasts</a> que possui uma grande variedade de <em>screencasts</em>, todos voltados para Rails e explicando vários truques interessantes do <em>framework</em>.</p>
<p>Ufa! Quantos <em>links</em>! <img src='http://blog.klaus.pro.br/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  Agora é a sua vez, tem algum site que você usa e acha interessante que ficou faltando nas listas?</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.klaus.pro.br/2007/ler/lista-de-links-sobre-ajax-javascript-css-ruby-on-rails-php-editores-2/index.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Promoção do Simples Idéias (Nando Vieira)</title>
		<link>http://blog.klaus.pro.br/2007/ler/promocao-do-simples-ideias-nando-vieira/index.html</link>
		<comments>http://blog.klaus.pro.br/2007/ler/promocao-do-simples-ideias-nando-vieira/index.html#comments</comments>
		<pubDate>Wed, 15 Aug 2007 19:37:45 +0000</pubDate>
		<dc:creator>Klaus Paiva</dc:creator>
				<category><![CDATA[Textos]]></category>
		<category><![CDATA[Nando Vieira]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Ruby]]></category>
		<category><![CDATA[Simples Idéias]]></category>

		<guid isPermaLink="false">http://wp.blog.klaus.pro.br/2007/ler/promocao-do-simples-ideias-nando-vieira/index.html</guid>
		<description><![CDATA[Este post participa da promoção &#8220;Ganhe o livro Agile Web Development With Rails&#8221; que o Nando Vieira, do Simples Idéias, está promovendo. Sendo assim, aqui vão meus três posts favoritos: Ruby para programadores PHP &#8211; Hoje é em dia é complicado achar documentação para o Ruby, mas muito fácil para o PHP. Nada mais conveniente [...]]]></description>
			<content:encoded><![CDATA[<p>Este <em>post</em> participa da promoção &#8220;<a href="http://simplesideias.com.br/ganhe-o-livro-agile-web-development-with-rails/">Ganhe o livro Agile Web Development With Rails</a>&#8221; que o <a href="http://simplesideias.com.br/">Nando Vieira</a>, do Simples Idéias, está promovendo. Sendo assim, aqui vão meus três <em>posts</em> favoritos:</p>
<ul class="lists">
<li> <a href="http://simplesideias.com.br/ruby-para-programadores-php/">Ruby para programadores PHP</a> &#8211; Hoje é em dia é complicado achar documentação para o Ruby, mas muito fácil para o PHP. Nada mais conveniente do que ver associações entre as funções do PHP e do Ruby.</li>
<li> <a href="http://simplesideias.com.br/tdd-no-rails-unit-tests/">Test-Driven Development no Rails: Unit Tests</a> &#8211; O desenvolvimento guiado por testes (TDD) ajuda muito na hora de desenvolver, este artigo explica e, mais importante, demonstra como isso funciona na prática.</li>
<li> <a href="http://simplesideias.com.br/supermercado-fisico-nunca-mais/">Supermercado (físico) nunca mais!</a> &#8211; Se alguém tinha alguma dúvida sobre a vida social do Nando, essa dúvida acaba aqui. <img src='http://blog.klaus.pro.br/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </li>
</ul>
<p>E como sugestão (preparado? =) eu, particularmente, gostaria de um <em>howto</em> sobre como construir uma aplicação em <a href="http://pygtk.org/">PyGTK</a>, algo simples como uma calculadora mas que abordasse desde a concepção até a criação de um instalador para ambientes Windows, e um pacote Debian também não seria nada mal. <img src='http://blog.klaus.pro.br/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /> </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.klaus.pro.br/2007/ler/promocao-do-simples-ideias-nando-vieira/index.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Um blog com Ruby on Rails</title>
		<link>http://blog.klaus.pro.br/2007/ler/um-blog-com-ruby-on-rails/index.html</link>
		<comments>http://blog.klaus.pro.br/2007/ler/um-blog-com-ruby-on-rails/index.html#comments</comments>
		<pubDate>Sat, 06 Jan 2007 10:53:09 +0000</pubDate>
		<dc:creator>Klaus Paiva</dc:creator>
				<category><![CDATA[Textos]]></category>
		<category><![CDATA[Blog]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Ruby on Rails]]></category>

		<guid isPermaLink="false">http://wp.blog.klaus.pro.br/?p=1</guid>
		<description><![CDATA[Após um bom tempo longe do mundo dos blogs, eu estou de volta e dessa vez é pra ficar! =) Aproveitei as férias do trabalho para aprender uma linguagem nova que pudesse substituir meu bom e velho PHP. Não que o PHP não seja uma linguagem boa, longe disso. O fato é que eu precisava [...]]]></description>
			<content:encoded><![CDATA[<p>Após um bom tempo longe do mundo dos blogs, eu estou de volta e dessa vez é pra ficar! =)</p>
<p>Aproveitei as férias do trabalho para aprender uma linguagem nova que pudesse substituir meu bom e velho <a href="http://www.php.net/">PHP</a>.</p>
<p>Não que o PHP não seja uma linguagem boa, longe disso. O fato é que eu precisava de uma linguagem que fizesse mais por mim e, por consequência, eu codifique menos. <img src='http://blog.klaus.pro.br/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' />  Foi aí que o <a href="http://www.ruby-lang.org/">Ruby</a> (on <a href="http://www.rubyonrails.org/">Rails</a>) surgiu na minha vida.</p>
<h3 id="motivos" class="subtitles">Os motivos</h3>
<p>Na faculdade eu havia visto um pouco sobre <a href="http://www.python.org">Python</a>. Gostei da sintaxe da linguagem em relação ao PHP porém não senti nela um potencial para substituir o PHP e suas inúmeras funções <em>built-in</em>.</p>
<p>No trabalho, sob uma influência bastante positiva do meu amigo <a title="Na verdade, o nome é Fernando =)" href="http://www.simplesideias.com.br/">Ferdinando</a>, eu resolvi que iria apostar no Ruby on Rails. O resultado não poderia ter sido mais positivo!</p>
<h3 id="fontes" class="subtitles">As fontes</h3>
<p>Inicialmente, comecei lendo os famosos &#8220;<em>getting started</em>&#8221; que achei em vários sites, exemplos: <a href="http://www.ruby-lang.org/en/documentation/">http://www.ruby-lang.org/en/documentation/</a> e <a href="http://www.onlamp.com/pub/a/onlamp/2005/01/20/rails.html">http://www.onlamp.com/pub/a/onlamp/2005/01/20/rails.html</a>.</p>
<p>Depois disso parti para a leitura dos tutoriais em PDF que o <a href="http://eustaquiorangel.com/">Eustáquio Rangel</a> <a href="http://www.eustaquiorangel.com/files">disponibilizou</a> em seu site. Os PDFs foram bem bacanas e permitiram uma visão geral sobre Ruby (e Rails)..</p>
<p>Minha principal fonte de leitura e aprendizado foi o livro: <a href="http://pragmaticprogrammer.com/titles/rails/index.html">Agile Web Development with Rails</a>. Apesar deste não ter sido o melhor livro sobre programação que eu já li, certamente ele é bem claro na maior parte dos textos.</p>
<h3 id="resultado" class="subtitles">O resultado</h3>
<p>O primeiro resultado&#8230; bem, você está olhando para ele agora! Para praticar o que eu havia visto, resolvi construir um blog!</p>
<p>Peguei papel e caneta e comecei a desenhar os fluxos de navegação. Rascunhei as páginas individualmente e defini como seriam todos os comportamentos. Decidi que o projeto só estaria completo se eu cumprisse todos os requisitos que eu havia descrito.</p>
<p>No final das contas, o resultado ficou além do que eu mesmo havia proposto e o melhor de tudo: eu levei apenas 6 dias para fazer o blog todo, inclusive o layout!</p>
<p>Levando em consideração que esta é a primeira vez que faço algo com Ruby on Rails, é um resultado impressionante.</p>
<p>Obviamente não criei um novo <a href="http://wordpress.com/">WordPress</a>. O blog é simples mas funciona! =)</p>
<h3 id="resumindo" class="subtitles">Resumindo</h3>
<p>Se você chegou até aqui pesquisando sobre Ruby on Rails, fica a minha opinião: é ótimo!</p>
<p>Particularmente, eu não sou muito fã de usar grandes códigos prontos. Mas o Rails é tão bem escrito que as coisas se tornam pateticamente claras e fáceis. Basicamente ele faz todo o trabalho sujo e chato, deixando você focado nos códigos e na lógica.</p>
<p>Tudo isso combinado com a sintaxe limpa do Ruby vai gerar um código limpo e simples, com <strong>realmente</strong> muitas linhas de código a menos que um código em PHP, por exemplo.</p>
<dl id="refencias" class="references">
<dt>Referências</dt>
<dd> <a href="http://www.ruby-lang.org/">Ruby</a> </dd>
<dd> <a href="http://www.rubyonrails.org/">Rails</a> </dd>
<dd> <a href="http://www.eustaquiorangel.com/files">PDFs sobre Ruby e Rails do Eustáquio Rangel</a> </dd>
<dd> <a href="http://pragmaticprogrammer.com/titles/rails/index.html">Agile Web Development with Rails</a> </dd>
</dl>
]]></content:encoded>
			<wfw:commentRss>http://blog.klaus.pro.br/2007/ler/um-blog-com-ruby-on-rails/index.html/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
