<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"><channel><atom:link rel="hub" href="http://tumblr.superfeedr.com/" xmlns:atom="http://www.w3.org/2005/Atom"/><description>Um amontoado de coisas</description><title>Gustavo Paes</title><generator>Tumblr (3.0; @gustavopaes)</generator><link>http://blog.gustavopaes.net/</link><item><title>Lendo arquivos de configuração em Perl</title><description>&lt;a href="http://www.emresumo.com/blog/2009/12/perl-configany-e-freebsd/"&gt;Lendo arquivos de configuração em Perl&lt;/a&gt;: &lt;p&gt;Podia ter achado esse link antes de finalizar o &lt;i&gt;replicatorTabajara&lt;/i&gt; — um replicador de templates. Mas está valendo, numa próxima versão utilizo esse &lt;i&gt;módulo&lt;/i&gt; &lt;a title="CPAN Config::Any" target="_blank" href="http://search.cpan.org/~bricas/Config-Any-0.19/lib/Config/Any.pm"&gt;Config::Any&lt;/a&gt;.&lt;/p&gt;</description><link>http://blog.gustavopaes.net/post/439414120</link><guid>http://blog.gustavopaes.net/post/439414120</guid><pubDate>Wed, 10 Mar 2010 15:06:35 -0400</pubDate><category>perl</category><category>config::any</category><category>programming</category></item><item><title>Diploma de Analista de Sistemas: 

Formado em 2008, pela...</title><description>&lt;img src="http://30.media.tumblr.com/tumblr_ky3ne5O6ls1qa3b68o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Diploma de Analista de Sistemas:&lt;/b&gt; 

