<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Elton Luís Minetto &#187; codes</title>
	<atom:link href="http://eltonminetto.net/category/codes/feed/" rel="self" type="application/rss+xml" />
	<link>http://eltonminetto.net</link>
	<description>Site pessoal de Elton Minetto</description>
	<lastBuildDate>Wed, 08 Feb 2012 11:27:37 +0000</lastBuildDate>
	<language>pt-br</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='eltonminetto.net' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://s2.wp.com/i/buttonw-com.png</url>
		<title>Elton Luís Minetto &#187; codes</title>
		<link>http://eltonminetto.net</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://eltonminetto.net/osd.xml" title="Elton Luís Minetto" />
	<atom:link rel='hub' href='http://eltonminetto.net/?pushpress=hub'/>
		<item>
		<title>News feed usando nodeJS, Pubsub.io e jQuery</title>
		<link>http://eltonminetto.net/2011/07/19/news-feed-usando-nodejs-pubsub-io-e-jquery/</link>
		<comments>http://eltonminetto.net/2011/07/19/news-feed-usando-nodejs-pubsub-io-e-jquery/#comments</comments>
		<pubDate>Tue, 19 Jul 2011 18:00:25 +0000</pubDate>
		<dc:creator>eminetto</dc:creator>
				<category><![CDATA[coderockr]]></category>
		<category><![CDATA[codes]]></category>
		<category><![CDATA[etc]]></category>

		<guid isPermaLink="false">http://eltonminetto.net/?p=778</guid>
		<description><![CDATA[Um dos projetos que estamos desenvolvendo na Coderockr é uma rede social, da qual vamos dar mais detalhes no futuro, e um dos componentes é um news feed, algo parecido com o &#8220;mural do Facebook&#8221; onde são mostrados os eventos mais atuais aos usuários (novas notícias, novos pedidos de amizade, novos conteúdos, etc). Estamos estudando [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&amp;blog=18808326&amp;post=778&amp;subd=eltonminetto&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Um dos projetos que estamos desenvolvendo na <a href="http://www.coderockr.com" target="_blank">Coderockr</a> é uma rede social, da qual vamos dar mais detalhes no futuro, e um dos componentes é um news feed, algo parecido com o &#8220;mural do Facebook&#8221; onde são mostrados os eventos mais atuais aos usuários (novas notícias, novos pedidos de amizade, novos conteúdos, etc).<br />
Estamos estudando algumas tecnologias para melhor solucionar esta necessidade, e uma das soluções é algo bem novo para nós, o uso quase que total de Javascript: <a href="http://nodejs.org" target="_blank">nodeJS</a>, <a href="http://pubsub.io/" target="_blank">Pubsub.io</a> e nossa velha amiga jQuery.<br />
O nodeJS é uma das tecnologias mais interessantes que surgiu nos últimos tempos. O mago do Javascript  <a href="http://twitter.com/jaydson" target="_blank">@jaydson</a> escreveu alguns posts muito legais fazendo uma <a href="http://jaydson.org/nodejs-introducao" target="_blank">introdução</a> e mostrando os <a href="http://jaydson.org/nodejs-instalacao" target="_blank">primeiros passos</a> na ferramenta. Recomendo a leitura.<br />
O Pubsub.io é construído sobre o nodeJS e é um &#8220;query based message hub&#8221;, trabalhando com o conceito de publishers (programas que publicam conteúdo) e consumers (os que consumem as mensagens), e adicionando a possibilidade de usar uma query language baseada na usada pelo banco NoSQL MongoDB para filtrar os resultados.<br />
A solução que estamos testando funciona da seguinte forma: sempre que um evento acontece (uma nova foto é salva, por exemplo) o componente que executou o evento (um model ou um controller de uma aplicação Zend Framework, por exemplo) faz uma requisição http para uma url servida pelo nodeJS e este publica uma mensagem no Pubsub.io. Na aplicação client, no navegador web, usando a biblioteca JS do Pubsub.io e o jQuery mostramos as mensagens na tela. Vamos tentar explicar com códigos <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /><br />
Após instalar o nodeJS e o npm (<a href="http://howtonode.org/introduction-to-npm" target="_blank">node packet manager</a>) é preciso instalar o Pubsub.io, usando o comando abaixo, no mesmo diretório onde ficará o script server.js (script nodeJS mostrado abaixo):<br />
<code>npm install pubsub.io</code><br />
Agora é preciso instalar e executar o servidor do Pubsub.io:<br />
<code><br />
git clone git@github.com:pubsubio/pubsub-hub.git<br />
./pubsub-hub/lib/server.js<br />
</code><br />
Ele ficará ouvindo na porta 9999<br />
O próximo passo é escrever o <a href="https://gist.github.com/1093224" target="_blank">código do aplicativo</a> do nodeJS e executá-lo com o comando:<br />
<code>node server.js</code><br />
Como o nodeJS fica executando na porta 8080 podemos publicar novos eventos usando algo simples como um comando curl, via linha de comando:<br />
<code>curl -d "title=new photo&amp;detail=http://localhost/photo/id/1&amp;user=eminetto" http://127.0.0.1:8888</code><br />
O -d indica que estamos usando o comando POST para enviar.<br />
Podemos também usar o curl no PHP:<br />
<code><br />
$url = 'http://127.0.0.1:8888';<br />
$postvars = 'title=new image&amp;detail=http://localhost/image/id/1&amp;user=eminetto';<br />
$ch = curl_init($url);<br />
curl_setopt($ch, CURLOPT_POST      ,1);<br />
curl_setopt($ch, CURLOPT_POSTFIELDS    ,$postvars);<br />
curl_setopt($ch, CURLOPT_FOLLOWLOCATION  ,1);<br />
curl_setopt($ch, CURLOPT_HEADER      ,0);<br />
curl_setopt($ch, CURLOPT_RETURNTRANSFER  ,1);<br />
$Rec_Data = curl_exec($ch);<br />
</code><br />
Na parte client vamos usar a biblioteca Javascript do Pubsub.io e jQuery para mostrar ao usuário a notificação: <a href="https://gist.github.com/1093252" target="_blank">ver código</a></p>
<p>No site do Pubsub.io é possível ver outras features importantes como a possibilidade de usar autenticação para garantir a segurança, queries avançadas e a possibilidade de usar o MongoDB para armazenar as mensagens.<br />
Gostei muito da solução. Ainda falta testar coisas como performance, escalabilidade mas me parece ter um bom futuro. </p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eltonminetto.wordpress.com/778/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eltonminetto.wordpress.com/778/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eltonminetto.wordpress.com/778/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eltonminetto.wordpress.com/778/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eltonminetto.wordpress.com/778/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eltonminetto.wordpress.com/778/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eltonminetto.wordpress.com/778/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eltonminetto.wordpress.com/778/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eltonminetto.wordpress.com/778/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eltonminetto.wordpress.com/778/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eltonminetto.wordpress.com/778/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eltonminetto.wordpress.com/778/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eltonminetto.wordpress.com/778/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eltonminetto.wordpress.com/778/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&amp;blog=18808326&amp;post=778&amp;subd=eltonminetto&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eltonminetto.net/2011/07/19/news-feed-usando-nodejs-pubsub-io-e-jquery/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0227f6274b8a6cce078d7f8a91460c41?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eminetto</media:title>
		</media:content>
	</item>
		<item>
		<title>Contabilizar espaço usado em FTP usando Python</title>
		<link>http://eltonminetto.net/2010/03/10/contabilizar-espaco-usado-em-ftp-usando-python/</link>
		<comments>http://eltonminetto.net/2010/03/10/contabilizar-espaco-usado-em-ftp-usando-python/#comments</comments>
		<pubDate>Wed, 10 Mar 2010 14:34:05 +0000</pubDate>
		<dc:creator>eminetto</dc:creator>
				<category><![CDATA[codes]]></category>
		<category><![CDATA[home]]></category>
		<category><![CDATA[python]]></category>

		<guid isPermaLink="false">http://www.eltonminetto.net/?p=412</guid>
		<description><![CDATA[Aqui na empresa temos duas contas de FTP contratadas no nosso plano de hospedagem para usarmos como espaço de backup. As duas contas tem um espaço limitado e toda semana eu preciso monitorar quanto espaço estamos usando, para evitar erros no script de backup. Para facilitar esse controle eu criei um pequeno script Python para [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&amp;blog=18808326&amp;post=412&amp;subd=eltonminetto&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Aqui na <a href="http://www.drimio.com" target="_blank">empresa</a> temos duas contas de FTP contratadas no nosso plano de hospedagem para usarmos como espaço de backup. As duas contas tem um espaço limitado e toda semana eu preciso monitorar quanto espaço estamos usando, para evitar erros no script de backup. Para facilitar esse controle eu criei um pequeno script Python para navegar em todas as pastas e me dizer quanto espaço estou usando. O script ficou assim:</p>
<pre>
import os
from ftplib import FTP

def pretty_filesize(bytes):
	if bytes &gt;= 1073741824:
		return str(bytes / 1024 / 1024 / 1024) + ' GB'
	elif bytes &gt;= 1048576:
		return str(bytes / 1024 / 1024) + ' MB'
	elif bytes &gt;= 1024:
		return str(bytes / 1024) + ' KB'
	elif bytes &lt; 1024:
		return str(bytes) + &#039; bytes&#039;

endereco_ftp = &#039;servidor&#039;
usuario = &#039;usuario&#039;
senha = &#039;senha&#039;
conexao_ftp = FTP(endereco_ftp)

conexao_ftp.login(usuario,senha)
diretorio_corrente = conexao_ftp.pwd()
soma = 0
for i in conexao_ftp.nlst():
	conexao_ftp.cwd(i)
	for j in conexao_ftp.nlst():
		soma = soma + conexao_ftp.size(j)
	conexao_ftp.cwd(&#039;..&#039;)

print pretty_filesize(soma)
</pre>
<p>Agora é só colocar no crontab e receber diariamente o espaço utilizado.<br />
Fontes:<br />
<a href="http://www.vivaolinux.com.br/script/navegador-ftp" target="_blank">http://www.vivaolinux.com.br/script/navegador-ftp</a><br />
<a href="http://code.rivers.pro/python-function-to-convert-bytes-to-kbmbgb/" target="_blank">http://code.rivers.pro/python-function-to-convert-bytes-to-kbmbgb/</a></pre>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eltonminetto.wordpress.com/412/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eltonminetto.wordpress.com/412/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eltonminetto.wordpress.com/412/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eltonminetto.wordpress.com/412/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eltonminetto.wordpress.com/412/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eltonminetto.wordpress.com/412/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eltonminetto.wordpress.com/412/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eltonminetto.wordpress.com/412/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eltonminetto.wordpress.com/412/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eltonminetto.wordpress.com/412/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eltonminetto.wordpress.com/412/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eltonminetto.wordpress.com/412/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eltonminetto.wordpress.com/412/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eltonminetto.wordpress.com/412/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&amp;blog=18808326&amp;post=412&amp;subd=eltonminetto&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eltonminetto.net/2010/03/10/contabilizar-espaco-usado-em-ftp-usando-python/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0227f6274b8a6cce078d7f8a91460c41?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eminetto</media:title>
		</media:content>
	</item>
		<item>
		<title>Enviando DMs do Twitter via shell script</title>
		<link>http://eltonminetto.net/2010/01/28/enviando-dms-do-twitter-via-shell-script/</link>
		<comments>http://eltonminetto.net/2010/01/28/enviando-dms-do-twitter-via-shell-script/#comments</comments>
		<pubDate>Thu, 28 Jan 2010 23:38:19 +0000</pubDate>
		<dc:creator>eminetto</dc:creator>
				<category><![CDATA[codes]]></category>
		<category><![CDATA[home]]></category>
		<category><![CDATA[mysql]]></category>

		<guid isPermaLink="false">http://www.eltonminetto.net/?p=407</guid>
		<description><![CDATA[Monitorar os servidores e serviços é uma tarefa importante para manter seus sites e sistemas sempre em ordem. Existem diversas ferramentas bem completas como o Nagios que fazem praticamente todo o serviço. Eu uso o Nagios para monitorar quase tudo e ele me avisa via e-mail de quaisquer problemas. O problema é que nã verifico [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&amp;blog=18808326&amp;post=407&amp;subd=eltonminetto&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Monitorar os servidores e serviços é uma tarefa importante para manter seus sites e sistemas sempre em ordem. Existem diversas ferramentas bem completas como o Nagios que fazem praticamente todo o serviço. Eu uso o Nagios para monitorar quase tudo e ele me avisa via e-mail de quaisquer problemas. O problema é que nã verifico e-mail o tempo todo.  Uma solução seria mandar os avisos via SMS, mas isso envolve alguns custos.</p>
<p>Nesse momento me lembrei do Twitter. Eu sou um daqueles viciados, que verifica o twitter diversas vezes por dia.  Pensando nisso fiz um pequeno script para monitorar o MySQL e caso o ping não responda eu recebo uma DM avisando.</p>
<p>Um exemplo do script:</p>
<pre>status=`mysqladmin ping -hhost -uuser -psenha 2&gt; /dev/null`
if [ "$status"  != "mysqld is alive" ]; then
   curl -u usuario_mon:senha -d "text=Erro conectando ao MySQL&amp;user=eminetto" http://twitter.com/direct_messages/new.xml 2&gt; /dev/null &gt; /dev/null
fi</pre>
<div>Um detalhe importante a lembrar é que não é bom usar sua conta no Twitter para enviar as DMs. O Twitter tem uma polí­tica que remove contas que usam muitas DMs por dia, temendo abuso e SPAM. O melhor é criar uma nova conta.  Além disso, é preciso que as duas contas sejam seguidoras uma da outra, senão a DM não pode ser enviada</div>
<div>Claro que eu poderia criar um plugin ou script para o próprio Nagios e deixar ele fazer isso para mim, mas assim ficou mais rápido. Além disso é só um exemplo</div>
<div>Fonte: <a href="http://davidwalsh.name/twitter-dm" target="_blank">http://davidwalsh.name/twitter-dm</a></div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eltonminetto.wordpress.com/407/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eltonminetto.wordpress.com/407/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eltonminetto.wordpress.com/407/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eltonminetto.wordpress.com/407/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eltonminetto.wordpress.com/407/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eltonminetto.wordpress.com/407/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eltonminetto.wordpress.com/407/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eltonminetto.wordpress.com/407/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eltonminetto.wordpress.com/407/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eltonminetto.wordpress.com/407/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eltonminetto.wordpress.com/407/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eltonminetto.wordpress.com/407/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eltonminetto.wordpress.com/407/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eltonminetto.wordpress.com/407/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&amp;blog=18808326&amp;post=407&amp;subd=eltonminetto&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eltonminetto.net/2010/01/28/enviando-dms-do-twitter-via-shell-script/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0227f6274b8a6cce078d7f8a91460c41?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eminetto</media:title>
		</media:content>
	</item>
		<item>
		<title>Material da palestra no PHPSC Conf 2009</title>
		<link>http://eltonminetto.net/2009/06/10/material-da-palestra-no-phpsc-conf-2009/</link>
		<comments>http://eltonminetto.net/2009/06/10/material-da-palestra-no-phpsc-conf-2009/#comments</comments>
		<pubDate>Wed, 10 Jun 2009 20:48:17 +0000</pubDate>
		<dc:creator>eminetto</dc:creator>
				<category><![CDATA[codes]]></category>
		<category><![CDATA[docs]]></category>
		<category><![CDATA[palestras]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[phpsc]]></category>
		<category><![CDATA[phpscconf]]></category>

		<guid isPermaLink="false">http://www.eltonminetto.net/?p=372</guid>
		<description><![CDATA[Finalmente me organizei e fiz o upload dos slides da palestra que ministrei no PHPSC Conf 2009. Coloquei no Slideshare. Se alguém precisar do arquivo em outro formato é só me avisar. Melhorando a performance de aplicações com o uso do MemCache<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&amp;blog=18808326&amp;post=372&amp;subd=eltonminetto&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Finalmente me organizei e fiz o upload dos slides da palestra que ministrei no PHPSC Conf 2009.<br />
Coloquei no Slideshare. Se alguém precisar do arquivo em outro formato é só me avisar.<br />
<a href="http://www.slideshare.net/eminetto/melhorando-a-performance-de-aplicaes-com-o-uso-do-memcache" target="_blank">Melhorando a performance de aplicações com o uso do MemCache</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eltonminetto.wordpress.com/372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eltonminetto.wordpress.com/372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eltonminetto.wordpress.com/372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eltonminetto.wordpress.com/372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eltonminetto.wordpress.com/372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eltonminetto.wordpress.com/372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eltonminetto.wordpress.com/372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eltonminetto.wordpress.com/372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eltonminetto.wordpress.com/372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eltonminetto.wordpress.com/372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eltonminetto.wordpress.com/372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eltonminetto.wordpress.com/372/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eltonminetto.wordpress.com/372/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eltonminetto.wordpress.com/372/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&amp;blog=18808326&amp;post=372&amp;subd=eltonminetto&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eltonminetto.net/2009/06/10/material-da-palestra-no-phpsc-conf-2009/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0227f6274b8a6cce078d7f8a91460c41?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eminetto</media:title>
		</media:content>
	</item>
		<item>
		<title>Procura-se beta testers</title>
		<link>http://eltonminetto.net/2009/02/13/procura-se-beta-testers/</link>
		<comments>http://eltonminetto.net/2009/02/13/procura-se-beta-testers/#comments</comments>
		<pubDate>Fri, 13 Feb 2009 16:11:24 +0000</pubDate>
		<dc:creator>eminetto</dc:creator>
				<category><![CDATA[codes]]></category>
		<category><![CDATA[home]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[drimio]]></category>

		<guid isPermaLink="false">http://www.eltonminetto.net/?p=340</guid>
		<description><![CDATA[Depois de alguns meses de desenvolvimento finalmente posso começar a comentar sobre o projeto que estou trabalhando. Chama-se Drimio. Agora que estamos chegando perto do grande lançamento estamos recrutando beta testers para nos ajudar a aprimorar o serviço.  Então fica aqui o convite: SEJA UM DOS NOSSOS BETA TESTERS<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&amp;blog=18808326&amp;post=340&amp;subd=eltonminetto&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Depois de alguns meses de desenvolvimento finalmente posso começar a comentar sobre o projeto que estou trabalhando. Chama-se <a href="http://blog.drimio.com/2008/12/mas-quem-e-a-drimio/" target="_blank">Drimio</a>.</p>
<p>Agora que estamos chegando perto do grande lançamento estamos recrutando beta testers para nos ajudar a aprimorar o serviço.  Então fica aqui o convite: <a href="http://www.drimio.com/hotsite/index.php?id=eltonminetto" target="_blank">SEJA UM DOS NOSSOS BETA TESTERS</a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eltonminetto.wordpress.com/340/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eltonminetto.wordpress.com/340/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eltonminetto.wordpress.com/340/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eltonminetto.wordpress.com/340/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eltonminetto.wordpress.com/340/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eltonminetto.wordpress.com/340/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eltonminetto.wordpress.com/340/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eltonminetto.wordpress.com/340/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eltonminetto.wordpress.com/340/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eltonminetto.wordpress.com/340/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eltonminetto.wordpress.com/340/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eltonminetto.wordpress.com/340/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eltonminetto.wordpress.com/340/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eltonminetto.wordpress.com/340/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&amp;blog=18808326&amp;post=340&amp;subd=eltonminetto&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eltonminetto.net/2009/02/13/procura-se-beta-testers/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0227f6274b8a6cce078d7f8a91460c41?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eminetto</media:title>
		</media:content>
	</item>
		<item>
		<title>Lock em arquivos usando SVN e Subclipse</title>
		<link>http://eltonminetto.net/2008/11/25/lock-em-arquivos-usando-svn-e-subclipse/</link>
		<comments>http://eltonminetto.net/2008/11/25/lock-em-arquivos-usando-svn-e-subclipse/#comments</comments>
		<pubDate>Tue, 25 Nov 2008 17:09:44 +0000</pubDate>
		<dc:creator>eminetto</dc:creator>
				<category><![CDATA[cakephp]]></category>
		<category><![CDATA[codes]]></category>
		<category><![CDATA[docs]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[svn]]></category>

		<guid isPermaLink="false">http://www.eltonminetto.net/?p=329</guid>
		<description><![CDATA[Outra novidade para mim ao usar o Subversion foi o controle de Locks.  Eu sempre usei o CVS integrado ao Eclipse para gerenciar os projetos que eu trabalhava e com essa duplinha é bem fácil configurar para evitar que dois programadores alterem o mesmo arquivo. Com o Subversion e o Eclipse (usando o plugin Subclipse) eu [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&amp;blog=18808326&amp;post=329&amp;subd=eltonminetto&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Outra novidade para mim ao usar o Subversion foi o controle de Locks. </p>
<p>Eu sempre usei o CVS integrado ao Eclipse para gerenciar os projetos que eu trabalhava e com essa duplinha é bem fácil configurar para evitar que dois programadores alterem o mesmo arquivo.</p>
<p>Com o Subversion e o Eclipse (usando o plugin Subclipse) eu não encontrei essa opção. A solução que encontrei foi configurar o cliente do subversion para quando criar novos arquivos marcá-los com um flag. Este flag indica que, para editar o arquivo é preciso que seja feito o &#8220;lock&#8221; antes. No momento de criar o lock o Subclipse também verifica a versão do arquivo e avisa caso a versão local seja inferior a que consta no repositório. Desta forma eu garanto que o programador sempre tenha a última versão do arquivo e evito que duas pessoas alterem o mesmo arquivo ao mesmo tempo. Existem formas de corrigir isso usando práticas de merge, mas eu acho mais fácil evitar o problema do que resolvê-lo <img src='http://s0.wp.com/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> </p>
<p>O que eu fiz foi alterar o arquivo config no diretório do usuário:</p>
<pre>mate ~/.subversion/config</pre>
<p>Eu estou usando o Textmate no MacOSX. Mas o mesmo passo vai funcionar no Linux. No Windows XP o arquivo encontra-se no diretório</p>
<pre>c:\Documents and Settings\usuario\Dados de Aplicativos\Subversion\config</pre>
<p>Neste arquivo eu alterei </p>
<pre># enable-auto-props = yes</pre>
<p>para</p>
<pre>enable-auto-props = yes</pre>
<p>E adicionei alinha abaixo na seção  [auto-props]</p>
<pre>* = svn:needs-lock</pre>
<p>Desta forma, assim que o programador criar um novo arquivo e realizar o primeiro commit é adicionada esta flag ao arquivo. Todos que forem alterá-lo vão passar pela fase &#8220;lock-edit-commit&#8221;, com um &#8220;update&#8221; caso seja necessário.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eltonminetto.wordpress.com/329/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eltonminetto.wordpress.com/329/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eltonminetto.wordpress.com/329/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eltonminetto.wordpress.com/329/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eltonminetto.wordpress.com/329/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eltonminetto.wordpress.com/329/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eltonminetto.wordpress.com/329/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eltonminetto.wordpress.com/329/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eltonminetto.wordpress.com/329/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eltonminetto.wordpress.com/329/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eltonminetto.wordpress.com/329/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eltonminetto.wordpress.com/329/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eltonminetto.wordpress.com/329/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eltonminetto.wordpress.com/329/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&amp;blog=18808326&amp;post=329&amp;subd=eltonminetto&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eltonminetto.net/2008/11/25/lock-em-arquivos-usando-svn-e-subclipse/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0227f6274b8a6cce078d7f8a91460c41?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eminetto</media:title>
		</media:content>
	</item>
		<item>
		<title>Dicas de performance para scripts PHP</title>
		<link>http://eltonminetto.net/2008/05/26/dicas-de-performance-para-scripts-php/</link>
		<comments>http://eltonminetto.net/2008/05/26/dicas-de-performance-para-scripts-php/#comments</comments>
		<pubDate>Mon, 26 May 2008 18:31:50 +0000</pubDate>
		<dc:creator>eminetto</dc:creator>
				<category><![CDATA[cakephp]]></category>
		<category><![CDATA[codes]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.eltonminetto.net/?p=273</guid>
		<description><![CDATA[Excelente artigo com dicas de performance para scripts em PHP. Vale a leitura<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&amp;blog=18808326&amp;post=273&amp;subd=eltonminetto&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Excelente artigo com dicas de performance para scripts em PHP.</p>
<p><a href="http://blog.lucas-ts.com/programacao/traducao-39-dicas-de-perfomance-php/">Vale a leitura</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/eltonminetto.wordpress.com/273/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/eltonminetto.wordpress.com/273/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eltonminetto.wordpress.com/273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eltonminetto.wordpress.com/273/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eltonminetto.wordpress.com/273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eltonminetto.wordpress.com/273/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eltonminetto.wordpress.com/273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eltonminetto.wordpress.com/273/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eltonminetto.wordpress.com/273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eltonminetto.wordpress.com/273/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eltonminetto.wordpress.com/273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eltonminetto.wordpress.com/273/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eltonminetto.wordpress.com/273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eltonminetto.wordpress.com/273/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eltonminetto.wordpress.com/273/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eltonminetto.wordpress.com/273/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&amp;blog=18808326&amp;post=273&amp;subd=eltonminetto&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eltonminetto.net/2008/05/26/dicas-de-performance-para-scripts-php/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0227f6274b8a6cce078d7f8a91460c41?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eminetto</media:title>
		</media:content>
	</item>
		<item>
		<title>pyBovespa</title>
		<link>http://eltonminetto.net/2008/05/01/pybovespa/</link>
		<comments>http://eltonminetto.net/2008/05/01/pybovespa/#comments</comments>
		<pubDate>Thu, 01 May 2008 14:49:13 +0000</pubDate>
		<dc:creator>eminetto</dc:creator>
				<category><![CDATA[apple]]></category>
		<category><![CDATA[codes]]></category>
		<category><![CDATA[python]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://www.eltonminetto.net/?p=272</guid>
		<description><![CDATA[Neste ano eu comecei a investir em ações. É algo ao mesmo tempo emocionante e apavorante porque você pode ganhar e perder dinheiro em questão de horas. Por isso é importante ficar sempre atento as alterações dos valores das ações. Existem vários programas e sites que permitem o acompanhamento das alterações. Mesmo assim, eu aproveitei [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&amp;blog=18808326&amp;post=272&amp;subd=eltonminetto&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Neste ano eu comecei a investir em ações. É algo ao mesmo tempo emocionante e apavorante porque você pode ganhar e perder dinheiro em questão de horas. Por isso é importante ficar sempre atento as alterações dos valores das ações. Existem vários programas e sites que permitem o acompanhamento das alterações. Mesmo assim, eu aproveitei a manhã de feriado, enquanto me recupero de uma pequena ressaca, e fiz um script em Python que busca os dados da Bovespa e permite o acompanhamento da sua &#8220;carteira de ações&#8221;. Assim dá para deixar um terminal aberto e ir acompanhando o mercado.<br />
O script foi feito por diversão e uso pessoal, mas se servir para alguém mais legal. O código:</p>
<pre>
# -*- coding: utf-8 -*-
# Elton Luís Minetto
import urllib
from xml.dom import minidom
from time import sleep
from os import system

#adicionar as acoes aqui
#formato ACAO: [num_acoes,valor_compra,data_compra]
acoes = {
	'BBDC4':[100,34.84,'25/04/2008'],
	'PETR4':[100,42.00,'20/04/2008'],
}

def atualiza(acoes):
	system('clear')
	url = 'http://www.bovespa.com.br/Mercado/RendaVariavel/InfoPregao/ExecutaAcaoAjax.asp?CodigoPapel='
	for i in acoes:
		url += '|'+i
	f = urllib.urlopen(url)
	xml = f.read()
	xmldoc = minidom.parseString(xml)
	papeis = xmldoc.getElementsByTagName('Papel')
	#cabecalho
	print 'Ação\tValor de Compra\tData da Compra\tQtd\tAtual\tDiferença R$\tDiferença %\tData de Atualização'

	total_compra = 0.0
	total_dif_reais = 0.0
	for i in papeis:
		codigo = i.attributes['Codigo'].value
		valor_compra = acoes[codigo][1]
		qtd_acoes = acoes[codigo][0]
		data_compra = acoes[codigo][2]
		valor_atual = i.attributes['Ultimo'].value.replace(',','.')
		data_atual = i.attributes['Data'].value

		diferenca_reais = (float(valor_atual) * qtd_acoes) - (valor_compra * qtd_acoes)
		diferenca_perc = (diferenca_reais*100)/(valor_compra * qtd_acoes)
		total_compra += valor_compra * qtd_acoes
		total_dif_reais += diferenca_reais

		print '%s\t%02f\t%s\t%d\t%s\t%02f\t%02f\t%s' % (codigo,valor_compra,data_compra,qtd_acoes,valor_atual,diferenca_reais,diferenca_perc,data_atual)

	print 'Total de Compra:%02f' % total_compra
	print 'Total da Diferença em Reais:%02f' % total_dif_reais
	total_dif_perc = (total_dif_reais * 100)/total_compra
	print 'Total da Diferença em Percentual:%02f' % total_dif_perc
	sleep(1200)

while 1:
	atualiza(acoes)
</pre>
<p>Eu testei o script no MacOSX Leopard. Mas deve funcionar legal no Linux e no Windows<br />
<a href="https://s3.amazonaws.com/elton/codes/pyBovespa.py">Download do arquivo</a></p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/eltonminetto.wordpress.com/272/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/eltonminetto.wordpress.com/272/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eltonminetto.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eltonminetto.wordpress.com/272/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eltonminetto.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eltonminetto.wordpress.com/272/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eltonminetto.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eltonminetto.wordpress.com/272/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eltonminetto.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eltonminetto.wordpress.com/272/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eltonminetto.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eltonminetto.wordpress.com/272/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eltonminetto.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eltonminetto.wordpress.com/272/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eltonminetto.wordpress.com/272/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eltonminetto.wordpress.com/272/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&amp;blog=18808326&amp;post=272&amp;subd=eltonminetto&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eltonminetto.net/2008/05/01/pybovespa/feed/</wfw:commentRss>
		<slash:comments>8</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0227f6274b8a6cce078d7f8a91460c41?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eminetto</media:title>
		</media:content>
	</item>
		<item>
		<title>Plugin para o WordPress fazer Highlight em fontes</title>
		<link>http://eltonminetto.net/2008/04/25/plugin-para-o-wordpress-fazer-highlight-em-fontes/</link>
		<comments>http://eltonminetto.net/2008/04/25/plugin-para-o-wordpress-fazer-highlight-em-fontes/#comments</comments>
		<pubDate>Fri, 25 Apr 2008 13:01:10 +0000</pubDate>
		<dc:creator>eminetto</dc:creator>
				<category><![CDATA[codes]]></category>
		<category><![CDATA[docs]]></category>
		<category><![CDATA[home]]></category>
		<category><![CDATA[wordpress]]></category>

		<guid isPermaLink="false">http://www.eltonminetto.net/?p=266</guid>
		<description><![CDATA[Encontrei esse plugin para o WordPress que faz highlight em códigos nos posts: http://wordpress.org/extend/plugins/highlight-source-pro/ Muito útil<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&amp;blog=18808326&amp;post=266&amp;subd=eltonminetto&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Encontrei esse plugin para o WordPress que faz highlight em códigos nos posts:</p>
<p><a href="http://wordpress.org/extend/plugins/highlight-source-pro/" target="_blank">http://wordpress.org/extend/plugins/highlight-source-pro/</a></p>
<p>Muito útil</p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/eltonminetto.wordpress.com/266/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/eltonminetto.wordpress.com/266/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eltonminetto.wordpress.com/266/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eltonminetto.wordpress.com/266/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eltonminetto.wordpress.com/266/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eltonminetto.wordpress.com/266/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eltonminetto.wordpress.com/266/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eltonminetto.wordpress.com/266/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eltonminetto.wordpress.com/266/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eltonminetto.wordpress.com/266/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eltonminetto.wordpress.com/266/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eltonminetto.wordpress.com/266/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eltonminetto.wordpress.com/266/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eltonminetto.wordpress.com/266/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eltonminetto.wordpress.com/266/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eltonminetto.wordpress.com/266/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&amp;blog=18808326&amp;post=266&amp;subd=eltonminetto&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eltonminetto.net/2008/04/25/plugin-para-o-wordpress-fazer-highlight-em-fontes/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0227f6274b8a6cce078d7f8a91460c41?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eminetto</media:title>
		</media:content>
	</item>
		<item>
		<title>Criando uma pseudo-coluna no CakePHP</title>
		<link>http://eltonminetto.net/2008/04/25/criando-uma-pseudo-coluna-no-cakephp/</link>
		<comments>http://eltonminetto.net/2008/04/25/criando-uma-pseudo-coluna-no-cakephp/#comments</comments>
		<pubDate>Fri, 25 Apr 2008 12:48:42 +0000</pubDate>
		<dc:creator>eminetto</dc:creator>
				<category><![CDATA[cakephp]]></category>
		<category><![CDATA[codes]]></category>
		<category><![CDATA[php]]></category>

		<guid isPermaLink="false">http://www.eltonminetto.net/?p=265</guid>
		<description><![CDATA[Estou desenvolvendo um sistema grande usando o framework CakePHP e surgiu uma necessidade. Precisava criar uma pseudo-coluna com o resultado do cálculo de outras duas. Seguindo o conceito de MVC, achei mais interessante fazer este cálculo no Model para poder usar em todos os programas que utiizam aquela tabela.  Para ilustrar isto montei um exemplo. [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&amp;blog=18808326&amp;post=265&amp;subd=eltonminetto&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Estou desenvolvendo um sistema grande usando o framework CakePHP e surgiu uma necessidade. Precisava criar uma pseudo-coluna com o resultado do cálculo de outras duas. Seguindo o conceito de MVC, achei mais interessante fazer este cálculo no Model para poder usar em todos os programas que utiizam aquela tabela. </p>
<p>Para ilustrar isto montei um exemplo. Criei a seguinte tabela:</p>
<pre>
CREATE TABLE IF NOT EXISTS `clientes` (
  `id` int(11) NOT NULL auto_increment,
  `nome` varchar(100) NOT NULL,
  `sobrenome` varchar(100) NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
</pre>
<p>O Model da tabela ficou da seguinte forma:</p>
<pre>
class Cliente extends AppModel {

  var $name = 'Cliente';
  var $validate = array(
 	'id' =&gt; VALID_NOT_EMPTY,
 	'nome' =&gt; VALID_NOT_EMPTY,
 	'sobrenome' =&gt; VALID_NOT_EMPTY,
  );

  /*
  funcao que é executada toda vez que é realizado uma consulta na tabela
  esta funcao adiciona o nome completo do cliente ao resultado como uma pseudo-coluna.
  idéia tirada de http://www.paulherron.net/articles/view/cakephp_afterfind_psuedofield
  */
  function afterFind($results) {
     if(isset($results['0']['Cliente'])) {
       foreach ($results as $key =&gt; $val) {
         $results[$key]['Cliente']['nome_completo'] = $results[$key]['Cliente']['nome']  . $results[$key]['Cliente']['sobrenome'] ;
       }
    }
   return $results;
  }
}
</pre>
<p>E na visão eu simplesmente imprimo a pseudo-coluna: </p>
<pre>echo $cliente['Cliente']['nome_completo'];</pre>
<p>Simples assim. </p>
<br /><img alt="" border="0" src="http://feeds.wordpress.com/1.0/categories/eltonminetto.wordpress.com/265/" /> <img alt="" border="0" src="http://feeds.wordpress.com/1.0/tags/eltonminetto.wordpress.com/265/" /> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eltonminetto.wordpress.com/265/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eltonminetto.wordpress.com/265/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eltonminetto.wordpress.com/265/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eltonminetto.wordpress.com/265/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eltonminetto.wordpress.com/265/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eltonminetto.wordpress.com/265/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eltonminetto.wordpress.com/265/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eltonminetto.wordpress.com/265/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eltonminetto.wordpress.com/265/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eltonminetto.wordpress.com/265/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eltonminetto.wordpress.com/265/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eltonminetto.wordpress.com/265/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eltonminetto.wordpress.com/265/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eltonminetto.wordpress.com/265/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&amp;blog=18808326&amp;post=265&amp;subd=eltonminetto&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eltonminetto.net/2008/04/25/criando-uma-pseudo-coluna-no-cakephp/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/0227f6274b8a6cce078d7f8a91460c41?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">eminetto</media:title>
		</media:content>
	</item>
	</channel>
</rss>
