<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/atom10portuguesefull.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><feed xmlns="http://www.w3.org/2005/Atom" xmlns:thr="http://purl.org/syndication/thread/1.0" xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" xml:lang="en" xml:base="http://felipetonello.com/blog/wp-atom.php">
	<title type="text">Felipe Tonello</title>
	<subtitle type="text">Compartilhe, ajude e cresça</subtitle>

	<updated>2009-01-30T15:38:37Z</updated>
	<generator uri="http://wordpress.org/" version="2.7.1">WordPress</generator>

	<link rel="alternate" type="text/html" href="http://felipetonello.com/blog" />
	<id>http://felipetonello.com/blog/feed/atom/</id>
	

			<link rel="license" type="text/html" href="http://creativecommons.org/licenses/by-sa/2.0/" /><logo>http://www.feedburner.com/fb/images/pub/fb_pwrd.gif</logo><link rel="self" href="http://feeds.feedburner.com/chackalsjc" type="application/atom+xml" /><feedburner:feedFlare href="http://add.my.yahoo.com/rss?url=http%3A%2F%2Ffeeds.feedburner.com%2Fchackalsjc" src="http://us.i1.yimg.com/us.yimg.com/i/us/my/addtomyyahoo4.gif">Subscribe with My Yahoo!</feedburner:feedFlare><feedburner:feedFlare href="http://www.newsgator.com/ngs/subscriber/subext.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fchackalsjc" src="http://www.newsgator.com/images/ngsub1.gif">Subscribe with NewsGator</feedburner:feedFlare><feedburner:feedFlare href="http://feeds.my.aol.com/add.jsp?url=http%3A%2F%2Ffeeds.feedburner.com%2Fchackalsjc" src="http://o.aolcdn.com/favorites.my.aol.com/webmaster/ffclient/webroot/locale/en-US/images/myAOLButtonSmall.gif">Subscribe with My AOL</feedburner:feedFlare><feedburner:feedFlare href="http://www.bloglines.com/sub/http://feeds.feedburner.com/chackalsjc" src="http://www.bloglines.com/images/sub_modern11.gif">Subscribe with Bloglines</feedburner:feedFlare><feedburner:feedFlare href="http://www.netvibes.com/subscribe.php?url=http%3A%2F%2Ffeeds.feedburner.com%2Fchackalsjc" src="http://www.netvibes.com/img/add2netvibes.gif">Subscribe with Netvibes</feedburner:feedFlare><feedburner:feedFlare href="http://fusion.google.com/add?feedurl=http%3A%2F%2Ffeeds.feedburner.com%2Fchackalsjc" src="http://buttons.googlesyndication.com/fusion/add.gif">Subscribe with Google</feedburner:feedFlare><feedburner:feedFlare href="http://www.pageflakes.com/subscribe.aspx?url=http%3A%2F%2Ffeeds.feedburner.com%2Fchackalsjc" src="http://www.pageflakes.com/ImageFile.ashx?instanceId=Static_4&amp;fileName=ATP_blu_91x17.gif">Subscribe with Pageflakes</feedburner:feedFlare><entry>
		<author>
			<name>Felipe Tonello</name>
						<uri>http://felipetonello.com</uri>
					</author>
		<title type="html"><![CDATA[Analisando Número de Fibonacci e Recursividade]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chackalsjc/~3/lmxC3isljmE/" />
		<id>http://felipetonello.com/blog/?p=191</id>
		<updated>2009-01-30T15:38:37Z</updated>
		<published>2009-01-30T04:54:47Z</published>
		<category scheme="http://felipetonello.com/blog" term="Algoritmos" /><category scheme="http://felipetonello.com/blog" term="Artigos" /><category scheme="http://felipetonello.com/blog" term="C++" /><category scheme="http://felipetonello.com/blog" term="Matemática" /><category scheme="http://felipetonello.com/blog" term="Metemática" />		<summary type="html"><![CDATA[O número de Fibonacci é bem conhecido no mundo da computação. Ele é representado por uma função recursiva:

Calculando
Tendo isso em mente é bem fácil criar um algoritmo que calcule o número de Fibonacci, certo?
Na internet normalmente encontramos um algoritmo usando um método de recursão simples. Algo parecido com:
Felipe: Esse artigo usa apenas exemplos em C++
fibo1.cpp

#include [...]]]></summary>
		<content type="html" xml:base="http://felipetonello.com/blog/2009/01/30/analisando-numero-de-fibonacci-e-recursividade/">&lt;p&gt;O &lt;a href="http://pt.wikipedia.org/wiki/Seq%C3%BC%C3%AAncia_de_Fibonacci"&gt;número de Fibonacci&lt;/a&gt; é bem conhecido no mundo da computação. Ele é representado por uma função recursiva:&lt;br /&gt;
&lt;img class="alignnone size-medium wp-image-193" title="Representação da Função de Fibonacci" src="http://felipetonello.com/blog/wp-content/uploads/2009/01/fib-rec-300x55.png" alt="Fibonacci e Proporção áurea" width="300" height="55" /&gt;&lt;/p&gt;
&lt;h3&gt;Calculando&lt;/h3&gt;
&lt;p&gt;Tendo isso em mente é bem fácil criar um algoritmo que calcule o número de Fibonacci, certo?&lt;br /&gt;
Na internet normalmente encontramos um algoritmo usando um método de recursão simples. Algo parecido com:&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Felipe: Esse artigo usa apenas exemplos em C++&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;fibo1.cpp&lt;/strong&gt;&lt;/p&gt;

&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="cpp" style="font-family:monospace;"&gt;&lt;span style="color: #339900;"&gt;#include &amp;lt;iostream&amp;gt;&lt;/span&gt;
&lt;span style="color: #339900;"&gt;#include &amp;lt;cstdlib&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; F&lt;span style="color: #008000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; n&lt;span style="color: #008000;"&gt;&amp;#41;&lt;/span&gt;
&lt;span style="color: #008000;"&gt;&amp;#123;&lt;/span&gt;
    &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; &lt;span style="color: #008000;"&gt;&amp;#40;&lt;/span&gt;n &lt;span style="color: #000080;"&gt;==&lt;/span&gt; &lt;span style="color: #0000dd;"&gt;0&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000dd;"&gt;0&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;
    &lt;span style="color: #0000ff;"&gt;if&lt;/span&gt; &lt;span style="color: #008000;"&gt;&amp;#40;&lt;/span&gt;n &lt;span style="color: #000080;"&gt;==&lt;/span&gt; &lt;span style="color: #0000dd;"&gt;1&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000dd;"&gt;1&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;
    &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; F&lt;span style="color: #008000;"&gt;&amp;#40;&lt;/span&gt;n &lt;span style="color: #000040;"&gt;-&lt;/span&gt; &lt;span style="color: #0000dd;"&gt;1&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #000040;"&gt;+&lt;/span&gt; F&lt;span style="color: #008000;"&gt;&amp;#40;&lt;/span&gt;n &lt;span style="color: #000040;"&gt;-&lt;/span&gt; &lt;span style="color: #0000dd;"&gt;2&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;
&lt;span style="color: #008000;"&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; main&lt;span style="color: #008000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; argc, &lt;span style="color: #0000ff;"&gt;char&lt;/span&gt; &lt;span style="color: #000040;"&gt;*&lt;/span&gt;argv&lt;span style="color: #008000;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;#41;&lt;/span&gt;
&lt;span style="color: #008000;"&gt;&amp;#123;&lt;/span&gt;
    &lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; n &lt;span style="color: #000080;"&gt;=&lt;/span&gt; &lt;span style="color: #0000dd;"&gt;atoi&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;#40;&lt;/span&gt;argv&lt;span style="color: #008000;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;1&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;
    std&lt;span style="color: #008080;"&gt;::&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;cout&lt;/span&gt; &lt;span style="color: #000080;"&gt;&amp;lt;&amp;lt;&lt;/span&gt; F&lt;span style="color: #008000;"&gt;&amp;#40;&lt;/span&gt;n&lt;span style="color: #008000;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #000080;"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color: #008080;"&gt;::&lt;/span&gt;&lt;span style="color: #007788;"&gt;endl&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;
    &lt;span style="color: #0000ff;"&gt;return&lt;/span&gt; &lt;span style="color: #0000dd;"&gt;0&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;
&lt;span style="color: #008000;"&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="http://pastebin.com/f2d429927"&gt;código no pastebin&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Compilando:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;g++ -o fibo1 fibo1.cpp&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Rodando:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;./fibo1 8&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Deu 21, certo? Isso mesmo.&lt;/p&gt;
&lt;h3&gt;Analisando a Função&lt;/h3&gt;
&lt;p&gt;Mas digo para você: &lt;strong&gt;Não use esse programa!&lt;/strong&gt; É totalmente ineficiente. O número de chamadas para calcular &lt;img src="http://felipetonello.com/blog/wp-content/cache/tex_f2ef78cc1f1c158670fe0200c879ec90.png" align="absmiddle" class="tex" alt="F_{N}" /&gt; é exatamente &lt;img src="http://felipetonello.com/blog/wp-content/cache/tex_d355c47a1af9a7a9c8db72fe21a904b1.png" align="absmiddle" class="tex" alt="F_{N+1}" /&gt;. A função calcula recursivamente o mesmo número quantas vezes a chamar. Como podemos ver, a taxa de crescimento do número de Fibonacci tende a &lt;a href="http://pt.wikipedia.org/wiki/Propor%C3%A7%C3%A3o_%C3%A1urea"&gt;Proporção áurea&lt;/a&gt;:&lt;br /&gt;
&lt;img class="alignnone size-full wp-image-192" title="Fibonacci e Proporção áurea" src="http://felipetonello.com/blog/wp-content/uploads/2009/01/fibfunc.png" alt="Fibonacci e Proporção áurea" width="350" height="75" /&gt;&lt;/p&gt;
&lt;p&gt;Lembrando que a razão áurea é definida por:&lt;br /&gt;
&lt;img class="alignnone size-full wp-image-197" title="Razão áurea" src="http://felipetonello.com/blog/wp-content/uploads/2009/01/phi.png" alt="Razão áurea" width="471" height="67" /&gt;&lt;/p&gt;
&lt;p&gt;Sim, fibo1.cpp é uma função exponencial com &lt;a title="Big Oh Notation" href="http://en.wikipedia.org/wiki/Big_O_notation"&gt;Big Theta Notation&lt;/a&gt;, em função do tempo, de:&lt;br /&gt;
&lt;img class="alignnone size-full wp-image-195" title="Big Theta Notation 1" src="http://felipetonello.com/blog/wp-content/uploads/2009/01/fibtheta2.png" alt="Big Theta Notation 1" width="129" height="54" /&gt;&lt;/p&gt;
&lt;p&gt;O tempo de execução para computar &lt;img src="http://felipetonello.com/blog/wp-content/cache/tex_d355c47a1af9a7a9c8db72fe21a904b1.png" align="absmiddle" class="tex" alt="F_{N+1}" /&gt; é &lt;img src="http://felipetonello.com/blog/wp-content/cache/tex_1904b0447484e5dc02146f97393f7c7d.png" align="absmiddle" class="tex" alt="\phi \approx 1,6" /&gt; vezes mais demorado que para calcular &lt;img src="http://felipetonello.com/blog/wp-content/cache/tex_f2ef78cc1f1c158670fe0200c879ec90.png" align="absmiddle" class="tex" alt="F_{N}" /&gt;. Por exemplo, já que &lt;img src="http://felipetonello.com/blog/wp-content/cache/tex_347a548b9bfa501d8dfab29169fecd7a.png" align="absmiddle" class="tex" alt="\phi^{9} &amp;gt; 60" /&gt; e percebemos que nosso computador leva um segundo para calcular &lt;img src="http://felipetonello.com/blog/wp-content/cache/tex_f2ef78cc1f1c158670fe0200c879ec90.png" align="absmiddle" class="tex" alt="F_{N}" /&gt;, então levará mais de um minuto para calcular &lt;img src="http://felipetonello.com/blog/wp-content/cache/tex_7b3288cde05e266c7d61a5619cb0a6a1.png" align="absmiddle" class="tex" alt="F_{N+9}" /&gt; e mais de uma hora para calcular &lt;img src="http://felipetonello.com/blog/wp-content/cache/tex_2b345505aa2c1af734e633dd36a31af3.png" align="absmiddle" class="tex" alt="F_{N+18}" /&gt;.&lt;/p&gt;
&lt;p&gt;Podemos verificar isso calculando &lt;img src="http://felipetonello.com/blog/wp-content/cache/tex_f3e5a57b2417abcd21aae1d52825fdc3.png" align="absmiddle" class="tex" alt="F_{36}" /&gt; e &lt;img src="http://felipetonello.com/blog/wp-content/cache/tex_7d434a0da3291d6176b65638e4fb7b44.png" align="absmiddle" class="tex" alt="F_{45}" /&gt;&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;pet@felipe-opensuse:~/Projetos/C++/algoritmos&gt; time ./fibo1 36&lt;br /&gt;
14930352                                                           &lt;/p&gt;
&lt;p&gt;real    0m1.077s&lt;br /&gt;
user    0m1.040s&lt;br /&gt;
sys     0m0.008s&lt;br /&gt;
pet@felipe-opensuse:~/Projetos/C++/algoritmos&gt; time ./fibo1 45&lt;br /&gt;
1134903170                                                         &lt;/p&gt;
&lt;p&gt;real    0m54.927s&lt;br /&gt;
user    0m54.547s&lt;br /&gt;
sys     0m0.092s &lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Em contraste, usando o método de &lt;a href="http://en.wikipedia.org/wiki/Dynamic_programming"&gt;programação dinâmica&lt;/a&gt; temos um tempo proporcional a N.&lt;/p&gt;
&lt;h3&gt;Programação dinâmica&lt;/h3&gt;
&lt;p&gt;Esse método consiste em guardar os valores dos números já calculados em um array. Fazendo isso, apenas checamos se o array já foi memorizado, e então retornamos o número, caso contrário calculamos recursivamente e assim por diante.&lt;br /&gt;
Lembrando que para um int de 32 bits, &lt;img src="http://felipetonello.com/blog/wp-content/cache/tex_24597c0d5e316e6f858b30f758a6b563.png" align="absmiddle" class="tex" alt="F_{46} = 1836311903" /&gt; será o maior numero a ser calculado.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;fibo2.cpp&lt;/strong&gt;&lt;/p&gt;

&lt;div class="wp_syntax"&gt;&lt;div class="code"&gt;&lt;pre class="c" style="font-family:monospace;"&gt;&lt;span style="color: #339933;"&gt;#include &amp;lt;iostream&amp;gt;&lt;/span&gt;
&lt;span style="color: #339933;"&gt;#include &amp;lt;cstdlib&amp;gt;&lt;/span&gt;
&amp;nbsp;
namespace Fibonacci &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
    &lt;span style="color: #993333;"&gt;int&lt;/span&gt; &lt;span style="color: #339933;"&gt;*&lt;/span&gt;memory&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
    &lt;span style="color: #993333;"&gt;int&lt;/span&gt; F&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #993333;"&gt;int&lt;/span&gt; n&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;
    &lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
        &lt;span style="color: #666666; font-style: italic;"&gt;// int inicializa como 0&lt;/span&gt;
        &lt;span style="color: #b1b100;"&gt;if&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;memory&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;n&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt; &lt;span style="color: #339933;"&gt;!=&lt;/span&gt; &lt;span style="color: #0000dd;"&gt;0&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #b1b100;"&gt;return&lt;/span&gt; memory&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;n&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
        &lt;span style="color: #993333;"&gt;int&lt;/span&gt; aux &lt;span style="color: #339933;"&gt;=&lt;/span&gt; n&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
        &lt;span style="color: #b1b100;"&gt;if&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;n &lt;span style="color: #339933;"&gt;&amp;lt;&lt;/span&gt; &lt;span style="color: #0000dd;"&gt;0&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #b1b100;"&gt;return&lt;/span&gt; &lt;span style="color: #0000dd;"&gt;0&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
        &lt;span style="color: #b1b100;"&gt;if&lt;/span&gt; &lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;n &lt;span style="color: #339933;"&gt;&amp;gt;&lt;/span&gt; &lt;span style="color: #0000dd;"&gt;1&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; aux &lt;span style="color: #339933;"&gt;=&lt;/span&gt; F&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;n&lt;span style="color: #339933;"&gt;-&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;1&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #339933;"&gt;+&lt;/span&gt; F&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;n&lt;span style="color: #339933;"&gt;-&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;2&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
        &lt;span style="color: #b1b100;"&gt;return&lt;/span&gt; memory&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;n&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; aux&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
    &lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;
&lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
&lt;span style="color: #993333;"&gt;int&lt;/span&gt; main&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #993333;"&gt;int&lt;/span&gt; argc&lt;span style="color: #339933;"&gt;,&lt;/span&gt; &lt;span style="color: #993333;"&gt;char&lt;/span&gt; &lt;span style="color: #339933;"&gt;*&lt;/span&gt;argv&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;
&lt;span style="color: #009900;"&gt;&amp;#123;&lt;/span&gt;
    &lt;span style="color: #993333;"&gt;int&lt;/span&gt; n &lt;span style="color: #339933;"&gt;=&lt;/span&gt; atoi&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;argv&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;1&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
    Fibonacci&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #202020;"&gt;memory&lt;/span&gt; &lt;span style="color: #339933;"&gt;=&lt;/span&gt; new &lt;span style="color: #993333;"&gt;int&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;n&lt;span style="color: #339933;"&gt;+&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;1&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
    std&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #000066;"&gt;cout&lt;/span&gt; &lt;span style="color: #339933;"&gt;&amp;lt;&amp;lt;&lt;/span&gt; Fibonacci&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #202020;"&gt;F&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#40;&lt;/span&gt;n&lt;span style="color: #009900;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #339933;"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #202020;"&gt;endl&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
    delete &lt;span style="color: #009900;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #009900;"&gt;&amp;#93;&lt;/span&gt; Fibonacci&lt;span style="color: #339933;"&gt;::&lt;/span&gt;&lt;span style="color: #202020;"&gt;memory&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
    &lt;span style="color: #b1b100;"&gt;return&lt;/span&gt; &lt;span style="color: #0000dd;"&gt;0&lt;/span&gt;&lt;span style="color: #339933;"&gt;;&lt;/span&gt;
&lt;span style="color: #009900;"&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;&lt;/div&gt;&lt;/div&gt;

&lt;p&gt;&lt;a href="http://pastebin.com/f12eb1fa0"&gt;código no pastebin&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Compilando:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;g++ -o fibo2 fibo2.cpp&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Rodando:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;./fibo2 8&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Deu 21, de novo? =)&lt;/p&gt;
&lt;p&gt;Aplicamos aqui uma técnica chamada &lt;em&gt;bottom-up dynamic programming&lt;/em&gt;. Se aplica em uma função recursiva que podemos salvar tempo por armazenar valores anteriores que serão usados depois. Essa técnica tem sido usada para uma gama grande de algoritmos e aplicações. E essa simples mudança fez com que nosso algoritmo passasse de exponencial para linear.&lt;/p&gt;
&lt;p&gt;Agora temos uma função, em relação ao tempo, proporcional ao N.&lt;br /&gt;
&lt;img src="http://felipetonello.com/blog/wp-content/uploads/2009/01/fibtheta21.png" alt="Big Theta Notation 2" title="Big Theta Notation 2" width="113" height="50" class="alignnone size-full wp-image-198" /&gt;&lt;/p&gt;
&lt;h3&gt;Comparando&lt;/h3&gt;
&lt;p&gt;Fazendo vários testes, podemos chegar em uma tabela de resultados, em função do &lt;strong&gt;tempo&lt;/strong&gt;:&lt;/p&gt;
&lt;table&gt;
&lt;tr&gt;
&lt;th&gt;arquivo&lt;/th&gt;
&lt;th&gt;&lt;img src="http://felipetonello.com/blog/wp-content/cache/tex_cb09d855eefea0dc3acd2127f86fa324.png" align="absmiddle" class="tex" alt="F_{8}" /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src="http://felipetonello.com/blog/wp-content/cache/tex_f3e5a57b2417abcd21aae1d52825fdc3.png" align="absmiddle" class="tex" alt="F_{36}" /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src="http://felipetonello.com/blog/wp-content/cache/tex_7d434a0da3291d6176b65638e4fb7b44.png" align="absmiddle" class="tex" alt="F_{45}" /&gt;&lt;/th&gt;
&lt;th&gt;&lt;img src="http://felipetonello.com/blog/wp-content/cache/tex_58915190e9ff27470c85b6ddaaad35fe.png" align="absmiddle" class="tex" alt="F_{46}" /&gt;&lt;/th&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;fibo1.cpp&lt;/td&gt;
&lt;td&gt;0m0.009s&lt;/td&gt;
&lt;td&gt;0m1.156s&lt;/td&gt;
&lt;td&gt;0m54.927s&lt;/td&gt;
&lt;td&gt;1m29.403s&lt;/td&gt;
&lt;/tr&gt;
&lt;tr&gt;
&lt;td&gt;fibo2.cpp&lt;/td&gt;
&lt;td&gt;0m0.007s&lt;/td&gt;
&lt;td&gt;0m0.007s&lt;/td&gt;
&lt;td&gt;0m0.006s&lt;/td&gt;
&lt;td&gt;0m0.007s&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;p&gt;fibo2.cpp é constante? Sim! Para N relativamente pequeno &lt;strong&gt;fibo2.cpp&lt;/strong&gt; calcula em tempo constante.&lt;/p&gt;
&lt;p&gt;Será interessante ver até quanto esse algoritmo agüenta(ta errado né? hehe ¬¬) fazer em tempo constante. Alguém se habilita?&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=lmxC3isljmE:sApcpm9PIaY:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=lmxC3isljmE:sApcpm9PIaY:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=lmxC3isljmE:sApcpm9PIaY:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=lmxC3isljmE:sApcpm9PIaY:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?i=lmxC3isljmE:sApcpm9PIaY:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=lmxC3isljmE:sApcpm9PIaY:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=lmxC3isljmE:sApcpm9PIaY:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chackalsjc/~4/lmxC3isljmE" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://felipetonello.com/blog/2009/01/30/analisando-numero-de-fibonacci-e-recursividade/#comments" thr:count="10" />
		<link rel="replies" type="application/atom+xml" href="http://felipetonello.com/blog/2009/01/30/analisando-numero-de-fibonacci-e-recursividade/feed/atom/" thr:count="10" />
		<thr:total>10</thr:total>
	<feedburner:origLink>http://felipetonello.com/blog/2009/01/30/analisando-numero-de-fibonacci-e-recursividade/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Felipe Tonello</name>
						<uri>http://felipetonello.com</uri>
					</author>
		<title type="html"><![CDATA[ack, um grep melhorado]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chackalsjc/~3/U6eBd1jPkj4/" />
		<id>http://felipetonello.com/blog/?p=183</id>
		<updated>2009-01-25T18:10:00Z</updated>
		<published>2009-01-25T18:00:14Z</published>
		<category scheme="http://felipetonello.com/blog" term="Linux" /><category scheme="http://felipetonello.com/blog" term="Software" />		<summary type="html"><![CDATA[Se você é fan do grep(especialmente com o -drecurse), mas sempre vendo o .svn ou outro diretório irritante, você precisa do ack.
Descobri esse programinha num blog do KDE e gostei muito!
Algumas coisas legais:

output bonitinho(colorido)
highlight
boa organização
fácil configuração
e até mesmo documentação

Digitar menos, o que você quer mais?
Exemplo:

]]></summary>
		<content type="html" xml:base="http://felipetonello.com/blog/2009/01/25/ack-um-grep-melhorado/">&lt;p&gt;Se você é fan do grep(especialmente com o -drecurse), mas sempre vendo o .svn ou outro diretório irritante, você precisa do &lt;a title="ack" href="http://petdance.com/ack/"&gt;ack&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Descobri esse programinha num blog do KDE e gostei muito!&lt;/p&gt;
&lt;p&gt;Algumas coisas legais:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;output bonitinho(colorido)&lt;/li&gt;
&lt;li&gt;highlight&lt;/li&gt;
&lt;li&gt;boa organização&lt;/li&gt;
&lt;li&gt;fácil configuração&lt;/li&gt;
&lt;li&gt;e até mesmo documentação&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Digitar menos, o que você quer mais?&lt;/p&gt;
&lt;p&gt;Exemplo:&lt;/p&gt;
&lt;p&gt;&lt;img class="alignnone size-full wp-image-184" title="ack in action" src="http://felipetonello.com/blog/wp-content/uploads/2009/01/ack.png" alt="ack in action" width="493" height="300" /&gt;&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=U6eBd1jPkj4:9WftT1ZS1K0:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=U6eBd1jPkj4:9WftT1ZS1K0:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=U6eBd1jPkj4:9WftT1ZS1K0:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=U6eBd1jPkj4:9WftT1ZS1K0:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?i=U6eBd1jPkj4:9WftT1ZS1K0:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=U6eBd1jPkj4:9WftT1ZS1K0:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=U6eBd1jPkj4:9WftT1ZS1K0:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chackalsjc/~4/U6eBd1jPkj4" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://felipetonello.com/blog/2009/01/25/ack-um-grep-melhorado/#comments" thr:count="1" />
		<link rel="replies" type="application/atom+xml" href="http://felipetonello.com/blog/2009/01/25/ack-um-grep-melhorado/feed/atom/" thr:count="1" />
		<thr:total>1</thr:total>
	<feedburner:origLink>http://felipetonello.com/blog/2009/01/25/ack-um-grep-melhorado/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Felipe Tonello</name>
						<uri>http://felipetonello.com</uri>
					</author>
		<title type="html"><![CDATA[Josephus Problem, resolvendo-o de maneira simples]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chackalsjc/~3/MNczl6_4q2w/" />
		<id>http://felipetonello.com/blog/?p=156</id>
		<updated>2009-01-09T18:31:05Z</updated>
		<published>2009-01-08T18:40:28Z</published>
		<category scheme="http://felipetonello.com/blog" term="Algoritmos" /><category scheme="http://felipetonello.com/blog" term="Artigos" /><category scheme="http://felipetonello.com/blog" term="C++" /><category scheme="http://felipetonello.com/blog" term="Eventos" /><category scheme="http://felipetonello.com/blog" term="Matemática" /><category scheme="http://felipetonello.com/blog" term="Metemática" />		<summary type="html"><![CDATA[Josephus Problem é um problema bem legal que estudei no livro Concrete Mathematics.
Josephus foi um historiador judeu do primeiro século. A lenda conta que ele e 40 de seus homens estavam presos em uma caverna pelos Romanos. Eles decidiram suicidar-se à ser capturados. Formaram um circulo e começaram a se matar, da 3ª à 3ªa [...]]]></summary>
		<content type="html" xml:base="http://felipetonello.com/blog/2009/01/08/josephus-problem-resolvendo-o-de-maneira-simples/">&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Josephus_problem"&gt;Josephus Problem&lt;/a&gt; é um problema bem legal que estudei no livro &lt;a href="http://www.amazon.com/Concrete-Mathematics-Foundation-Computer-Science/dp/0201558025"&gt;Concrete Mathematics&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;&lt;a href="http://en.wikipedia.org/wiki/Flavius_Josephus"&gt;Josephus&lt;/a&gt; foi um historiador judeu do primeiro século. A lenda conta que ele e 40 de seus homens estavam presos em uma caverna pelos Romanos. Eles decidiram suicidar-se à ser capturados. Formaram um circulo e começaram a se matar, da 3ª à 3ªa pessoa em ordem da fila. Como Josephus não queria morrer, ele foi capaz de escolher o melhor lugar, afim de sobreviver, e juntar-se os Romanos que o capturaram.&lt;/p&gt;
&lt;h3&gt;O Problema&lt;/h3&gt;
&lt;p&gt;Na prática o problema teria &lt;em&gt;N&lt;/em&gt; pessoas em um círculo, iria ser percorrido &lt;em&gt;M - 1&lt;/em&gt; pessoas e o &lt;em&gt;M&lt;/em&gt; iria ser morto, assim por diante, até sobrar uma única pessoa.&lt;/p&gt;
&lt;h3&gt;A Solução&lt;/h3&gt;
&lt;p&gt;Podemos representar a solução por uma função recursiva, para &lt;em&gt;N par e M = 2&lt;/em&gt;:&lt;/p&gt;
&lt;p&gt;&lt;img class="alignnone size-full wp-image-157" title="Josephus Problem" src="http://felipetonello.com/blog/wp-content/uploads/2009/01/josephus1.png" alt="" width="160" height="21" /&gt;&lt;/p&gt;
&lt;p&gt;e para N ímpar e &lt;em&gt;M = 2&lt;/em&gt;, temos:&lt;/p&gt;
&lt;p&gt;&lt;img class="alignnone size-full wp-image-158" title="Josephus Problem" src="http://felipetonello.com/blog/wp-content/uploads/2009/01/josephus2.png" alt="" width="194" height="21" /&gt;&lt;/p&gt;
&lt;p&gt;Não vou postar a solução genérica aqui pois exige uma grande explicação e esse não é o objetivo do post. Você pode ver na &lt;a href="http://en.wikipedia.org/wiki/Josephus_problem"&gt;wikipedia&lt;/a&gt; ou então comprar o &lt;a href="http://www.amazon.com/Concrete-Mathematics-Foundation-Computer-Science/dp/0201558025"&gt;livro&lt;/a&gt;, caso queria saber mais.&lt;/p&gt;
&lt;p&gt;O interessante é que o algoritmo para solução genérica é bem simples em C++. Usando &lt;a href="http://en.wikipedia.org/wiki/Linked_list"&gt;listas ligadas(linked lists)&lt;/a&gt; é simples, fácil de entender e super rápido a execução do programa.&lt;/p&gt;
&lt;p&gt;&lt;strong&gt;Josephus.cpp&lt;/strong&gt;&lt;/p&gt;

&lt;div class="wp_syntax"&gt;&lt;table&gt;&lt;tr&gt;&lt;td class="line_numbers"&gt;&lt;pre&gt;1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
&lt;/pre&gt;&lt;/td&gt;&lt;td class="code"&gt;&lt;pre class="cpp" style="font-family:monospace;"&gt;&lt;span style="color: #339900;"&gt;#include &amp;lt;iostream&amp;gt;&lt;/span&gt;
&lt;span style="color: #339900;"&gt;#include &amp;lt;cstdlib&amp;gt;&lt;/span&gt;
&amp;nbsp;
&lt;span style="color: #0000ff;"&gt;struct&lt;/span&gt; Pessoa &lt;span style="color: #008000;"&gt;&amp;#123;&lt;/span&gt;
	&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; num&lt;span style="color: #008080;"&gt;;&lt;/span&gt;
	Pessoa &lt;span style="color: #000040;"&gt;*&lt;/span&gt;prox&lt;span style="color: #008080;"&gt;;&lt;/span&gt;
	Pessoa&lt;span style="color: #008000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; x, Pessoa &lt;span style="color: #000040;"&gt;*&lt;/span&gt;p&lt;span style="color: #008000;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #008000;"&gt;&amp;#123;&lt;/span&gt;
		num &lt;span style="color: #000080;"&gt;=&lt;/span&gt; x&lt;span style="color: #008080;"&gt;;&lt;/span&gt;
		prox &lt;span style="color: #000080;"&gt;=&lt;/span&gt; p&lt;span style="color: #008080;"&gt;;&lt;/span&gt;
	&lt;span style="color: #008000;"&gt;&amp;#125;&lt;/span&gt;
&lt;span style="color: #008000;"&gt;&amp;#125;&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;
&amp;nbsp;
&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; main&lt;span style="color: #008000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; argc, &lt;span style="color: #0000ff;"&gt;char&lt;/span&gt; &lt;span style="color: #000040;"&gt;*&lt;/span&gt;argv&lt;span style="color: #008000;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #008000;"&gt;&amp;#123;&lt;/span&gt;
	&lt;span style="color: #666666;"&gt;//'a' recebe primeira pessoa criada&lt;/span&gt;
	&lt;span style="color: #666666;"&gt;//e 'a' é linkado para si mesmo&lt;/span&gt;
	&lt;span style="color: #666666;"&gt;//depois 'b' é criado apontado para 'a'&lt;/span&gt;
	&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; N &lt;span style="color: #000080;"&gt;=&lt;/span&gt; &lt;span style="color: #0000dd;"&gt;atoi&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;#40;&lt;/span&gt;argv&lt;span style="color: #008000;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;1&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;#41;&lt;/span&gt;, M &lt;span style="color: #000080;"&gt;=&lt;/span&gt; &lt;span style="color: #0000dd;"&gt;atoi&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;#40;&lt;/span&gt;argv&lt;span style="color: #008000;"&gt;&amp;#91;&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;2&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;#93;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;
	Pessoa &lt;span style="color: #000040;"&gt;*&lt;/span&gt;a &lt;span style="color: #000080;"&gt;=&lt;/span&gt; &lt;span style="color: #0000dd;"&gt;new&lt;/span&gt; Pessoa&lt;span style="color: #008000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;1&lt;/span&gt;, &lt;span style="color: #0000dd;"&gt;0&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;
	a&lt;span style="color: #000040;"&gt;-&lt;/span&gt;&lt;span style="color: #000080;"&gt;&amp;gt;&lt;/span&gt;prox &lt;span style="color: #000080;"&gt;=&lt;/span&gt; a&lt;span style="color: #008080;"&gt;;&lt;/span&gt;
	Pessoa &lt;span style="color: #000040;"&gt;*&lt;/span&gt;b &lt;span style="color: #000080;"&gt;=&lt;/span&gt; a&lt;span style="color: #008080;"&gt;;&lt;/span&gt;
&amp;nbsp;
	&lt;span style="color: #666666;"&gt;// Aloca na memória todas as pessoas&lt;/span&gt;
	&lt;span style="color: #666666;"&gt;// e 'b' recebe a última(enésima pessoa)&lt;/span&gt;
	&lt;span style="color: #666666;"&gt;// pois a contagem começa pela primeira('a')&lt;/span&gt;
	&lt;span style="color: #0000ff;"&gt;for&lt;/span&gt; &lt;span style="color: #008000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; i &lt;span style="color: #000080;"&gt;=&lt;/span&gt; &lt;span style="color: #0000dd;"&gt;2&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt; i &lt;span style="color: #000080;"&gt;&amp;lt;=&lt;/span&gt; N&lt;span style="color: #008080;"&gt;;&lt;/span&gt; &lt;span style="color: #000040;"&gt;++&lt;/span&gt;i&lt;span style="color: #008000;"&gt;&amp;#41;&lt;/span&gt;
		b &lt;span style="color: #000080;"&gt;=&lt;/span&gt; &lt;span style="color: #008000;"&gt;&amp;#40;&lt;/span&gt;b&lt;span style="color: #000040;"&gt;-&lt;/span&gt;&lt;span style="color: #000080;"&gt;&amp;gt;&lt;/span&gt;prox &lt;span style="color: #000080;"&gt;=&lt;/span&gt; &lt;span style="color: #0000dd;"&gt;new&lt;/span&gt; Pessoa&lt;span style="color: #008000;"&gt;&amp;#40;&lt;/span&gt;i, a&lt;span style="color: #008000;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #008000;"&gt;&amp;#41;&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;
&amp;nbsp;
	&lt;span style="color: #666666;"&gt;// Loop enquanto 'b' não estiver apontado&lt;/span&gt;
	&lt;span style="color: #666666;"&gt;// o próximo para ele mesmo&lt;/span&gt;
	&lt;span style="color: #0000ff;"&gt;while&lt;/span&gt; &lt;span style="color: #008000;"&gt;&amp;#40;&lt;/span&gt;b &lt;span style="color: #000040;"&gt;!&lt;/span&gt;&lt;span style="color: #000080;"&gt;=&lt;/span&gt; b&lt;span style="color: #000040;"&gt;-&lt;/span&gt;&lt;span style="color: #000080;"&gt;&amp;gt;&lt;/span&gt;prox&lt;span style="color: #008000;"&gt;&amp;#41;&lt;/span&gt; &lt;span style="color: #008000;"&gt;&amp;#123;&lt;/span&gt;
		&lt;span style="color: #666666;"&gt;// 'b' recebe a emésima pessoa&lt;/span&gt;
		&lt;span style="color: #0000ff;"&gt;for&lt;/span&gt; &lt;span style="color: #008000;"&gt;&amp;#40;&lt;/span&gt;&lt;span style="color: #0000ff;"&gt;int&lt;/span&gt; i &lt;span style="color: #000080;"&gt;=&lt;/span&gt; &lt;span style="color: #0000dd;"&gt;1&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt; i &lt;span style="color: #000080;"&gt;&amp;lt;&lt;/span&gt; M&lt;span style="color: #008080;"&gt;;&lt;/span&gt; &lt;span style="color: #000040;"&gt;++&lt;/span&gt;i&lt;span style="color: #008000;"&gt;&amp;#41;&lt;/span&gt;
			b &lt;span style="color: #000080;"&gt;=&lt;/span&gt; b&lt;span style="color: #000040;"&gt;-&lt;/span&gt;&lt;span style="color: #000080;"&gt;&amp;gt;&lt;/span&gt;prox&lt;span style="color: #008080;"&gt;;&lt;/span&gt;
		a &lt;span style="color: #000080;"&gt;=&lt;/span&gt; b&lt;span style="color: #000040;"&gt;-&lt;/span&gt;&lt;span style="color: #000080;"&gt;&amp;gt;&lt;/span&gt;prox&lt;span style="color: #008080;"&gt;;&lt;/span&gt;
		b&lt;span style="color: #000040;"&gt;-&lt;/span&gt;&lt;span style="color: #000080;"&gt;&amp;gt;&lt;/span&gt;prox &lt;span style="color: #000080;"&gt;=&lt;/span&gt; a&lt;span style="color: #000040;"&gt;-&lt;/span&gt;&lt;span style="color: #000080;"&gt;&amp;gt;&lt;/span&gt;prox&lt;span style="color: #008080;"&gt;;&lt;/span&gt;
		&lt;span style="color: #0000dd;"&gt;delete&lt;/span&gt; a&lt;span style="color: #008080;"&gt;;&lt;/span&gt; &lt;span style="color: #666666;"&gt;// 'a' é morto =/&lt;/span&gt;
	&lt;span style="color: #008000;"&gt;&amp;#125;&lt;/span&gt;
&amp;nbsp;
	&lt;span style="color: #666666;"&gt;// O sobrevivente _o/&lt;/span&gt;
	std&lt;span style="color: #008080;"&gt;::&lt;/span&gt;&lt;span style="color: #0000dd;"&gt;cout&lt;/span&gt; &lt;span style="color: #000080;"&gt;&amp;lt;&amp;lt;&lt;/span&gt; b&lt;span style="color: #000040;"&gt;-&lt;/span&gt;&lt;span style="color: #000080;"&gt;&amp;gt;&lt;/span&gt;num &lt;span style="color: #000080;"&gt;&amp;lt;&amp;lt;&lt;/span&gt; std&lt;span style="color: #008080;"&gt;::&lt;/span&gt;&lt;span style="color: #007788;"&gt;endl&lt;/span&gt;&lt;span style="color: #008080;"&gt;;&lt;/span&gt;
&lt;span style="color: #008000;"&gt;&amp;#125;&lt;/span&gt;&lt;/pre&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;

&lt;p&gt;Ou então se preferir um link para o &lt;a href="http://pastebin.com/f45d06530"&gt;pastebin&lt;/a&gt;.&lt;/p&gt;
&lt;h3&gt;Analisando o Resultado&lt;/h3&gt;
&lt;p&gt;após compilar&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;g++ -o Josephus Josephus.cpp&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;rode o programa com N = 10 e M = 2&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;./Josephus 10 2&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;O valor deu 5? Verifique com a função. Bateu os valores?&lt;br /&gt;
Agora vá testando para 1 &amp;lt;= N &amp;lt;= 16 e M = 2.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;for n in `seq 16`; do echo -n &amp;#8220;$n: &amp;#8220;; ./Josephus $n 2; done&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Saída do loop:&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;1: 1&lt;br /&gt;
2: 1&lt;br /&gt;
3: 3&lt;br /&gt;
4: 1&lt;br /&gt;
5: 3&lt;br /&gt;
6: 5&lt;br /&gt;
7: 7&lt;br /&gt;
8: 1&lt;br /&gt;
9: 3&lt;br /&gt;
10: 5&lt;br /&gt;
11: 7&lt;br /&gt;
12: 9&lt;br /&gt;
13: 11&lt;br /&gt;
14: 13&lt;br /&gt;
15: 15&lt;br /&gt;
16: 1&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Perceberam um certo padrão entre as respostas? A função genérica usa justamente esse padrão binário para solução.&lt;/p&gt;
&lt;p&gt;Ultimamente eu estou mais dedicado ao estudo de algoritmos, C++, C e Python(é claro). Depois pretendo postar uma analise desse algoritmo passo a passo.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=MNczl6_4q2w:1h48RdvtU8E:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=MNczl6_4q2w:1h48RdvtU8E:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=MNczl6_4q2w:1h48RdvtU8E:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=MNczl6_4q2w:1h48RdvtU8E:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?i=MNczl6_4q2w:1h48RdvtU8E:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=MNczl6_4q2w:1h48RdvtU8E:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=MNczl6_4q2w:1h48RdvtU8E:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chackalsjc/~4/MNczl6_4q2w" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://felipetonello.com/blog/2009/01/08/josephus-problem-resolvendo-o-de-maneira-simples/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://felipetonello.com/blog/2009/01/08/josephus-problem-resolvendo-o-de-maneira-simples/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://felipetonello.com/blog/2009/01/08/josephus-problem-resolvendo-o-de-maneira-simples/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Felipe Tonello</name>
						<uri>http://felipetonello.com</uri>
					</author>
		<title type="html"><![CDATA[Voltando com TUDO!]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chackalsjc/~3/zdQyIQBzruA/" />
		<id>http://felipetonello.com/blog/?p=152</id>
		<updated>2008-12-09T15:26:17Z</updated>
		<published>2008-12-09T15:24:58Z</published>
		<category scheme="http://felipetonello.com/blog" term="Diversos" />		<summary type="html"><![CDATA[Eu fiquei um bom tempo sem postar nada aqui, sem escrever nenhum tutorial ou artigo. Não posso mentir e dizer que só estava ocupado, mas realmente fiquei com um poco de preguiça.  Agora nas férias o projeto RobotQt voltará com tudo! Até criei uma página no Ohloh para o projeto para quem quiser acompanhar [...]]]></summary>
		<content type="html" xml:base="http://felipetonello.com/blog/2008/12/09/voltando-com-tudo/">&lt;p&gt;Eu fiquei um bom tempo sem postar nada aqui, sem escrever nenhum tutorial ou artigo. Não posso mentir e dizer que &lt;strong&gt;só&lt;/strong&gt; estava ocupado, mas realmente fiquei com um poco de preguiça.  Agora nas férias o projeto &lt;a href="http://code.google.com/p/robotqt/"&gt;RobotQt&lt;/a&gt; voltará com tudo! Até criei uma página no &lt;a title="RobotQt no Ohloh" href="https://www.ohloh.net/p/robotqt"&gt;Ohloh para o projeto&lt;/a&gt; para quem quiser acompanhar mais de perto o projeto.  Também organizei todas minhas to-do&amp;#8217;s list. Como:&lt;/p&gt;
&lt;ul&gt;
&lt;li&gt;Atualizar plugin wp-catshow&lt;/li&gt;
&lt;li&gt;Criar plugin wp-fileupload(novidade &lt;img src='http://felipetonello.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /&gt; )&lt;/li&gt;
&lt;li&gt;&lt;strong&gt;Atualizar mais o blog com artigos e tutoriais hehe&lt;/strong&gt;&lt;/li&gt;
&lt;li&gt;Contribuir para o KDE4&lt;/li&gt;
&lt;li&gt;Continuar ferozmente meus estudos de algoritmos&lt;/li&gt;
&lt;/ul&gt;
&lt;p&gt;Agora bola pra frente e vamos lá!&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=zdQyIQBzruA:stKduXpC_dw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=zdQyIQBzruA:stKduXpC_dw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=zdQyIQBzruA:stKduXpC_dw:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=zdQyIQBzruA:stKduXpC_dw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?i=zdQyIQBzruA:stKduXpC_dw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=zdQyIQBzruA:stKduXpC_dw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=zdQyIQBzruA:stKduXpC_dw:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chackalsjc/~4/zdQyIQBzruA" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://felipetonello.com/blog/2008/12/09/voltando-com-tudo/#comments" thr:count="4" />
		<link rel="replies" type="application/atom+xml" href="http://felipetonello.com/blog/2008/12/09/voltando-com-tudo/feed/atom/" thr:count="4" />
		<thr:total>4</thr:total>
	<feedburner:origLink>http://felipetonello.com/blog/2008/12/09/voltando-com-tudo/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Felipe Tonello</name>
						<uri>http://felipetonello.com</uri>
					</author>
		<title type="html"><![CDATA[PyConBrasil 2008 lá vou eu!]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chackalsjc/~3/h9YfGlIGkiU/" />
		<id>http://felipetonello.com/blog/?p=146</id>
		<updated>2008-08-13T00:48:26Z</updated>
		<published>2008-08-13T00:48:26Z</published>
		<category scheme="http://felipetonello.com/blog" term="Eventos" /><category scheme="http://felipetonello.com/blog" term="Python" /><category scheme="http://felipetonello.com/blog" term="PyConBrasil" />		<summary type="html"><![CDATA[Galera, é com muita alegria que estou postando novamente aqui.
Primeiramente gostaria de dizer que mudei de trabalho. Estou trabalhando remotamente, em casa, para uma empresa canadense de Open Source e Linux chamada Savoir-faire Linux! Uma maravilha hehehehe
Segundo, é que voltei a trabalhar com coisas que gosto, como Python, C++ e KDE4.
Portanto estarei indo para a [...]]]></summary>
		<content type="html" xml:base="http://felipetonello.com/blog/2008/08/12/pyconbrasil-2008-la-vou-eu/">&lt;p&gt;Galera, é com muita alegria que estou postando novamente aqui.&lt;/p&gt;
&lt;p&gt;Primeiramente gostaria de dizer que mudei de trabalho. Estou trabalhando remotamente, em casa, para uma empresa canadense de Open Source e Linux chamada &lt;a title="Savoir-faire Linux" href="http://savoirfairelinux.com"&gt;Savoir-faire Linux&lt;/a&gt;! Uma maravilha hehehehe&lt;/p&gt;
&lt;p&gt;Segundo, é que voltei a trabalhar com coisas que gosto, como Python, C++ e KDE4.&lt;/p&gt;
&lt;p&gt;Portanto estarei indo para a &lt;a title="PyConBrasil 2008" href="http://pyconbrasil.com.br/"&gt;PyConBrasil 2008&lt;/a&gt;, que vai ser no Rio de Janeiro. &lt;a href="http://pyconbrasil.com.br/sobre-o-evento/inscricao"&gt;&lt;img class="alignnone size-full wp-image-147" title="PyConBrasil 2008. Inscreva-se!" src="http://felipetonello.com/blog/wp-content/uploads/2008/08/pyconbrasil4-fullparado.gif" alt="" width="468" height="60" /&gt;&lt;/a&gt;&lt;/p&gt;
&lt;p&gt;Nós da GruPy-SP estamos tentando fazer algum arranjo para ir de onibus fretado e ficar num hotel por lá, vai ser super legal!&lt;/p&gt;
&lt;p&gt;E você, vai?&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=h9YfGlIGkiU:OqsfJwRj01c:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=h9YfGlIGkiU:OqsfJwRj01c:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=h9YfGlIGkiU:OqsfJwRj01c:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=h9YfGlIGkiU:OqsfJwRj01c:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?i=h9YfGlIGkiU:OqsfJwRj01c:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=h9YfGlIGkiU:OqsfJwRj01c:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=h9YfGlIGkiU:OqsfJwRj01c:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chackalsjc/~4/h9YfGlIGkiU" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://felipetonello.com/blog/2008/08/12/pyconbrasil-2008-la-vou-eu/#comments" thr:count="2" />
		<link rel="replies" type="application/atom+xml" href="http://felipetonello.com/blog/2008/08/12/pyconbrasil-2008-la-vou-eu/feed/atom/" thr:count="2" />
		<thr:total>2</thr:total>
	<feedburner:origLink>http://felipetonello.com/blog/2008/08/12/pyconbrasil-2008-la-vou-eu/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Felipe Tonello</name>
						<uri>http://felipetonello.com</uri>
					</author>
		<title type="html"><![CDATA[Ajude a sustentar a Wikipédia e outros projetos, sem colocar a mão no bolso, e concorra a um Eee PC!]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chackalsjc/~3/zpSzCAVpfHk/" />
		<id>http://felipetonello.com/blog/?p=141</id>
		<updated>2008-07-25T18:29:47Z</updated>
		<published>2008-07-25T18:18:32Z</published>
		<category scheme="http://felipetonello.com/blog" term="Diversos" /><category scheme="http://felipetonello.com/blog" term="Linux" />		<summary type="html"><![CDATA[Ajude a sustentar a Wikipédia e outros projetos, sem colocar a mão no bolso, e concorra a um Eee PC!
…e também a pen drives, card drives, camisetas geeks, livros e mais! O BR-Linux e o Efetividade lançaram uma campanha para ajudar a Wikimedia Foundation e outros mantenedores de projetos que usamos no dia-a-dia on-line. Se [...]]]></summary>
		<content type="html" xml:base="http://felipetonello.com/blog/2008/07/25/ajude-a-sustentar-a-wikipedia-e-outros-projetos-sem-colocar-a-mao-no-bolso-e-concorra-a-um-eee-pc/">&lt;p&gt;&lt;strong&gt;Ajude a sustentar a Wikipédia e outros projetos, sem colocar a mão no bolso, e concorra a um Eee PC!&lt;/strong&gt;&lt;br /&gt;
…e também a pen drives, card drives, camisetas geeks, livros e mais! O &lt;a href="http://br-linux.org/" target="_blank"&gt;BR-Linux&lt;/a&gt; e o &lt;a href="http://www.efetividade.net/" target="_blank"&gt;Efetividade&lt;/a&gt; lançaram uma &lt;a href="http://br-linux.org/2008/campanha-wikipedia/" target="_blank"&gt;campanha&lt;/a&gt; para ajudar a Wikimedia Foundation e outros mantenedores de projetos que usamos no dia-a-dia on-line. Se você puder doar diretamente, ou contribuir de outra forma, são sempre melhores opções. Mas se não puder, veja as regras da promoção e &lt;a href="http://br-linux.org/2008/campanha-wikipedia/" target="_blank"&gt;participe&lt;/a&gt; - quanto mais divulgação, maior será a doação do BR-Linux e do Efetividade, e você ainda concorre a diversos brindes!&lt;/p&gt;
&lt;div id="attachment_144" class="wp-caption alignnone" style="width: 310px"&gt;&lt;a href="http://felipetonello.com/blog/wp-content/uploads/2008/07/brindes0708.png"&gt;&lt;img class="size-medium wp-image-144" title="Brinder Br-Linux e Efetividade.net" src="http://felipetonello.com/blog/wp-content/uploads/2008/07/brindes0708-300x214.png" alt="Brinder Br-Linux e Efetividade.net" width="300" height="214" /&gt;&lt;/a&gt;&lt;p class="wp-caption-text"&gt;Brinder Br-Linux e Efetividade.net&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;&lt;img src="file:///C:/DOCUME~1/ftonello/LOCALS~1/Temp/moz-screenshot.jpg" alt="" /&gt;&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=zpSzCAVpfHk:d4WjFy_cZOE:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=zpSzCAVpfHk:d4WjFy_cZOE:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=zpSzCAVpfHk:d4WjFy_cZOE:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=zpSzCAVpfHk:d4WjFy_cZOE:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?i=zpSzCAVpfHk:d4WjFy_cZOE:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=zpSzCAVpfHk:d4WjFy_cZOE:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=zpSzCAVpfHk:d4WjFy_cZOE:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chackalsjc/~4/zpSzCAVpfHk" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://felipetonello.com/blog/2008/07/25/ajude-a-sustentar-a-wikipedia-e-outros-projetos-sem-colocar-a-mao-no-bolso-e-concorra-a-um-eee-pc/#comments" thr:count="2" />
		<link rel="replies" type="application/atom+xml" href="http://felipetonello.com/blog/2008/07/25/ajude-a-sustentar-a-wikipedia-e-outros-projetos-sem-colocar-a-mao-no-bolso-e-concorra-a-um-eee-pc/feed/atom/" thr:count="2" />
		<thr:total>2</thr:total>
	<feedburner:origLink>http://felipetonello.com/blog/2008/07/25/ajude-a-sustentar-a-wikipedia-e-outros-projetos-sem-colocar-a-mao-no-bolso-e-concorra-a-um-eee-pc/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Felipe Tonello</name>
						<uri>http://felipetonello.com</uri>
					</author>
		<title type="html"><![CDATA[Nóis é muito burro!]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chackalsjc/~3/QrpbO-Mi_Sc/" />
		<id>http://felipetonello.com/blog/2008/07/17/nois-e-muito-burro/</id>
		<updated>2008-07-17T19:17:09Z</updated>
		<published>2008-07-17T18:59:26Z</published>
		<category scheme="http://felipetonello.com/blog" term="Artigos" />		<summary type="html"><![CDATA[Esse é meio que um desabafo e engraçado ao mesmo tempo  
A história começa quando vim para o Canadá para trabalhar com Java e no fim das contas comecei a trabalhar com ASP.NET. Eu não tenho nada contra ASP.NET, pelo contrário, é uma ótima tecnologia.
Mas o problema é que aqui na empresa onde trabalho, [...]]]></summary>
		<content type="html" xml:base="http://felipetonello.com/blog/2008/07/17/nois-e-muito-burro/">&lt;p&gt;Esse é meio que um desabafo e engraçado ao mesmo tempo &lt;img src='http://felipetonello.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /&gt; &lt;/p&gt;
&lt;p&gt;A história começa quando vim para o Canadá para trabalhar com Java e no fim das contas comecei a trabalhar com ASP.NET. Eu não tenho nada contra ASP.NET, pelo contrário, é uma ótima tecnologia.&lt;br /&gt;
Mas o problema é que aqui na empresa onde trabalho, eles não utilizam meu potencial(não que eu tenha muito). Aqui eu fico arrumando layout e controller ASP.NET, tabulando, fazendo relatórios e assim por diante. &lt;strong&gt;PELO AMOR NÉ?&lt;/strong&gt;&lt;br /&gt;
E eu percebi que estava &lt;em&gt;enferrujando&lt;/em&gt; em programação, prática e inclusive meu conhecimento.&lt;/p&gt;
&lt;p&gt;Mas tudo bem. 5 Meses passaram&amp;#8230;&lt;/p&gt;
&lt;p&gt;Quando eu e o &lt;a href="http://www.rubz.org/"&gt;Luiz Vitor&lt;/a&gt; estavamos resolvendo o exercício do Alien Numbers (Google Code Jam 2007). E depois de 5 horas conseguimos hehe aquela alegria!!!&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;&lt;strong&gt;from __future__ import alien_number&lt;/strong&gt;&lt;/p&gt;&lt;/blockquote&gt;
&lt;p&gt;Aí começamos a fazer do &lt;a href="http://en.wikipedia.org/wiki/Maze"&gt;Maze&lt;/a&gt;(Labirinto). Tentamos, tentamos, tentamos e aí não deu mais tempo porque comecou o &lt;a href="http://code.google.com/codejam"&gt;Google Code Jam 2008&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Os 2 primeiros exercícios da primeira fase eram fáceis. Um era sobre serach engine e outro era de esquema de trens. Não era necessários algoritmos complexos para resolver, apenas lógica.&lt;br /&gt;
Aí tudo bem, comecei a fazer o primeiro. Depois de uns 15 minutos entendi o que era para fazer e fui jantar. Jantando fui pensando o que iria fazer para resolver o problema. E tinha chegado numa conclusão simples.&lt;br /&gt;
Cheguei no meu computador e fui começar meu código. Em 30 min +- mandei minha versão e &lt;strong&gt;bééééééé&lt;/strong&gt;: ERRADO. Aí fui repensar e vi o que estava errado e mandei de novo: &lt;strong&gt;bééééééé&lt;/strong&gt;.&lt;br /&gt;
Aí comecei a ficar &lt;em&gt;encucado&lt;/em&gt;. E em quanto isso o Bruno Gola e Lameiro já tinham resolvido. E eu e o Luiz nos elogiando: &lt;strong&gt;&lt;em&gt;&amp;#8220;Cara, nós somos muito burros!!!! hahahah&amp;#8221;&lt;/em&gt; &lt;em&gt;&amp;#8220;Eu sou uma porta, pelo amor!!!&amp;#8221;&lt;/em&gt;&lt;/strong&gt;&lt;/p&gt;
&lt;p&gt;Hoje comecei o exercício dos &lt;strong&gt;treins&lt;/strong&gt;. Mais fácil do que o primeiro. Entendi a lógica, comecei a &lt;em&gt;codar&lt;/em&gt;. E &lt;strong&gt;NADA&lt;/strong&gt; hehehe Fiz um monte de coisa, vários davam certo mas uns davam errado e percebi de novo que era erro de código. Aí agora desisti já, &lt;strong&gt;nóis é muito burro&lt;/strong&gt; e ano que vêm estamos aí. Só agora vou estudar muito! &lt;a title="Lista de 10 Livros por Ricardo" href="http://www.ricbit.com/2008/06/como-aprender-computao.html"&gt;Comprei uns livros feras d+ de algoritmos&lt;/a&gt;, que por sinal recomendo a todos que querem ser bons programadores!&lt;/p&gt;
&lt;p&gt;Mas falando a verdade, o &lt;a href="http://blog.brunogola.com.br/"&gt;Bruno Gola&lt;/a&gt; e o &lt;a href="http://lameiro.wordpress.com/"&gt;Lameiro&lt;/a&gt; e inclusive o Luiz são muito bons, muito melhor que eu. Mas eu fiquei injuriado pelo fato de eu não ter conseguido &lt;em&gt;CODAR&lt;/em&gt; esses problemas, que estavam resolvidos na minha cabeça.&lt;/p&gt;
&lt;p&gt;E agora a moral da história, voltando ao começo do post.&lt;/p&gt;
&lt;blockquote&gt;&lt;p&gt;Nunca, mas NUNCA, vá trabalhar em um lugar(ou o que seja) onde não te estimulem e exija seu potencial! NUNCA&lt;/p&gt;&lt;/blockquote&gt;
&lt;div class="wp-caption alignleft" style="width: 109px"&gt;&lt;img title="Poison" src="http://felipetonello.com/blog/wp-content/uploads/2008/07/poison.jpg" alt="" width="99" height="82" /&gt;&lt;p class="wp-caption-text"&gt;Poison&lt;/p&gt;&lt;/div&gt;
&lt;p&gt;Sinceramente, se eu não tivesse para mudar de empresa agora no final do mês, eu largava tudo aqui, tudo mesmo. E voltava para o Brasil.&lt;br /&gt;
Prefiro ser pobre, morar num lugar onde a política é sinônimo de palhaçada, ao que desaprender tudo e ser um inútil.&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=QrpbO-Mi_Sc:IfmbRVP_Dx4:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=QrpbO-Mi_Sc:IfmbRVP_Dx4:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=QrpbO-Mi_Sc:IfmbRVP_Dx4:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=QrpbO-Mi_Sc:IfmbRVP_Dx4:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?i=QrpbO-Mi_Sc:IfmbRVP_Dx4:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=QrpbO-Mi_Sc:IfmbRVP_Dx4:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=QrpbO-Mi_Sc:IfmbRVP_Dx4:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chackalsjc/~4/QrpbO-Mi_Sc" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://felipetonello.com/blog/2008/07/17/nois-e-muito-burro/#comments" thr:count="5" />
		<link rel="replies" type="application/atom+xml" href="http://felipetonello.com/blog/2008/07/17/nois-e-muito-burro/feed/atom/" thr:count="5" />
		<thr:total>5</thr:total>
	<feedburner:origLink>http://felipetonello.com/blog/2008/07/17/nois-e-muito-burro/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Felipe Tonello</name>
						<uri>http://felipetonello.com</uri>
					</author>
		<title type="html"><![CDATA[&#8220;Eu vou virar freelancer&#8221; - Já pensaram isso?]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chackalsjc/~3/dgJeIa0uPHw/" />
		<id>http://felipetonello.com/blog/?p=134</id>
		<updated>2008-06-24T15:52:27Z</updated>
		<published>2008-06-24T15:40:30Z</published>
		<category scheme="http://felipetonello.com/blog" term="Artigos" />		<summary type="html"><![CDATA[
Conversando com o Jader fui inspirado a escrever esse post.
Muitos, assim como eu, tiveram essa grande idéia de virar freelancer. Ser seu próprio chefe, escolher seus trabalhos, trabalhar com o que gosta, são idéias atrativas né?
Mas tudo o que é bom pode ficar ruim, ou péssimo!
Por que estou falando isso? Não é para assustar não, [...]]]></summary>
		<content type="html" xml:base="http://felipetonello.com/blog/2008/06/24/eu-vou-virar-freelancer-ja-pensaram-isso/">&lt;p&gt;&lt;img class="alignleft size-medium wp-image-135" style="float:left" title="Freelancer" src="http://felipetonello.com/blog/wp-content/uploads/2008/06/freelancedvdweb-222x300.jpg" alt="Freelancer" width="222" height="300" /&gt;&lt;/p&gt;
&lt;p&gt;Conversando com o &lt;a href="http://www.plurk.com/user/jader"&gt;Jader&lt;/a&gt; fui inspirado a escrever esse post.&lt;/p&gt;
&lt;p&gt;Muitos, assim como eu, tiveram essa grande idéia de virar freelancer. Ser seu próprio chefe, escolher seus trabalhos, trabalhar com o que gosta, são idéias atrativas né?&lt;br /&gt;
Mas tudo o que é bom pode ficar ruim, ou péssimo!&lt;br /&gt;
Por que estou falando isso? Não é para assustar não, mas para você refletir sobre sua situação.&lt;/p&gt;
&lt;p&gt;Perguntas para reflexão:&lt;br /&gt;
- Você já possui um trabalho? Você não gosta dele? Você têm benefícios(refeição, seguro, saúde &amp;#8230;)?&lt;br /&gt;
&lt;em&gt;Lembrete: como freelancer você não terá mais nada disso&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;- O que te faz pensar que como freelancer será melhor?&lt;br /&gt;
- Contato é a coisa mais importante para um freelancer, você têm bons contatos?&lt;br /&gt;
- Você é responsável? Cumpre horário? É disciplinado?&lt;br /&gt;
&lt;em&gt;Lembrete: Você terá que acordar cedo, se policiar em msn/plurk/twitter&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;- Têm responsabilidades para com família? O que eles esperam de você?&lt;/p&gt;
&lt;p&gt;- Está disposto a correr os riscos?&lt;br /&gt;
Se você responder que sim. Espero que seja o melhor!&lt;br /&gt;
É um desafio e não é dos fáceis. Mas pode trazer ótimos frutos e realizações.&lt;/p&gt;
&lt;p&gt;&lt;img class="alignright size-medium wp-image-136" title="Freelancer" src="http://felipetonello.com/blog/wp-content/uploads/2008/06/image-freelance.jpg" alt="Freelancer" width="273" height="285" /&gt;&lt;/p&gt;
&lt;p&gt;Freelancer é uma boa, eu fui por 6 meses. Aprendi bastante, ralei bastante. Fiz palestras, projetos opensource, ajudei em projetos e etc. Foi muito proveitoso para mim. Mas no meu caso o que me atrapalhou foi a questão da disciplina.&lt;/p&gt;
&lt;p&gt;Então, antes de tomar uma decisão pense! pense muito! E sejamos todos felizes! &lt;img src='http://felipetonello.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /&gt; &lt;/p&gt;
&lt;p&gt;E você? É freelancer? Relate sua experiência e dicas!&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=dgJeIa0uPHw:JTZaM2s82to:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=dgJeIa0uPHw:JTZaM2s82to:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=dgJeIa0uPHw:JTZaM2s82to:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=dgJeIa0uPHw:JTZaM2s82to:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?i=dgJeIa0uPHw:JTZaM2s82to:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=dgJeIa0uPHw:JTZaM2s82to:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=dgJeIa0uPHw:JTZaM2s82to:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chackalsjc/~4/dgJeIa0uPHw" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://felipetonello.com/blog/2008/06/24/eu-vou-virar-freelancer-ja-pensaram-isso/#comments" thr:count="6" />
		<link rel="replies" type="application/atom+xml" href="http://felipetonello.com/blog/2008/06/24/eu-vou-virar-freelancer-ja-pensaram-isso/feed/atom/" thr:count="6" />
		<thr:total>6</thr:total>
	<feedburner:origLink>http://felipetonello.com/blog/2008/06/24/eu-vou-virar-freelancer-ja-pensaram-isso/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Felipe Tonello</name>
						<uri>http://felipetonello.com</uri>
					</author>
		<title type="html"><![CDATA[Você gosta do seu emprego? Em busca do emprego perfeito?]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chackalsjc/~3/KZhJv73zRt8/" />
		<id>http://felipetonello.com/blog/2008/05/29/voce-gosta-do-seu-emprego-em-busca-do-emprego-perfeito/</id>
		<updated>2008-05-29T17:24:53Z</updated>
		<published>2008-05-29T16:18:05Z</published>
		<category scheme="http://felipetonello.com/blog" term="Artigos" /><category scheme="http://felipetonello.com/blog" term="Diversos" /><category scheme="http://felipetonello.com/blog" term="Nerd" /><category scheme="http://felipetonello.com/blog" term="Python" /><category scheme="http://felipetonello.com/blog" term="C++" /><category scheme="http://felipetonello.com/blog" term="Linux" /><category scheme="http://felipetonello.com/blog" term="PHP" />		<summary type="html"><![CDATA[É impressionante como todo mundo que se forma em uma faculdade sai com aquela esperança de revolucionar o mundo, criar uma empresa como o Google ou até mesmo ir para lá como desenvolvedor super power em Python.
É, dizem que nada é impossível mesmo. Mas até quando temos que ficar sonhando?
Bom, apesar de ter menos de [...]]]></summary>
		<content type="html" xml:base="http://felipetonello.com/blog/2008/05/29/voce-gosta-do-seu-emprego-em-busca-do-emprego-perfeito/">&lt;p&gt;&lt;img class="alignright" style="float: right;" src="http://www.cheeplinux.com/images/images_big/lovelinux.jpg" alt="I Love Linux" width="114" height="108" /&gt;É impressionante como todo mundo que se forma em uma faculdade sai com aquela esperança de revolucionar o mundo, criar uma empresa como o Google ou até mesmo ir para lá como desenvolvedor super power em Python.&lt;/p&gt;
&lt;p&gt;É, dizem que nada é impossível mesmo. Mas até quando temos que ficar sonhando?&lt;/p&gt;
&lt;p&gt;Bom, apesar de ter menos de 2 anos de experiência eu já trabalhei em 4 empresas, desde pequenas até gigantes. Sempre tentando achar um emprego perfeito.&lt;/p&gt;
&lt;p&gt;Como você define algo bom? Salário? Benefícios? Projetos? Tecnologia usada? Aprendizado?&lt;/p&gt;
&lt;p&gt;Para nós que somos geeks(linuxeros) isso é mais difícil ainda! Gostamos de Python, PHP, Linux, Vim etc etc. Mas muitas vezes temos que engulir seco por trabalhar com ASP.NET (meu caso).&lt;br /&gt;
É, estou me cansando de novo. Não gosto da environment de trabalho, do projeto e principalmente da tecnologia usada. Meu direito, certo?&lt;/p&gt;
&lt;p&gt;Mas até onde compensa ficar pulando de trabalho em trabalho, tentando achar algo que você se adapte? Ou então trabalhar por conta?&lt;br /&gt;
Muitas vezes você não pode fazer isso. Por falta de oportunidade ou &amp;#8220;simplesmente&amp;#8221; responsabilidades a cumprir.&lt;/p&gt;
&lt;p&gt;&lt;img class="alignleft" style="float: left;" src="http://farm1.static.flickr.com/162/424322458_3fdf529875_m.jpg" alt="Python Powered" align="left" /&gt;Bom, eu já estava deixando essa coisa de ter emprego perfeito de lado. Até que me apareceu uma &lt;a href="http://www.savoirfairelinux.com/"&gt;oportunidade para trabalhar&lt;/a&gt; com Linux, Python, PHP, C++/Qt GTK. Tudo opensource. Parece até um sonho. Aceitei na hora!&lt;/p&gt;
&lt;p&gt;Mas e você? Acha que um dia vai para ser um &lt;a href="http://www.python.org/%7Eguido/"&gt;Guido van Rossum&lt;/a&gt; do Google? O que faz para que isso um dia possa ser realizado? Vale a pena lutar por isso? Ou, talvez, não esquenta cabeça mais com isso?&lt;/p&gt;
&lt;p&gt;&lt;em&gt;Aqui eu dei um exemplo pessoal, mas não necessariamente você gosta de Linux.&lt;/em&gt;&lt;/p&gt;
&lt;p&gt;Conte sua história &lt;img src='http://felipetonello.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /&gt; &lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=KZhJv73zRt8:k4Gdn5DwLJw:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=KZhJv73zRt8:k4Gdn5DwLJw:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=KZhJv73zRt8:k4Gdn5DwLJw:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=KZhJv73zRt8:k4Gdn5DwLJw:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?i=KZhJv73zRt8:k4Gdn5DwLJw:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=KZhJv73zRt8:k4Gdn5DwLJw:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=KZhJv73zRt8:k4Gdn5DwLJw:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chackalsjc/~4/KZhJv73zRt8" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://felipetonello.com/blog/2008/05/29/voce-gosta-do-seu-emprego-em-busca-do-emprego-perfeito/#comments" thr:count="9" />
		<link rel="replies" type="application/atom+xml" href="http://felipetonello.com/blog/2008/05/29/voce-gosta-do-seu-emprego-em-busca-do-emprego-perfeito/feed/atom/" thr:count="9" />
		<thr:total>9</thr:total>
	<feedburner:origLink>http://felipetonello.com/blog/2008/05/29/voce-gosta-do-seu-emprego-em-busca-do-emprego-perfeito/</feedburner:origLink></entry>
		<entry>
		<author>
			<name>Felipe Tonello</name>
						<uri>http://felipetonello.com</uri>
					</author>
		<title type="html"><![CDATA[Mudei de VIM]]></title>
		<link rel="alternate" type="text/html" href="http://feedproxy.google.com/~r/chackalsjc/~3/gxgh3BUJXVY/" />
		<id>http://felipetonello.com/blog/2008/05/22/mudei-de-vim/</id>
		<updated>2008-05-22T18:25:48Z</updated>
		<published>2008-05-22T12:48:24Z</published>
		<category scheme="http://felipetonello.com/blog" term="Diversos" />		<summary type="html"><![CDATA[Infelizmente o VIM é porcamente suportado no Mac OS X(meu atual SO).
Mas felizmente o Mac OS sempre tem suas saídas, e a melhor de todas é o TextMate.
O TextMate simplesmente é sensacional!! Ele foi feito exatamente para substituir os fãs de Emacs ou VIM, ao estilo Mac OS de ser. É eu já virei fã [...]]]></summary>
		<content type="html" xml:base="http://felipetonello.com/blog/2008/05/22/mudei-de-vim/">&lt;p&gt;Infelizmente o VIM é porcamente suportado no &lt;a href="http://www.apple.com/br/macosx/"&gt;Mac OS X&lt;/a&gt;(meu atual SO).&lt;/p&gt;
&lt;p&gt;Mas felizmente o Mac OS sempre tem suas saídas, e a melhor de todas é o &lt;a href="http://macromates.com/"&gt;TextMate&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;O TextMate simplesmente é sensacional!! Ele foi feito exatamente para substituir os fãs de &lt;a href="http://www.gnu.org/software/emacs/"&gt;Emacs&lt;/a&gt; ou &lt;a href="http://www.vim.org/"&gt;VIM&lt;/a&gt;, ao &lt;a href="https://www.apple.com/server/macosx/"&gt;estilo Mac OS de ser&lt;/a&gt;. É eu já virei fã do Mac, mas de leve. &lt;img src='http://felipetonello.com/blog/wp-includes/images/smilies/icon_biggrin.gif' alt=':D' class='wp-smiley' /&gt; &lt;/p&gt;
&lt;p&gt;Pena que não é freeware e muito menos open-source, o que significa que é pago. Massss, é um dindin bem investido.&lt;br /&gt;
Como o &lt;a href="http://aurelio.wordpress.com/"&gt;Aurélio&lt;/a&gt; mesmo disse: &amp;#8220;O Textmate é bom pra baralho&amp;#8221;&lt;/p&gt;
&lt;div class="feedflare"&gt;
&lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=gxgh3BUJXVY:eKVqPDT8qBk:yIl2AUoC8zA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=yIl2AUoC8zA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=gxgh3BUJXVY:eKVqPDT8qBk:7Q72WNTAKBA"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=7Q72WNTAKBA" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=gxgh3BUJXVY:eKVqPDT8qBk:dnMXMwOfBR0"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=dnMXMwOfBR0" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=gxgh3BUJXVY:eKVqPDT8qBk:V_sGLiPBpWU"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?i=gxgh3BUJXVY:eKVqPDT8qBk:V_sGLiPBpWU" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=gxgh3BUJXVY:eKVqPDT8qBk:qj6IDK7rITs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=qj6IDK7rITs" border="0"&gt;&lt;/img&gt;&lt;/a&gt; &lt;a href="http://feeds.feedburner.com/~ff/chackalsjc?a=gxgh3BUJXVY:eKVqPDT8qBk:YwkR-u9nhCs"&gt;&lt;img src="http://feeds.feedburner.com/~ff/chackalsjc?d=YwkR-u9nhCs" border="0"&gt;&lt;/img&gt;&lt;/a&gt;
&lt;/div&gt;&lt;img src="http://feeds.feedburner.com/~r/chackalsjc/~4/gxgh3BUJXVY" height="1" width="1"/&gt;</content>
		<link rel="replies" type="text/html" href="http://felipetonello.com/blog/2008/05/22/mudei-de-vim/#comments" thr:count="0" />
		<link rel="replies" type="application/atom+xml" href="http://felipetonello.com/blog/2008/05/22/mudei-de-vim/feed/atom/" thr:count="0" />
		<thr:total>0</thr:total>
	<feedburner:origLink>http://felipetonello.com/blog/2008/05/22/mudei-de-vim/</feedburner:origLink></entry>
	</feed>