&lt;p&gt;Formado em 2008, pela Universidade Mackenzie.&lt;/p&gt;</description><link>http://blog.gustavopaes.net/post/398848906</link><guid>http://blog.gustavopaes.net/post/398848906</guid><pubDate>Fri, 19 Feb 2010 13:32:33 -0400</pubDate></item><item><title>Vimeo: Canal HD</title><description>&lt;a href="http://vimeo.com/hd"&gt;Vimeo: Canal HD&lt;/a&gt;: &lt;p&gt;&lt;a title="Vimeo" target="_blank" href="http://vimeo.com/"&gt;Vimeo&lt;/a&gt; é um site de vídeos, ao estilo YouTube. Não sei se é porque ainda não cheguei na parte &lt;i&gt;povão&lt;/i&gt; do site, mas o conteúdo dele é de um nível bem mais alto do que o do YouTube.&lt;/p&gt;
&lt;p&gt;E uma das áreas que mais gosto do &lt;b&gt;&lt;a title="The Vimeo HD Channel" target="_blank" href="http://vimeo.com/hd"&gt;Vimeo&lt;/a&gt;&lt;/b&gt;&lt;a title="The Vimeo HD Channel" target="_blank" href="http://vimeo.com/hd"&gt; é o canal &lt;/a&gt;&lt;b&gt;&lt;a title="The Vimeo HD Channel" target="_blank" href="http://vimeo.com/hd"&gt;High Definition&lt;/a&gt;&lt;/b&gt;, ou HD. Centenas de vídeos com resolução de 1280x720 pixels, com grande realismo. Recomendo ver ao menos um vídeo por dia — isso se você não tiver limite de banda.&lt;/p&gt;
&lt;p&gt;E já fica uma dica: &lt;a href="http://vimeo.com/5606758"&gt;&lt;a href="http://vimeo.com/5606758"&gt;http://vimeo.com/5606758&lt;/a&gt;&lt;/a&gt; (o 2º maior aquário do mundo)&lt;/p&gt;
&lt;p&gt;Em tempo: veja em fullscreen :)&lt;/p&gt;</description><link>http://blog.gustavopaes.net/post/389386134</link><guid>http://blog.gustavopaes.net/post/389386134</guid><pubDate>Sun, 14 Feb 2010 15:32:39 -0400</pubDate><category>vimeo</category><category>high definition</category></item><item><title>(via jaytoddmartin)</title><description>&lt;img src="http://26.media.tumblr.com/tumblr_kxpz4ph95F1qa6unno1_400.png"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;(via &lt;a href="http://jaytoddmartin.tumblr.com/"&gt;jaytoddmartin&lt;/a&gt;)&lt;/p&gt;</description><link>http://blog.gustavopaes.net/post/385661456</link><guid>http://blog.gustavopaes.net/post/385661456</guid><pubDate>Fri, 12 Feb 2010 12:24:42 -0400</pubDate><category>evil</category><category>funny</category></item><item><title>O gráfico da velocidade em Caracas encontrei no Blog...</title><description>&lt;img src="http://30.media.tumblr.com/tumblr_kxq7crgmEU1qa3b68o1_500.gif"/&gt;&lt;br/&gt; Velocidade da conexão em São Paulo (BRA)&lt;br/&gt;&lt;br/&gt; &lt;img src="http://26.media.tumblr.com/tumblr_kxq7crgmEU1qa3b68o2_500.png"/&gt;&lt;br/&gt; Velocidade da conexão em Caracas (VEN)&lt;br/&gt;&lt;br/&gt; &lt;p&gt;O gráfico da velocidade em Caracas encontrei no &lt;b&gt;&lt;a title="Guillermo Esteves" target="_blank" href="http://blog.gesteves.com/post/384769421/fuck-cantv"&gt;Blog do gesteves&lt;/a&gt;.&lt;/b&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;O teste pode ser realizado pelo &lt;a title="YouTube Video Speed History" target="_blank" href="http://www.youtube.com/my_speed"&gt;You Tube&lt;/a&gt;.&lt;/b&gt;&lt;/p&gt;</description><link>http://blog.gustavopaes.net/post/385356356</link><guid>http://blog.gustavopaes.net/post/385356356</guid><pubDate>Fri, 12 Feb 2010 07:17:15 -0400</pubDate><category>internet</category><category>brazil</category><category>venezuela</category><category>banda larga</category></item><item><title>Mensagem no mínimo suspeita. A mulher, Isabella, que não faz...</title><description>&lt;img src="http://27.media.tumblr.com/tumblr_kxoclvNpIx1qa3b68o1_500.gif"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Mensagem no mínimo suspeita. A &lt;i&gt;mulher&lt;/i&gt;, Isabella, que &lt;b&gt;não faz parte&lt;/b&gt; da minha lista de amigos, muito menos conhecidos, me manda uma mensagem pedindo informações sobre programação.&lt;/p&gt;
&lt;p&gt;Até aí tudo bem, se não fosse o fato dela assinar como &lt;b&gt;Paulo&lt;/b&gt;, e possuir um e-mail &lt;i&gt;suporte490@hotmail.com&lt;/i&gt;. Crise de identidade, será?&lt;/p&gt;</description><link>http://blog.gustavopaes.net/post/383575418</link><guid>http://blog.gustavopaes.net/post/383575418</guid><pubDate>Thu, 11 Feb 2010 07:15:31 -0400</pubDate><category>facebook</category><category>spam</category></item><item><title>Pôr do sol em São Paulo: 

Teste da câmera do celular (C902) no...</title><description>&lt;img src="http://29.media.tumblr.com/tumblr_kxjzbsBH4n1qa3b68o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Pôr do sol em São Paulo:&lt;/b&gt; 

