<?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>Mon, 14 May 2012 17:25:18 +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>Maldito segmentation fault</title>
		<link>http://eltonminetto.net/2012/04/27/maldito-segmentation-fault/</link>
		<comments>http://eltonminetto.net/2012/04/27/maldito-segmentation-fault/#comments</comments>
		<pubDate>Fri, 27 Apr 2012 18:30:50 +0000</pubDate>
		<dc:creator>eminetto</dc:creator>
				<category><![CDATA[coderockr]]></category>
		<category><![CDATA[codes]]></category>

		<guid isPermaLink="false">http://eltonminetto.net/?p=968</guid>
		<description><![CDATA[Esse é um daqueles posts que serve mais para me ajudar, mas acho que pode ser útil para mais pessoas. Já tive vários casos onde uma aplicação PHP gera um erro muito genérico nos logs do Apache, o famigerado &#8220;Segmentation fault&#8221;. Na prática significa que alguma coisa deu tão errado que o processo do Apache [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&#038;blog=18808326&#038;post=968&#038;subd=eltonminetto&#038;ref=&#038;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Esse é um daqueles posts que serve mais para me ajudar, mas acho que pode ser útil para mais pessoas.<br />
Já tive vários casos onde uma aplicação PHP gera um erro muito genérico nos logs do Apache, o famigerado &#8220;Segmentation fault&#8221;. Na prática significa que alguma coisa deu tão errado que o processo do Apache que estava executando o seu script PHP foi cancelado. Mas o log não ajuda muito, pois podem ser várias coisas.<br />
Nesse post vou descrever o processo que fiz para encontrar um problema em uma aplicação. Os passos foram feitos em uma máquina virtual Ubuntu, a que eu gerei com o <a href="http://eltonminetto.net/2012/04/02/usando-o-vagrant-para-criar-maquinas-virtuais-para-desenvolvimento-e-testes/">Vagrant</a>.<br />
O primeiro passo é instalar os pacotes necessários para conseguirmos toda a informação possível:</p>
<p><pre class="brush: bash;">
apt-get install libapr1-dbg libaprutil1-dbg gdb php5-dbg
</pre></p>
<p>Precisamos também configurar o Apache para que ele gere um &#8220;dump&#8221; com toda a informação do erro em um arquivo. No arquivo /etc/apache2/apache2.conf eu adicionei a seguinte linha:</p>
<p><pre class="brush: bash;">
CoreDumpDirectory /tmp/apache2-gdb-dump
</pre></p>
<p>Também precisamos criar o diretório e dar permissões para o Apache criar os arquivos:</p>
<p><pre class="brush: bash;">
mkdir /tmp/apache2-gdb-dump
chown -R www-data:www-data /tmp/apache2-gdb-dump
</pre></p>
<p>Após reiniciar o Apache é só executar novamente o script que está gerando o erro, e um arquivo será gerado no diretório criado, o <i>/tmp/apache2-gdb-dump/core</i></p>
<p>Com esse arquivo podemos executar o gdb e verificar o que aconteceu com o programa. Precisamos executar:</p>
<p><pre class="brush: bash;">
gdb /usr/sbin/apache2 /tmp/apache2-gdb-dump/core
</pre></p>
<p>Será mostrado uma lista de ítens que o Apache executou. Para ver mais detalhe é só executar o comando<br />
<pre class="brush: bash;">
bt full
</pre></p>
<p>Analisando as mensagem é bem provável que você vai encontrar uma pista para o que exatamente está ocorrendo. No caso da minha aplicação que testei hoje o problema era na forma como estava carregando o arquivo .phar do Silex, conforme o que o gdb me mostrou:</p>
<p><pre class="brush: bash;">
#0  0x0112cefe in phar_get_archive (archive=0xbff5f87c, fname=0xb5dab6c4 &quot;/vagrant/SOA-Server/vendor/silex.phar&quot;, fname_len=55, alias=0x213f323c &quot;silex.phar&quot;, alias_len=10, error=0x0) at /build/buildd/php5-5.3.2/ext/phar/util.c:1255
</pre></p>
<p>Espero que esse post seja útil para mais alguém, e se você tiver outra receita de como desvendar esse tipo de problemas é só usar os comentários para dar a dica.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/eltonminetto.wordpress.com/968/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/eltonminetto.wordpress.com/968/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/eltonminetto.wordpress.com/968/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/eltonminetto.wordpress.com/968/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/eltonminetto.wordpress.com/968/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/eltonminetto.wordpress.com/968/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/eltonminetto.wordpress.com/968/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/eltonminetto.wordpress.com/968/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/eltonminetto.wordpress.com/968/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/eltonminetto.wordpress.com/968/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/eltonminetto.wordpress.com/968/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/eltonminetto.wordpress.com/968/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/eltonminetto.wordpress.com/968/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/eltonminetto.wordpress.com/968/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=eltonminetto.net&#038;blog=18808326&#038;post=968&#038;subd=eltonminetto&#038;ref=&#038;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://eltonminetto.net/2012/04/27/maldito-segmentation-fault/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>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&#038;blog=18808326&#038;post=778&#038;subd=eltonminetto&#038;ref=&#038;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&#038;blog=18808326&#038;post=778&#038;subd=eltonminetto&#038;ref=&#038;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&#038;blog=18808326&#038;post=412&#038;subd=eltonminetto&#038;ref=&#038;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></p>
<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&#038;blog=18808326&#038;post=412&#038;subd=eltonminetto&#038;ref=&#038;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&#038;blog=18808326&#038;post=407&#038;subd=eltonminetto&#038;ref=&#038;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&#038;blog=18808326&#038;post=407&#038;subd=eltonminetto&#038;ref=&#038;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&#038;blog=18808326&#038;post=372&#038;subd=eltonminetto&#038;ref=&#038;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&#038;blog=18808326&#038;post=372&#038;subd=eltonminetto&#038;ref=&#038;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&#038;blog=18808326&#038;post=340&#038;subd=eltonminetto&#038;ref=&#038;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&#038;blog=18808326&#038;post=340&#038;subd=eltonminetto&#038;ref=&#038;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&#038;blog=18808326&#038;post=329&#038;subd=eltonminetto&#038;ref=&#038;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&#038;blog=18808326&#038;post=329&#038;subd=eltonminetto&#038;ref=&#038;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&#038;blog=18808326&#038;post=273&#038;subd=eltonminetto&#038;ref=&#038;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&#038;blog=18808326&#038;post=273&#038;subd=eltonminetto&#038;ref=&#038;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&#038;blog=18808326&#038;post=272&#038;subd=eltonminetto&#038;ref=&#038;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&#038;blog=18808326&#038;post=272&#038;subd=eltonminetto&#038;ref=&#038;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&#038;blog=18808326&#038;post=266&#038;subd=eltonminetto&#038;ref=&#038;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&#038;blog=18808326&#038;post=266&#038;subd=eltonminetto&#038;ref=&#038;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>
	</channel>
</rss>
