<?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>Código com Café &#187; café</title>
	<atom:link href="http://www.codigocomcafe.com/category/cafe/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.codigocomcafe.com</link>
	<description>Programação e assuntos relacionados. Com café.</description>
	<lastBuildDate>Sun, 11 Jul 2010 00:42:04 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Como o Wordpress me desapontou</title>
		<link>http://www.codigocomcafe.com/2010/05/como-o-wordpress-me-desapontou/</link>
		<comments>http://www.codigocomcafe.com/2010/05/como-o-wordpress-me-desapontou/#comments</comments>
		<pubDate>Mon, 24 May 2010 21:17:07 +0000</pubDate>
		<dc:creator>George Marques</dc:creator>
				<category><![CDATA[CMS]]></category>
		<category><![CDATA[café]]></category>
		<category><![CDATA[hospedagem]]></category>

		<guid isPermaLink="false">http://www.codigocomcafe.com/?p=126</guid>
		<description><![CDATA[Descrição de alguns problemas do Wordpress e como isso fez a empresa de hospedagem suspender minha conta.]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Fui acessar meu blog e descobri, espantado, que minha conta de hospedagem estava suspensa. E eu já estava até pensando que todo mundo fala mal de hospedagem, mas a <a href="http://financeiro.hostdime.com.br/aff.php?aff=1540" target="_blank">Hostdime</a> ainda não tinha me decepcionado (apesar deles terem me empurrado o tal plano de hospedagem). Nunca tive do que reclamar.</p>
<p style="text-align: justify;">Entrei no serviço de helpdesk e descobri que já havia um ticket aberto. Achei muito estranho e fui ver o que era. A administração da Hostdime me disse que alguma tarefa cron estava prejudicando o desempenho do servidor. Nunca criei nenhuma tarefa cron. Eles anexaram um screenshot que indicava o problema no arquivo &#8216;wp-cron.php&#8217;. Este arquivo faz parte do Wordpress. Então, a culpa não é da Hostdime afinal.</p>
<p style="text-align: justify;">Como havia adicionado alguns plugins recentemente, acreditei que algum deles estava causando problemas (especialmente um que faz backup automático). Fuçando no cPanel achei a lista de serviços rodando e também o consumo de CPU/RAM. O indicador de CPU estava no vermelho (embora ainda não entenda muito bem aqueles números). Desativei o plugin, mas não fez nenhuma diferença.</p>
<p style="text-align: justify;">Então desativei e exclui todos os plugins recém-adicionados, já que antes eu nunca tive problemas desse tipo. A carga de CPU abaixou e ficou no verde. Fiz isso hoje de manhã, antes de ir pro trabalho, já que não consegui dormir direito esta noite e acordei antes do despertador. A esta hora eles já tinham reativado minha conta.</p>
<p style="text-align: justify;">Quando estava voltando do trabalho, hoje à tarde, vi no celular um e-mail novo. A equipe da Hostdime informou que a utilização de CPU continuava alta. Exclui todos os plugins, deixei o WP rodando seco. Não me preocupei muito em apagar, pois ontem mesmo fiz backup de tudo (exportei o banco de dados do MySQL e baixei todos os arquivos pelo FTP). Ainda assim ele consumia muito da CPU. Daí eu lembrei que atualizei a versão do WP ontem. Só pode ser isso.</p>
<p style="text-align: justify;">Hora de googlear. Percebi que muita gente teve o mesmo problema que eu: a empresa de hospedagem reclamando do alto consumo de recursos. Muitos blogueiros, como eu, preferem servidores compartilhados, pois são mais baratos e são suficientes para o baixo tráfego. Mas este tipo de problema pode ocasionar a suspensão do site para não prejudicar os outros que estão hospedados.</p>
<p style="text-align: justify;">E teve gente que teve este problema justamente quando atualizou o WP para a última versão (2.9.2). Procurei alguma solução, mas não tive muito sucesso. Aparentemente, plugins de cache, como o famoso WP-Cache, amenizam a utilização de CPU pelo WP. Mas não é uma solução muito eficiente, pois enquanto ainda não tiver feito o cache, o problema continua. Não queria ter minha conta suspensa de vez.<br />
Tomei uma atitude drástica: apaguei os arquivos principais do WP, aqueles que ficam na raiz do site. Mas o consume de recursos só abaixou quando exclui o banco de dados e a conta associada. Por fim, apaguei todos os arquivos do servidor. A culpa era do Wordpress afinal.</p>
<p style="text-align: justify;">O problema do Wordpress é o seguinte: não existe nenhum meio prático dele agendar tarefas para execução (os famosos &#8216;cron jobs&#8217;). Então, a cada vez que uma página é aberta, ele executa a função &#8216;wp_cron()&#8217; que verifica se há tarefas pendentes (e as executa se houver). Além disso, cada plugin e algumas inclusões em sua página gera uma requisição nova para o banco de dados. Assim, para cada visitante em cada página ele faz dezenas de requisições MySQL e, de quebra, ainda executa uma ou outra tarefa pendente. Mesmo um baixo tráfego pode gerar um alto consumo de recursos. E não é de hoje que o WP é assim.</p>
<p style="text-align: justify;">O WP-Cache (ou o WP-Super Cache) cria cópias estáticas das páginas do blog (um html puro, sem funções de servidor). Isso evita as dezenas de requisições ao banco de dados. Isso também impede a execução das tarefas cron, o que pode ser um problema. Mas o cache não funciona com usuários logados. No caso de um blog, como o meu, só existe um usuário registrado: eu mesmo. Então, basta eu acessar o blog de vez em quando para que as tarefas sejam executadas. Como disse o <a title="Coding Horror: Behold WordPress, Destroyer of CPUs" href="http://www.codinghorror.com/blog/2008/04/behold-wordpress-destroyer-of-cpus.html" target="_blank">Jeff Atwood</a>, há mais de um ano, é &#8220;absolutamente irresponsável que a funcionalidade do WP-Cache não esteja já incluída no Wordpress&#8221;.</p>
<p style="text-align: justify;">Por enquanto, redirecionei o endereço para o Blogger, mas ainda não atualizei os posts, vou fazer isso com o tempo, já que não há nenhum método fácil de importar (ouvi dizer que há alguns scripts em python, mas são poucos posts, posso fazer isso na mão mesmo). Não pretendo continuar com o Blogger por que vejo muitos problemas de usabilidade, bem diferente do Wordpress. Falam também dos zilhões de plugins, mas como eles só pioram a situação, não faz tanta diferença.</p>
<p style="text-align: justify;">Vou instalar o PHP + MySQL aqui e testar o consumo de CPU do blog, através do backup que fiz. Se o cache resolver, volto pro Wordpress. Também testarei, juntamente, a solução de <a title="Pascal’s blog » Run Wordpress tasks from real cron job" href="http://blog.dreamdevil.com/index.php/2010/01/29/run-wordpress-tasks-from-real-cron-job/" target="_blank">tornar os &#8216;cron jobs&#8217; agendados de verdade</a>, ao invés de executar na chamada da página. Mas acho que vou procurar outro CMS. E agora já sei quais os defeitos que devo evitar.</p>
<p style="text-align: justify;">E assim o Wordpress me desapontou.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codigocomcafe.com/2010/05/como-o-wordpress-me-desapontou/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>De volta, café e Tetris</title>
		<link>http://www.codigocomcafe.com/2010/05/de-volta-cafe-e-tetris/</link>
		<comments>http://www.codigocomcafe.com/2010/05/de-volta-cafe-e-tetris/#comments</comments>
		<pubDate>Thu, 20 May 2010 21:32:24 +0000</pubDate>
		<dc:creator>George Marques</dc:creator>
				<category><![CDATA[café]]></category>

		<guid isPermaLink="false">http://www.codigocomcafe.com/?p=120</guid>
		<description><![CDATA[Fiquei um tempo afastado da programação e voltei com um antigo interesse  em desenvolvimento de jogos. Sei que OpenGL e DirectX (para Windows) fazem sucesso, mas são bibliotecas muito difíceis de se trablhar quando se começa do zero. Queria algo mais prático e eficiente. Pesquisando, encontrei esta tal de SDL (Simple DirectMedia Layer) que [...]]]></description>
			<content:encoded><![CDATA[<p style="text-align: justify;">Fiquei um tempo afastado da programação e voltei com um antigo interesse  em desenvolvimento de jogos. Sei que OpenGL e DirectX (para Windows) fazem sucesso, mas são bibliotecas muito difíceis de se trablhar quando se começa do zero. Queria algo mais prático e eficiente. Pesquisando, encontrei esta tal de <a title="Site oficial da SDL" href="http://www.libsdl.org/" target="_blank">SDL (Simple DirectMedia Layer)</a> que permite o acesso de  baixo nível a hardware como teclado, mouse, joystick e vídeo. Muito usada em jogos, além de outras aplicações (como reprodutores de vídeo). (comentarei mais sobre ela em outro post)</p>
<p><span id="more-120"></span></p>
<p style="text-align: justify;">É uma biblioteca realmente muito conhecida e utilizida, principalmente, por iniciantes. Além de ser muilti-plataforma, possui algumas bibliotecas extras para se trabalhar com fontes (renderização de texto) e imagens de outros formatos além do BMP (o único suportado nativamente). A engine gráfica é um pouco lenta e seria grande problema para aplicações que usem bastante do hardware, já que a SDL só tem suporte a aceleração por software, mas é possível integrá-la ao OpenGL e ter gráficos mais potentes.</p>
<p style="text-align: justify;">Briguei bastante com ela no começo, já que faz tempo que não programo nada, mas aprendi bastante com o <a title="Lazy Foo SDL Tutorial" href="http://lazyfoo.net/SDL_tutorials/index.php" target="_blank">tutorial do Lazy Foo</a>. E como ouvi dizer que fazer uma réplica de Tetris é um bom começo para programação de jogos (já que tem tudo: loop principal, contagem de pontos, checagem de vitória/derrota, etc.), tentei fazer uma utilizando o SDL. Foi difícil começar, mas cheguei a algo razoável. Vocês podem fazer o download da versão alpha aqui: <a title="Projeto Line Collapser" href="http://sourceforge.net/projects/linecollapser" target="_blank">http://sourceforge.net/projects/linecollapser</a>. Já está jogável, apesar de alguns bugs (o que pode tornar o jogo extremamente difícil em níveis mais altos). Considere que ainda está em fase de desenvolvimento, ainda é só um alpha. E não testei em outros computadores, espero que funcione.</p>
<p style="text-align: justify;">Posterei aqui algumas coisas que aprendi de SDL, então fiquem ligados. Talvez poste como fiz o jogo e algumas dificuldades que tive. E quando ele estiver funcionando legalzinho, tentarei implementar os gráficos com OpenGL. Vou postar aqui o que aprender dessa poderosa biblioteca. E depois, quem sabe, investir num jogo mais poderoso. Por enquanto é só. Até o próximo post.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codigocomcafe.com/2010/05/de-volta-cafe-e-tetris/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Café com Browser</title>
		<link>http://www.codigocomcafe.com/2009/09/cafe-com-browser/</link>
		<comments>http://www.codigocomcafe.com/2009/09/cafe-com-browser/#comments</comments>
		<pubDate>Sun, 13 Sep 2009 21:34:11 +0000</pubDate>
		<dc:creator>George Marques</dc:creator>
				<category><![CDATA[Web]]></category>
		<category><![CDATA[café]]></category>

		<guid isPermaLink="false">http://www.codigocomcafe.com/?p=116</guid>
		<description><![CDATA[O evento já foi realizado três vezes pelo W3C Brasil e consiste em convidar os representantes dos navegadores web para comentar a respeito de seus produtos e como estes se adequam aos padrões.
Para quem perdeu pode baixar os vídeos em http://www.w3c.br/cafecombrowser, embora, infelizmente, o primeiro evento, com o navegador Opera, não filmado.
É interessante saber que, [...]]]></description>
			<content:encoded><![CDATA[<p>O evento já foi realizado três vezes pelo W3C Brasil e consiste em convidar os representantes dos navegadores web para comentar a respeito de seus produtos e como estes se adequam aos padrões.</p>
<p>Para quem perdeu pode baixar os vídeos em <a href="http://www.w3c.br/cafecombrowser">http://www.w3c.br/cafecombrowser</a>, embora, infelizmente, o primeiro evento, com o navegador Opera, não filmado.</p>
<p>É interessante saber que, por incrível que pareça, o IE 8 já suporta algumas tags do famigerado HTML5.</p>
<p>Estas e outras informações interessantes sobre os navegadores podem ser obtidas através dos vídeos.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codigocomcafe.com/2009/09/cafe-com-browser/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Mudança</title>
		<link>http://www.codigocomcafe.com/2009/08/mudanca/</link>
		<comments>http://www.codigocomcafe.com/2009/08/mudanca/#comments</comments>
		<pubDate>Sun, 23 Aug 2009 13:57:36 +0000</pubDate>
		<dc:creator>George Marques</dc:creator>
				<category><![CDATA[café]]></category>

		<guid isPermaLink="false">http://www.codigocomcafe.com/?p=46</guid>
		<description><![CDATA[O blog Código com Café agora etá em um novo endereço. Os leitores de feed não se preocupem, pois o FeedBurner dá conta de redirecionar automaticamente.
Demorei para postar por causa dessa transição. No meio dessa briga com servidor de hospedagem e outra com a instalação do WordPress, acebei gastando bastante tempo.
Até amanhã posto alguma coisa [...]]]></description>
			<content:encoded><![CDATA[<p>O blog Código com Café agora etá em um novo endereço. Os leitores de feed não se preocupem, pois o <a href="http://www.feedburner.com">FeedBurner</a> dá conta de redirecionar automaticamente.</p>
<p>Demorei para postar por causa dessa transição. No meio dessa briga com servidor de hospedagem e outra com a instalação do WordPress, acebei gastando bastante tempo.</p>
<p>Até amanhã posto alguma coisa nova.</p>
<p>Inté.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.codigocomcafe.com/2009/08/mudanca/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Código com Café</title>
		<link>http://www.codigocomcafe.com/2009/08/codigo-com-cafe/</link>
		<comments>http://www.codigocomcafe.com/2009/08/codigo-com-cafe/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 03:00:00 +0000</pubDate>
		<dc:creator>George Marques</dc:creator>
				<category><![CDATA[café]]></category>

		<guid isPermaLink="false">http://www.codigocomcafe.com/index.php/2009/08/11/codigo-com-cafe/</guid>
		<description><![CDATA[
Código sempre combina com café, não é à toa que temos o Java. Então, escolhi este nome para o blog que criei para compartilhar meus conhecimentos na área de programação.
O conteúdo do blog dependerá principalemente da linguagem (ou linguagens) que eu estiver estudando atualmente.
Além de código de fato, novidades na área e outras curiosidades podem [...]]]></description>
			<content:encoded><![CDATA[<div style="text-align: justify;">
<p>Código sempre combina com café, não é à toa que temos o Java. Então, escolhi este nome para o blog que criei para compartilhar meus conhecimentos na área de programação.</p>
<p>O conteúdo do blog dependerá principalemente da linguagem (ou linguagens) que eu estiver estudando atualmente.</p>
<p>Além de código de fato, novidades na área e outras curiosidades podem também estarem presentes.</p>
<p>Desejo um bom café para você, assine o feed e me diga o que  acho nos comentários.</p>
<p>Até mais!</p></div>
]]></content:encoded>
			<wfw:commentRss>http://www.codigocomcafe.com/2009/08/codigo-com-cafe/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