&lt;p&gt;Teste da câmera do celular (C902) no modo “dia”.&lt;/p&gt;</description><link>http://blog.gustavopaes.net/post/379156823</link><guid>http://blog.gustavopaes.net/post/379156823</guid><pubDate>Mon, 08 Feb 2010 22:38:18 -0400</pubDate></item><item><title>Mitos das baterias para notebooks</title><description>&lt;p&gt;
&lt;object height="225" width="320" data="http://www.olhardigital.com.br/flashes/player_embed_low?path_video=http://p.download.uol.com.br/olhardigital/PGM247/pgm247_cv_mitosbaterianoteb.flv&amp;player_width=640&amp;player_height=380&amp;tipo_player=baixa&amp;titulo_video=Mitos das baterias para notebooks&amp;current_url=http://olhardigital.uol.com.br/central_de_videos/video_wide.php?id_conteudo=10195&amp;/MITOS+DAS+BATERIAS+PARA+NOTEBOOKS?id_conteudo=10195" type="application/x-shockwave-flash"&gt;
&lt;param name="allowFullScreen" value="true"&gt;
&lt;param name="allowscriptaccess" value="always"&gt;
&lt;param name="src" value="http://www.olhardigital.com.br/flashes/player_embed_low?path_video=http://p.download.uol.com.br/olhardigital/PGM247/pgm247_cv_mitosbaterianoteb.flv&amp;player_width=640&amp;player_height=380&amp;tipo_player=baixa&amp;titulo_video=Mitos das baterias para notebooks&amp;current_url=http://olhardigital.uol.com.br/central_de_videos/video_wide.php?id_conteudo=10195&amp;/MITOS+DAS+BATERIAS+PARA+NOTEBOOKS?id_conteudo=10195"&gt;
&lt;param name="allowfullscreen" value="true"&gt;&lt;/object&gt;
&lt;/p&gt;
&lt;p&gt;Fonte: &lt;a href="http://olhardigital.uol.com.br/central_de_videos/video_wide.php?id_conteudo=10195&amp;/MITOS+DAS+BATERIAS+PARA+NOTEBOOKS"&gt;Olhar digital&lt;/a&gt;&lt;/p&gt;</description><link>http://blog.gustavopaes.net/post/378681114</link><guid>http://blog.gustavopaes.net/post/378681114</guid><pubDate>Mon, 08 Feb 2010 17:46:00 -0400</pubDate><category>baterias</category><category>notebooks</category></item><item><title>06/01/2010: 

Caminhão de transporte de água, obra de artista...</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_kxfi9wLLhC1qa3b68o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;b&gt;06/01/2010:&lt;/b&gt; 

&lt;p&gt;Caminhão de transporte de água, obra de artista indiano.&lt;/p&gt;</description><link>http://blog.gustavopaes.net/post/374315867</link><guid>http://blog.gustavopaes.net/post/374315867</guid><pubDate>Sat, 06 Feb 2010 12:39:14 -0400</pubDate></item><item><title>06/01/2010: 

Caminhão de transporte de água, obra de artista...</title><description>&lt;img src="http://29.media.tumblr.com/tumblr_kxfi9zpjV41qa3b68o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;b&gt;06/01/2010:&lt;/b&gt; 

&lt;p&gt;Caminhão de transporte de água, obra de artista indiano.&lt;/p&gt;</description><link>http://blog.gustavopaes.net/post/374315948</link><guid>http://blog.gustavopaes.net/post/374315948</guid><pubDate>Sat, 06 Feb 2010 12:39:14 -0400</pubDate></item><item><title>Formatar? Pra que?: 

Quem disse que é preciso formatar o...</title><description>&lt;img src="http://24.media.tumblr.com/tumblr_kxby38YykI1qa3b68o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Formatar? Pra que?:&lt;/b&gt; 

&lt;p&gt;Quem disse que é preciso formatar o Windows XP a cada 6 meses, 1 ano?&lt;br/&gt;&lt;br/&gt;
Meu computador no trabalho tem o Windows XP instalado desde Maio/2007, ou seja, há mais de dois anos.&lt;/p&gt;</description><link>http://blog.gustavopaes.net/post/370868593</link><guid>http://blog.gustavopaes.net/post/370868593</guid><pubDate>Thu, 04 Feb 2010 14:30:20 -0400</pubDate></item><item><title>Nuvem de poluição: 

Mesmo chovendo todo dia, ainda assim é...</title><description>&lt;img src="http://26.media.tumblr.com/tumblr_kxabpz7Dlk1qa3b68o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;b&gt;Nuvem de poluição:&lt;/b&gt; 

&lt;p&gt;Mesmo chovendo todo dia, ainda assim é possível se deparar com uma nuvem de poluição, vista ao fundo.&lt;/p&gt;</description><link>http://blog.gustavopaes.net/post/369296316</link><guid>http://blog.gustavopaes.net/post/369296316</guid><pubDate>Wed, 03 Feb 2010 17:29:09 -0400</pubDate></item><item><title>Usuário Windows demonstrando uma grave falha presente em TODAS...</title><description>&lt;object width="400" height="336"&gt;&lt;param name="movie" value="http://www.youtube.com/v/j6JPENvzoX8&amp;rel=0&amp;egm=0&amp;showinfo=0&amp;fs=1"&gt;&lt;/param&gt;&lt;param name="wmode" value="transparent"&gt;&lt;/param&gt;&lt;param name="allowFullScreen" value="true"&gt;&lt;/param&gt;&lt;embed src="http://www.youtube.com/v/j6JPENvzoX8&amp;rel=0&amp;egm=0&amp;showinfo=0&amp;fs=1" type="application/x-shockwave-flash" width="400" height="336" allowFullScreen="true" wmode="transparent"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Usuário Windows demonstrando uma &lt;strong&gt;grave falha&lt;/strong&gt; presente em TODAS as distribuições linux existentes, desde a versão “0.1 Beta RC1” até a 2.6.X do Kernel.&lt;/p&gt;

&lt;p&gt;Nossa, já estou trocando meu Linux para o Windows… Seguuuuuuro!!!!&lt;/p&gt;

&lt;p&gt;Pronto, deixando a ironia de lado, segue comentário que envie (não sei se entrou na lista, pois é preciso aprovação do autor):&lt;/p&gt;

&lt;p&gt;&lt;cite&gt;HAHAHAHAHA&lt;/cite&gt;&lt;/p&gt;

&lt;p&gt;Você deve ter sido o tipo de cara que pressionava “ALT + F4” para ganhar “@” no IRC. Isso é, se chegou a usar IRC.&lt;/p&gt;

&lt;p&gt;Usuário que digita “rm -rf /”, como ROOT, merece o resultado final.&lt;/p&gt;

&lt;p&gt;Abraços&lt;/p&gt;</description><link>http://blog.gustavopaes.net/post/361339335</link><guid>http://blog.gustavopaes.net/post/361339335</guid><pubDate>Sat, 30 Jan 2010 09:29:00 -0400</pubDate><category>linux</category><category>windows</category><category>loser</category></item><item><title>Tradução, no mínimo estranha, do Google Translate para a palavra...</title><description>&lt;img src="http://29.media.tumblr.com/tumblr_kx0mew6Cnq1qa3b68o1_500.jpg"/&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;&lt;a href="http://translate.google.com/#en%7Cpt%7Cfinalcountdown" rel="external"&gt;Tradução, no mínimo estranha, do Google Translate&lt;/a&gt; para a palavra “finalcountdown”, digitação errada para “final countdown”.&lt;/p&gt;</description><link>http://blog.gustavopaes.net/post/359764008</link><guid>http://blog.gustavopaes.net/post/359764008</guid><pubDate>Fri, 29 Jan 2010 11:44:56 -0400</pubDate><category>google</category><category>final countdown</category><category>hd dvd</category></item><item><title>Cron temporário utilizando bash</title><description>&lt;p&gt;Se você tem um host onde a ativação de uma tarefa no cron pode levar alguns dias até o pessoal do suporte adicionar a entrada, mas você precisa desesperadamente testar um script ou um conjunto deles para verificar seu funcionamento no cron, crie o seu próprio cron. Crie um arquivo “run.sh” com o seguinte conteúdo:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;#!/bin/sh

while [ 1 ];
do
    /usr/local/bin/php /caminho/ate/tarefa.php &gt;&gt; temp/log-exec.log
    sleep 1800
done&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Depois, acesse via SSH seu servidor e execute:&lt;br/&gt;&lt;code&gt;$ chmod +x run.sh&lt;br/&gt;
$ ./run.sh &gt; /dev/null &amp;&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Pronto, a cada 5 minutos o seu script será executado. Se quiser matar o processo:&lt;br/&gt;&lt;code&gt;$ ps x&lt;br/&gt;
$ kill -9 XXXXX&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Onde XXXXX é o número do processo retornado pelo &lt;code&gt;ps x&lt;/code&gt;.&lt;/p&gt;

&lt;p&gt;Se quiser aumentar ou diminuir o tempo de execução, troque número 1800 do arquivo para o tempo desejado, em segundos.&lt;/p&gt;

&lt;p&gt;&lt;strong&gt;Atenção:&lt;/strong&gt; use com moderação e apenas para testes. Não utilize como uma forma definitiva de cron. Não tenho certeza sobre questões de desempenho ou segurança. Além do mais, qualquer restart no servidor irá fazer seu cron parar.&lt;/p&gt;</description><link>http://blog.gustavopaes.net/post/359466723</link><guid>http://blog.gustavopaes.net/post/359466723</guid><pubDate>Fri, 29 Jan 2010 06:45:00 -0400</pubDate><category>cron</category><category>shell script</category><category>unix</category><category>bash</category></item><item><title>Firefox 3.6: acho que agora acertaram</title><description>&lt;p&gt;Acabei de instalar o &lt;a href="http://www.mozilla.com/en-US/firefox/personal.html" rel="external"&gt;Firefox 3.6&lt;/a&gt; e pelas primeiras impressões o bicho &lt;strong&gt;está bem mais rápido&lt;/strong&gt; que nas versões anteriores. Vamos ver se posso voltar a usá-lo com meu histórico de 8 meses.&lt;/p&gt;</description><link>http://blog.gustavopaes.net/post/356136782</link><guid>http://blog.gustavopaes.net/post/356136782</guid><pubDate>Wed, 27 Jan 2010 09:50:31 -0400</pubDate><category>firefox</category><category>mozilla</category></item><item><title>Procurando uma string em diversos arquivos</title><description>&lt;p&gt;Tenho utilizado bastante SSH para desenvolvimento de um projeto e várias vezes tenho a necessidade de procurar por alguma função ou string qualquer em diversos arquivos.&lt;/p&gt;

&lt;p&gt;Meu editor no Windows faz isso, mas não quando os arquivos estão em FTP, apenas local. Portanto tenho que fazer a busca via SSH, o que não é das piores coisas. Diria que é até melhor e mais rápido.&lt;/p&gt;

&lt;p&gt;Utilizo um “juntado” de &lt;code&gt;find&lt;/code&gt; com &lt;code&gt;grep&lt;/code&gt;:&lt;br/&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;find ./ -name "*.php" -print0 | xargs -0 grep "nomeFuncao"&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Isso vai procurar &lt;code&gt;nomeFuncao&lt;/code&gt; em todos os arquivos &lt;code&gt;php&lt;/code&gt; do projeto. Simples e rápido. Se quiser guardar o resultado em algum arquivo, utilize &lt;code&gt;&gt;&gt;&lt;/code&gt;:&lt;br/&gt;&lt;/p&gt;
&lt;pre&gt;&lt;code&gt;find ./ -name "*.php" -print0 | xargs -0 grep "nomeFuncao" &gt;&gt; resultado.txt&lt;/code&gt;&lt;/pre&gt;</description><link>http://blog.gustavopaes.net/post/355949743</link><guid>http://blog.gustavopaes.net/post/355949743</guid><pubDate>Wed, 27 Jan 2010 06:30:03 -0400</pubDate><category>unix</category><category>linux</category><category>grep</category><category>find</category></item><item><title>Project Euler: Problema 23</title><description>&lt;p&gt;Ontem finalizei o &lt;a href="http://projecteuler.net/index.php?section=problems&amp;id=23" rel="external"&gt;problema 23&lt;/a&gt; do &lt;a href="http://projecteuler.net/index.php?section=about" rel="external"&gt;Project Euler&lt;/a&gt;. O problema em si é de fácil solução, mas se você não pensar em otimizar ao máximo a execução do seu script, pode levar horas — como o meu levou — ou até mesmo dias, para conseguir o resultado final. E ainda pode conseguir um resultado errado.&lt;/p&gt;

&lt;p&gt;O problema 23 explica o que é um número perfeito (aquele que a soma de seus divisores resultado no próprio número), número deficiente (aquele que a soma é menor que o próprio número) e número abundante (aquele que a soma é maior que o próprio número).&lt;/p&gt;

&lt;p&gt;Como exemplo de um número perfeito, ele cita o 28, que possui os seguintes divisores:&lt;br/&gt;
1 + 2 + 4 + 7 + 14 = 28&lt;/p&gt;

&lt;p&gt;E como exemplo de um número abundante, é citado o número 12:&lt;br/&gt;
1 + 2 + 3 + 4 + 6 = 16&lt;/p&gt;

&lt;p&gt;Dito isso, o problema afirma que todos os números positivos inteiros maiores que 28123 podem ser encontrados através da soma de dois números abundantes. Mas que, de 0 até 28123, não é possível afirmar isso. E o problema pede no fim é que você encontre quais são os números que não podem ser encontrados através da soma de dois números abundantes e some eles. A resposta final essa.&lt;/p&gt;

&lt;p&gt;Sabendo de tudo isso, algo que irá mudar sua vida a partir desse ponto, vamos pensar na solução. Primeira coisa que se precisa fazer é achar todos os números abundantes entre 0 e 28123. Para isso é preciso criar uma função que ache os divisores de um determinado número. Com ela, fica fácil descobrir quais são números abundantes e quais não são:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;abundantes = []
for n in xrange(1, 28124):
	if sum(divisors(n)) &gt; n:
		abundantes.append(n)&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;A função &lt;code&gt;divisors&lt;/code&gt; retorna &lt;code&gt;True&lt;/code&gt; ou &lt;code&gt;False&lt;/code&gt;.
Para conseguir achar tudo, a função leva cerca de meio minuto.&lt;/p&gt;

&lt;p&gt;Com esses números em um array você tem duas opções:&lt;/p&gt;
&lt;p&gt;1. Fazer um laço de 1 até 28123 verificando os números que podem ser encontrados através da soma de dois números abundantes;&lt;/p&gt;

&lt;p&gt;2. Fazer todas as somas possíveis do números abundantes e guardar em um array para depois ir verificando de 1 a té 28123 qual deles existe nesse array.&lt;/p&gt;

&lt;p&gt;A primeira opção foi a que eu escolhi primeiro (não tinha tido a segunda idéia ainda). Fiz o script sem grandes dificuldades mas logo percebi que a execução iria demorar, provavelmente, mais de dia.&lt;/p&gt;

&lt;p&gt;Parti então para um segundo script — enquanto o primeiro ia ocupando 100% de um dos processadores — para tentar chegar a uma solução melhor. Foi quando pensei na segunda opção.&lt;/p&gt;

&lt;p&gt;Mesmo com a segunda opção, que roda mais rápido que a primeira, o script levou quase 5 horas para encontrar o número final. O script é esse:&lt;/p&gt;


&lt;pre&gt;&lt;code&gt;from divisors import divisors
import time

start = time.time()

# funcao que verifica se o parametro passado pode ser encontrado
# atraves da soma de algum dos numeros abundantes encontrado
def allSum(arr):
	all_sum = []
	limit = len(arr)

	f_index = 0 # primeiro indice
	s_index = 0 # segundo indice
	
	while f_index  n:
		abundantes.append(n)

print "... encontrados %d numeros" % len(abundantes)
print

print "Somando todos os abundantes entre si..."
all_sum = allSum(abundantes)

print "... encontrado %d resultados" % len(all_sum)
print

# percorre ate o limite
print "Descobrindo numeros que nao podem ser encontrados atraves da soma..."
numbers = []
for x in xrange(1, 28124):
	# apenas para controle no console
	if x%10 == 0:
		print x

	if x not in all_sum:
		numbers.append(x)

print
print
print sum(numbers)

print
print "achado em ", (time.time() - start) , "segundos"
&lt;/code&gt;&lt;/pre&gt;

&lt;p&gt;Por sorte consegui chegar no resultado certo, senão seriam 5 horas de processamento jogados no lixo :)&lt;/p&gt;</description><link>http://blog.gustavopaes.net/post/350843120</link><guid>http://blog.gustavopaes.net/post/350843120</guid><pubDate>Sun, 24 Jan 2010 11:08:00 -0400</pubDate><category>project euler</category><category>problem 23</category><category>python</category><category>programming</category></item><item><title>Como converter FAT em NTFS</title><description>&lt;a href="http://www.microsoft.com/brasil/windowsxp/pro/usando/artigos/fat_ntfs.mspx"&gt;Como converter FAT em NTFS&lt;/a&gt;: &lt;p&gt;Dica rápida: para converter uma partição de FAT/FAT32 para NTFS use o comando:&lt;br/&gt;&lt;code&gt;convert [letra do driver]: /fs:ntfs&lt;/code&gt;&lt;/p&gt;

&lt;p&gt;Precisei disso pois a janela de formatar do meu Windows XP só possui a opção FAT32 e colocar um filme de 5GB no pendrive com essa partição não rola.&lt;/p&gt;</description><link>http://blog.gustavopaes.net/post/329074629</link><guid>http://blog.gustavopaes.net/post/329074629</guid><pubDate>Mon, 11 Jan 2010 14:51:58 -0400</pubDate><category>fat</category><category>ntfs</category><category>windows xp</category><category>pendrive</category></item><item><title>Não acreditei quando eu vi, mas é verdade. Um vídeo 100%...</title><description>&lt;object type="application/x-shockwave-flash" width="400" height="300" data="http://vimeo.com/moogaloop.swf?clip_id=7809605&amp;server=vimeo.com&amp;fullscreen=1&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF"&gt;&lt;param name="quality" value="best" /&gt;&lt;param name="allowscriptaccess" value="always" /&gt;&lt;param name="allowfullscreen" value="true" /&gt;&lt;param name="scale" value="showAll" /&gt;&lt;param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=7809605&amp;server=vimeo.com&amp;fullscreen=1&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF" /&gt;&lt;embed src="http://www.vimeo.com/moogaloop.swf?clip_id=7809605&amp;server=www.vimeo.com&amp;show_title=1&amp;show_byline=0&amp;show_portrait=0&amp;color=00ADEF&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"&gt;&lt;/embed&gt;&lt;/object&gt;&lt;br/&gt;&lt;br/&gt;&lt;p&gt;Não acreditei quando eu vi, mas é verdade. Um vídeo 100% computação gráfica. Humilha quase tudo o que eu já tinha visto antes. Vale a pena ver com o “&lt;i&gt;HD on&lt;/i&gt;” e em &lt;i&gt;fullscreen&lt;/i&gt;.&lt;/p&gt;

&lt;p&gt;Me lembra quando tinha aula de Computação Gráfica na faculdade e aprendi a fazer um quadrado com o &lt;em&gt;openGL&lt;/em&gt;. Sinceramente, &lt;em&gt;openGL&lt;/em&gt; o caralho. A faculdade deveria dar apenas aulas teóricas sobre isso se não tem dinheiro suficiente para comprar licença de softwares de modelagem decentes.&lt;/p&gt;

&lt;p&gt;É frustrante ver que o que você aprendeu é insignificante perto do que é possível fazer.&lt;/p&gt;

&lt;p&gt;Esse vídeo, segundo a descrição do mesmo, foi feito com 3dsmax, Vray, AfterEffects and Premiere. Não conheço nenhum deles mas, pelo resultado, chego a conclusão de que são excelentes.&lt;/p&gt;</description><link>http://blog.gustavopaes.net/post/327198982</link><guid>http://blog.gustavopaes.net/post/327198982</guid><pubDate>Sun, 10 Jan 2010 13:56:02 -0400</pubDate><category>full cg video</category><category>Computer Graphic</category><category>computação gráfica</category></item></channel></rss>
