<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>George Guimarães</title>
	<atom:link href="http://blog.georgeguimaraes.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.georgeguimaraes.com</link>
	<description>Tecnologia, computação, novidades, startups, geek stuff e afins</description>
	<lastBuildDate>Mon, 28 Sep 2009 14:30:34 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=4.1.18</generator>
	<item>
		<title>DNS pra que te quero?</title>
		<link>http://blog.georgeguimaraes.com/2009/09/dns-pra-que-te-quero/</link>
		<comments>http://blog.georgeguimaraes.com/2009/09/dns-pra-que-te-quero/#comments</comments>
		<pubDate>Mon, 28 Sep 2009 14:30:34 +0000</pubDate>
		<dc:creator><![CDATA[George Guimarães]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[dns]]></category>
		<category><![CDATA[level3]]></category>
		<category><![CDATA[opendns]]></category>

		<guid isPermaLink="false">http://blog.georgeguimaraes.com/?p=265</guid>
		<description><![CDATA[Se você trabalha com Internet, por favor saiba o que é DNS. Principalmente a diferença entre resolver recursivo e resolver não-recursivo. O fato é que nenhum resolver de provedores brasileiros presta. Já tive problemas com os DNSs do Terra, da NET, enfim&#8230; Qualquer provedor. Parece que eles não querem investir em DNS. Os gerentes devem [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Se você trabalha com Internet, por favor saiba o que é <a href="http://en.wikipedia.org/wiki/Domain_Name_System">DNS</a>. Principalmente a diferença entre resolver recursivo e resolver não-recursivo.</p>
<p>O fato é que nenhum resolver de provedores brasileiros presta. Já tive problemas com os DNSs do Terra, da NET, enfim&#8230; Qualquer provedor. Parece que eles não querem investir em DNS. Os gerentes devem achar que não vale a pena gastar com isso. </p>
<p>Mas DNS é essencial, fundamental na Web. Sem ele, você não estaria vendo esse site, por exemplo. Por ser transparente (quando não falha), podemos pensar que nao é importante. Mas praticamente qualquer coisa na Internet começa com uma chamada ao seu DNS resolver (normalmente o do seu provedor).</p>
<p>Alguns já sacaram que os provedores não levam DNS a sério e começaram a usar os DNSs do <a href="http://www.opendns.com/">OpenDNS</a>. Eu não uso. Pra começar, eles redirecionam os domínios inexistentes pra uma página deles com anúncios. Pra um desenvolvedor, isso significa não receber um &#8216;domain not found&#8217; quando esperamos por isso.</p>
<p>Agora vou dar minha dica. Eu uso alguns dos servidores de DNS mais antigos que existem. São eles:</p>
<ul>
<li><strong>4.2.2.1</strong></li>
<li><strong>4.2.2.2</strong></li>
<li><strong>4.2.2.3</strong></li>
<li><strong>4.2.2.4</strong></li>
</ul>
<p>Esses IPs atualmente são da <a href="http://en.wikipedia.org/wiki/Level3">Level3</a>, uma das empresas <a href="http://en.wikipedia.org/wiki/Tier_1_network">Tier 1</a> da Internet (aliás, os tiers é um assunto pra um outro post).</p>
<p>Coloque esses DNSs no seu computador ou roteador e seja feliz! Eles ficam nos EUA, então o tempo de resposta é um pouco maior do que se fossem os DNSs daqui. Mas, sinceramente, eu não me importo. Nenhum daqui presta mesmo&#8230;</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.georgeguimaraes.com/2009/09/dns-pra-que-te-quero/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Verdade seja dita sobre Javascript</title>
		<link>http://blog.georgeguimaraes.com/2009/08/verdade-seja-dita-sobre-javascript/</link>
		<comments>http://blog.georgeguimaraes.com/2009/08/verdade-seja-dita-sobre-javascript/#comments</comments>
		<pubDate>Tue, 18 Aug 2009 02:14:22 +0000</pubDate>
		<dc:creator><![CDATA[George Guimarães]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[c]]></category>
		<category><![CDATA[ccomputação]]></category>
		<category><![CDATA[ciência]]></category>
		<category><![CDATA[engenharia]]></category>
		<category><![CDATA[javascript]]></category>

		<guid isPermaLink="false">http://blog.georgeguimaraes.com/?p=261</guid>
		<description><![CDATA[Quem trabalha ou trabalhou comigo sabe que não sou fã de Javascript. Confesso, é um preconceito formado em épocas remotas do JS, uma época nebulosa, com más experiências. Hoje em dia, com frameworks como o Prototype ou jQuery, a experiência em se programar com Javascript é outra. A linguagem ainda possui algumas características que me [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Quem trabalha ou trabalhou comigo sabe que não sou fã de Javascript. Confesso, é um preconceito formado em épocas remotas do JS, uma época nebulosa, com más experiências.</p>
<p>Hoje em dia, com frameworks como o <a href="http://www.prototypejs.org/">Prototype</a> ou <a href="http://jquery.com/">jQuery</a>, a experiência em se programar com Javascript é outra. A linguagem ainda possui algumas características que me fazem lembrar de Ruby. Mas é claro que ela possui gotchas.</p>
<p>O Carlos Brando enumerou <a href="http://www.nomedojogo.com/2009/08/17/isto-e-um-bug-no-javascript/">alguns desses gotchas</a> no seu blog. O primeiro caso me chamou a atenção:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="javascript" style="font-family:monospace;"><span style="color: #339933;">&gt;&gt;&gt;</span> <span style="color: #CC0000;">0.1</span> <span style="color: #339933;">+</span> <span style="color: #CC0000;">0.2</span>
<span style="color: #CC0000;">0.30000000000000004</span></pre></td></tr></table></div>

<p>Mas esse &#8216;problema&#8217; não é único do Javascript. Como o divoxx mencionou nos comentários do post, isso também acontece em Ruby, a ponto de acontecer:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#006666;">0.1</span> <span style="color:#006600; font-weight:bold;">+</span> <span style="color:#006666;">0.2</span> == <span style="color:#006666;">0.3</span>
<span style="color:#006600; font-weight:bold;">=&gt;</span> <span style="color:#0000FF; font-weight:bold;">false</span></pre></td></tr></table></div>

<p>Na verdade, isso acontece até mesmo em C. Olha só, a mãe bastarda de todas as linguagens (já que a mãe de verdade é o Lisp, <img src="http://blog.georgeguimaraes.com/wp-includes/images/smilies/icon_biggrin.gif" alt=":D" class="wp-smiley" /> ) também tem esse mesmo &#8216;bug&#8217;. Quer experimentar?</p>
<p>Coloque este texto num arquivo com nome floatness.c:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="c" style="font-family:monospace;"><span style="color: #339933;">#include &lt;stdio.h&gt;</span>
&nbsp;
<span style="color: #993333;">int</span> main<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#123;</span>
  <span style="color: #993333;">double</span> a<span style="color: #339933;">,</span>b<span style="color: #339933;">,</span>x<span style="color: #339933;">;</span>
&nbsp;
  x <span style="color: #339933;">=</span> <span style="color:#800080;">0.1</span> <span style="color: #339933;">+</span> <span style="color:#800080;">0.2</span> <span style="color: #339933;">;</span>
  <span style="color: #000066;">printf</span><span style="color: #009900;">&#40;</span><span style="color: #ff0000;">&quot;%0.17f<span style="color: #000099; font-weight: bold;">\n</span>&quot;</span><span style="color: #339933;">,</span> x<span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #009900;">&#125;</span></pre></td></tr></table></div>

<p>E compile e rode com o comando:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">gcc</span> floatiness.c <span style="color: #660033;">-o</span> floatiness
$ .<span style="color: #000000; font-weight: bold;">/</span>floatiness
<span style="color: #000000;">0.30000000000000004</span></pre></td></tr></table></div>

<p>Temos o mesmo resultado. Mesmo em C, 0.1 + 0.2 é diferente de 0.3.</p>
<p>Claro que o Javascript não tem culpa. Na hora de representar um número decimal em binário, coisas estranhas ocorrem. 0.1 em binário transforma-se numa dízima períodica 0.00011<span style="text-decoration: overline;">0011</span>&#8230; (veja sobre operações de <a href="http://en.wikipedia.org/wiki/Floating_point_arithmetic">ponto flutuante na Wikipedia</a>).</p>
<p><strong>Ou seja, isso é normal!</strong></p>
<p>E, infelizmente, isso pode ser surpresa pra muita gente. O ponto é, e tenho certeza que o Carlos Brando concorda comigo, muita gente não sabe <strong>Ciência da Computação</strong>. Pois aprenda! Vai fazer diferença, pode estar certo disso. Não estou dizendo pra você fazer uma faculdade de Ciência ou Engenharia da Computação. Você pode ser <strong>autodidata</strong>. Numa época de linguagens como Python e Ruby, onde muita &#8216;mágica&#8217; acontece nos bastidores, é sempre bom ter uma idéia do que está acontecendo.</p>
<p>Procure livros-textos das matérias da faculdade, vá até bibliotecas de faculdades. Todos as faculdades que se prezam mantém um site com todas as matérias e seu escopo disponíveis para a consulta. Para a USP, por exemplo, você pode acessar o <a href="https://sistemas2.usp.br/jupiterweb/">JúpiterWEB</a> (clique em Disciplinas).</p>
<p>Aprenda C. Passe raiva gerenciando memória manualmente e brincando com ponteiros! Faça um algoritmo de ordenação de Array usando várias threads. Leia sobre Quicksort. Bubblesort. Leia sobre estruturas de dados. Cadeias ligadas, cadeias duplamente ligadas. Matrizes esparsas. Leia sobre <a href="http://en.wikipedia.org/wiki/Functional_languages">linguagens funcionais</a>. Aprenda uma.</p>
<p><strong>Todos</strong> nós temos um caminho longo pela frente. Mas é sempre bom ter uma base legal para se guiar.</p>
<p>PS: Antes que alguém me xingue, eu fiz Engenharia de Automação e Controle, ou seja, algo não muito relacionado à Computação. Meus estudos sobre Ciência e Engenharia da Computação foram fora da sala de aula e tenho ainda muita coisa pra aprender. Sei disso e não sou nenhum sabichão para falar &#8216;olha.. eu sei de tudo.. manjo muito disso tudo.. siga meu caminho, siga o que eu fiz e você se dará bem&#8217;. Não é essa a idéia do post. A idéa é apenas motivar <strong>todos</strong> (eu inclusive) a <strong>estudar</strong> cada vez mais e melhorar cada vez mais nosso ecossistema de desenvolvedores.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.georgeguimaraes.com/2009/08/verdade-seja-dita-sobre-javascript/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Rails for Kids. Participe!</title>
		<link>http://blog.georgeguimaraes.com/2009/08/rails-for-kids-participe/</link>
		<comments>http://blog.georgeguimaraes.com/2009/08/rails-for-kids-participe/#comments</comments>
		<pubDate>Tue, 11 Aug 2009 21:35:38 +0000</pubDate>
		<dc:creator><![CDATA[George Guimarães]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[capistrano]]></category>
		<category><![CDATA[deploy]]></category>
		<category><![CDATA[deployment]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[rails for kids]]></category>

		<guid isPermaLink="false">http://blog.georgeguimaraes.com/?p=257</guid>
		<description><![CDATA[Serei, juntamente com meu sócio Hugo Barauna, palestrante do Rails for Kids, no dia 12/setembro/2009 (sábado). Pra quem não sabe, o Rails for Kids é um evento online, com uma série de palestras de gente de peso, como Carlos Brando, Fábio Akita, Vinicius Teles, Julio Monteiro, Marcos Cóssio Tapajós Martins do Couto (!?!, a.k.a Tapajós) [&#8230;]]]></description>
				<content:encoded><![CDATA[<p><a href="http://www.railsforkids.com"><img class="alignleft" title="Rails for Kids 2009" src="http://www.railsforkids.com/images/150x100.jpg" alt="" width="150" height="100" /></a>Serei, juntamente com meu sócio Hugo Barauna, palestrante do <a href="http://www.railsforkids.com">Rails for Kids</a>, no dia 12/setembro/2009 (sábado).</p>
<p>Pra quem não sabe, o Rails for Kids é um evento online, com uma série de palestras de gente de peso, como Carlos Brando, Fábio Akita, Vinicius Teles, Julio Monteiro,<br />
Marcos Cóssio Tapajós Martins do Couto (!?!, a.k.a Tapajós) e outros. (é só checar a <a href="http://www.railsforkids.com/site/programming">programação do evento</a>)</p>
<p>Vou palestrar sobre o deployment e Capistrano, porque já vi muita gente que sabe desenvolver, mas não sabe colocar o projeto no ar de um jeito satisfatório (vou tentar definir o que é satisfatório na palestra).</p>
<p>Pra assistir toda essa cambada palestrar, você precisa pagar R$30. E é aí que o Rails for Kids fica mais interessante ainda. Toda a renda vai ser revertida para o <a href="http://www.railsforkids.com/site/favored">Cotolengo de Mato Grosso do Sul</a>.</p>
<p>Participe! Tenho certeza que você vai gostar.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.georgeguimaraes.com/2009/08/rails-for-kids-participe/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Novos rumos</title>
		<link>http://blog.georgeguimaraes.com/2009/08/novos-rumos/</link>
		<comments>http://blog.georgeguimaraes.com/2009/08/novos-rumos/#comments</comments>
		<pubDate>Mon, 10 Aug 2009 21:47:15 +0000</pubDate>
		<dc:creator><![CDATA[George Guimarães]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[consulting]]></category>
		<category><![CDATA[consultoria]]></category>
		<category><![CDATA[engenharia de software]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[web applications]]></category>

		<guid isPermaLink="false">http://blog.georgeguimaraes.com/?p=250</guid>
		<description><![CDATA[Acho que a maioria do pessoal já sabe, mas eu, o Hugo Barauna, José Valim e Marcelo Park (do Pagestacker) fundamos a Plataforma Tecnologia. Somos uma empresa de consultoria de desenvolvimento de sistemas web, focada em Ruby on Rails. Estamos abertos há cerca de 5 meses e na semana passada lançamos o site e o [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Acho que a maioria do pessoal já sabe, mas eu, o Hugo Barauna, José Valim e Marcelo Park (do Pagestacker) fundamos a <a href="http://plataformatec.com.br">Plataforma Tecnologia</a>.</p>
<p>Somos uma empresa de consultoria de desenvolvimento de sistemas web, focada em Ruby on Rails. Estamos abertos há cerca de 5 meses e na semana passada lançamos o site e o <a href="http://blog.plataformatec.com.br">blog da empresa</a>.</p>
<p>Fiquem atentos ao blog. É lá onde o José Valim está falando sobre novas features do Rails 3 (das quais ele é responsável), onde falaremos do nosso método de desenvolvimento e também sobre os problemas e alegrias de se trabalhar no mercado de software.</p>
<p>E principalmente, é lá onde postarei artigos mais hardcore. Como minha série (já planejada) sobre o Capistrano, que infelizmente possui pouca documentação (e muito copy-paste, hehe). Claro que sempre postarei algum lembrete aqui. Não quero abandonar ainda mais o meu blog. =)</p>
<p>Enfim, visitem <a href="http://plataformatec.com.br">nosso site</a>. Deixem comentários, sugestões. Ou então vamos marcar um café pra bater um papo e discutir sobre engenharia de software, desenvolvimento e afins!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.georgeguimaraes.com/2009/08/novos-rumos/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Dica rápida: git submodule</title>
		<link>http://blog.georgeguimaraes.com/2009/07/dica-rapida-git-submodule/</link>
		<comments>http://blog.georgeguimaraes.com/2009/07/dica-rapida-git-submodule/#comments</comments>
		<pubDate>Sun, 26 Jul 2009 15:39:17 +0000</pubDate>
		<dc:creator><![CDATA[George Guimarães]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.georgeguimaraes.com/?p=247</guid>
		<description><![CDATA[Em um projeto Rails, é comum trabalharmos com submódulos do git em plugins. Principalmente se você vai mexer muito nesses plugins e commitar para seu repositório. Mas é preciso tomar cuidado com a sintaxe do &#8216;git submodule add&#8217;. Por exemplo, fui incluir um submódulo em um projeto rails já existente (e versionado com git): $ [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Em um projeto Rails, é comum trabalharmos com submódulos do git em plugins. Principalmente se você vai mexer muito nesses plugins e commitar para seu repositório.</p>
<p>Mas é preciso tomar cuidado com a sintaxe do &#8216;git submodule add&#8217;.</p>
<p>Por exemplo, fui incluir um submódulo em um projeto rails já existente (e versionado com git):</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">git submodule</span> add <span style="color: #c20cb9; font-weight: bold;">git</span><span style="color: #000000; font-weight: bold;">@</span>github.com:georgeguimaraes<span style="color: #000000; font-weight: bold;">/</span>typus.git vendor<span style="color: #000000; font-weight: bold;">/</span>plugins<span style="color: #000000; font-weight: bold;">/</span>typus</pre></td></tr></table></div>

<p>Obs.: Lembrando que a url acima é a minha url privada, porque eu queria commitar a partir do projeto-pai.</p>
<p>Isso cria o arquivo .gitmodules com as informações dos módulos:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">git status</span>
...
<span style="color: #666666; font-style: italic;"># Untracked files:</span>
<span style="color: #666666; font-style: italic;">#   (use &quot;git add ...&quot; to include in what will be committed)</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#    .gitmodules</span>
<span style="color: #666666; font-style: italic;">#    vendor/plugins/typus</span></pre></td></tr></table></div>

<p>Aqui é preciso tomar <strong>cuidado</strong>.</p>
<p>Se você for digitar &#8216;git add vendor/plugins/typus&#8217; e for completando os diretórios com TAB (ou seja, digitando apenas as primerias letras e apertando TAB), você vai acabar tendo essa linha:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="bash" style="font-family:monospace;"><span style="color: #666666;">$ </span><span style="color: #c20cb9; font-weight: bold;">git add</span> vendor<span style="color: #000000; font-weight: bold;">/</span>plugins<span style="color: #000000; font-weight: bold;">/</span>typus<span style="color: #000000; font-weight: bold;">/</span></pre></td></tr></table></div>

<p><strong>Note a barra (/) no final.</strong> Aí é que mora o perigo. Se você der ENTER, o git vai entender que você quer adicionar todos os arquivos dentro desse diretório. Mas não é isso o que você quer!! Você quer adicionar o <strong>diretório</strong> como um <strong>submódulo</strong>.</p>
<p>Para isso, certifique-se que você está executando:</p>

<div class="wp_syntax"><table><tr><td class="code"><pre class="bash" style="font-family:monospace;">$ <span style="color: #c20cb9; font-weight: bold;">git add</span> vendor<span style="color: #000000; font-weight: bold;">/</span>plugins<span style="color: #000000; font-weight: bold;">/</span>typus
...
$ <span style="color: #c20cb9; font-weight: bold;">git status</span>
&nbsp;
<span style="color: #666666; font-style: italic;"># Changes to be committed:</span>
<span style="color: #666666; font-style: italic;">#   (use &quot;git reset HEAD ...&quot; to unstage)</span>
<span style="color: #666666; font-style: italic;">#</span>
<span style="color: #666666; font-style: italic;">#	new file:   vendor/plugins/typus</span></pre></td></tr></table></div>

<p>Obs.: Claro que um simples &#8216;git add .&#8217; vai adicionar tanto o .gitmodules quanto o diretório da maneira correta. Sem perigo de erros. Mas às vezes você quer adicionar coisas uma a uma (vai que existem outras modificações que você não quer commitar).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.georgeguimaraes.com/2009/07/dica-rapida-git-submodule/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Remova arquivos do cache de disco</title>
		<link>http://blog.georgeguimaraes.com/2009/07/remova-arquivos-do-cache-de-disco/</link>
		<comments>http://blog.georgeguimaraes.com/2009/07/remova-arquivos-do-cache-de-disco/#comments</comments>
		<pubDate>Tue, 14 Jul 2009 01:06:07 +0000</pubDate>
		<dc:creator><![CDATA[George Guimarães]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.georgeguimaraes.com/?p=245</guid>
		<description><![CDATA[&#8220;Será que o George tá louco? Cache não é bom?&#8221; Quem lê meu blog sabe que gosto muito de estratégias de cache, principalmente usando o famoso memcached. Porém às vezes o cache do seu file system atrapalha. Em procedimentos de benchmark (principalmente de DB), no qual você quer analisar apenas uma das camadas de software, [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>&#8220;Será que o George tá louco? Cache não é bom?&#8221;</p>
<p>Quem lê meu blog sabe que gosto muito de estratégias de cache, principalmente usando o famoso <a href="http://www.danga.com/memcached/">memcached</a>.</p>
<p>Porém às vezes o cache do seu file system atrapalha. Em procedimentos de benchmark (principalmente de DB), no qual você quer analisar apenas uma das camadas de software, o ideal é desativar o cache. Você pode fazer isso setando algumas opções no /proc, desativando o cache pelo /etc/fstab ou melhor ainda: use o <a href="http://mituzas.lt/2009/06/26/uncache/">uncache</a>!</p>
<p>A vantagem do <a href="http://mituzas.lt/2009/06/26/uncache/">uncache</a> é &#8216;descachear&#8217; arquivos específicos, sem alterar os outros arquivos do disco. Afinal, você pode querer desativar o cache dos arquivos de banco de dados (que deveriam estar num disco separado, pra aumentar o throughput), mas não desativar o cache do restante dos arquivos.</p>
<p>E o código fonte (em C) é muito pequeno. Mais um ponto positivo.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.georgeguimaraes.com/2009/07/remova-arquivos-do-cache-de-disco/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Brain teaser sobre criptografia</title>
		<link>http://blog.georgeguimaraes.com/2009/07/brain-teaser-sobre-criptografia/</link>
		<comments>http://blog.georgeguimaraes.com/2009/07/brain-teaser-sobre-criptografia/#comments</comments>
		<pubDate>Fri, 10 Jul 2009 03:12:12 +0000</pubDate>
		<dc:creator><![CDATA[George Guimarães]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.georgeguimaraes.com/?p=243</guid>
		<description><![CDATA[Essa eu li num livro sobre brain teasers (aqueles quebra-cabeças que às vezes o pessoal de RH usa nas contratações) e que pode ser usado pra testar se um candidato realmente entendeu os conceitos de chaves públicas e privadas (pra ser usado, por exemplo no SSH). Esse é um dos melhores do livro. O teaser [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Essa eu li num livro sobre brain teasers (aqueles quebra-cabeças que às vezes o pessoal de RH usa nas contratações) e que pode ser usado pra testar se um candidato realmente entendeu os conceitos de chaves públicas e privadas (pra ser usado, por exemplo no SSH).</p>
<p>Esse é um dos melhores do livro.</p>
<p>O teaser envolve objetos reais. A decisão é sua se você vai fazer o teaser com os objetos na frente da pessoa ou se vai deixar o cara pensar de modo abstrato.</p>
<blockquote><p>Entrevistador: Tenho um pequeno baú com uma aba que pode ser trancada com cadeado. Quero te mandar o conteúdo do baú de modo seguro através de uma transportadora (meio físico não-confiável). Obviamente, não faz muito sentido mandar o baú e depois mandar a chave do cadeado (&#8216;segredo&#8217; do cadeado fica comigo). Como fazer?</p></blockquote>
<p>Uma resposta aceitável seria:</p>
<blockquote><p>Mande-me o baú trancado com seu cadeado. Irei trancá-lo uma segunda vez com um cadeado <strong>meu</strong> e manderei o baú de volta. Você poderá destrancar o <strong>seu</strong> cadeado e mandar o baú novamente pra mim. Quando ele chegar, basta destrancar o <strong>meu</strong> cadeado e terei acesso ao conteúdo. Durante todo o tempo na transportadora, o baú permanecerá trancado.</p></blockquote>
<p>Não sou muito fã de brain teasers em contratações, mas gosto de discutir sobre eles.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.georgeguimaraes.com/2009/07/brain-teaser-sobre-criptografia/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Vídeos da NOSQL</title>
		<link>http://blog.georgeguimaraes.com/2009/07/videos-da-nosql/</link>
		<comments>http://blog.georgeguimaraes.com/2009/07/videos-da-nosql/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 01:18:13 +0000</pubDate>
		<dc:creator><![CDATA[George Guimarães]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.georgeguimaraes.com/?p=241</guid>
		<description><![CDATA[Quem quiser dar uma pincelada sobre bancos de dados não-relacionais, pode acessar esse link. São gravações das palestras que rolaram na NOSQL, em São Francisco, em maio. São palestras de 40 minutos com diversos bancos de dados &#8220;do momento&#8221;, como Hypertable, CouchDB, MongoDB, Voldemort. Fiquei com vontade de organizar algo assim. Estou pensando seriamente no [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Quem quiser dar uma pincelada sobre bancos de dados não-relacionais, pode acessar esse <a href="http://vimeo.com/user1906695/videos">link</a>.</p>
<p>São gravações das palestras que rolaram na NOSQL, em São Francisco, em maio. São palestras de 40 minutos com diversos bancos de dados &#8220;do momento&#8221;, como Hypertable, CouchDB, MongoDB, Voldemort.</p>
<p>Fiquei com vontade de organizar algo assim. Estou pensando seriamente no assunto. =)</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.georgeguimaraes.com/2009/07/videos-da-nosql/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Instalando a gem rmagick no Ubuntu 9.04</title>
		<link>http://blog.georgeguimaraes.com/2009/06/instalando-a-gem-rmagick-no-ubuntu-904/</link>
		<comments>http://blog.georgeguimaraes.com/2009/06/instalando-a-gem-rmagick-no-ubuntu-904/#comments</comments>
		<pubDate>Tue, 02 Jun 2009 20:23:17 +0000</pubDate>
		<dc:creator><![CDATA[George Guimarães]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://blog.georgeguimaraes.com/?p=239</guid>
		<description><![CDATA[Este é um post rápido para que eu lembre depois. Se servir para você, melhor ainda =) Estou usando o Ubuntu 9.04 Jaunty Jackalope mas com ruby compilado por mim. Não estou usando os pacotes do Ubuntu. Mas quero usar o ImageMagick pelos pacotes do Ubuntu, sem ter que compilar o fonte. Então&#8230; sudo apt-get [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Este é um post rápido para que eu lembre depois. Se servir para você, melhor ainda =)</p>
<p>Estou usando o Ubuntu 9.04 Jaunty Jackalope mas com ruby compilado por mim. Não estou usando os pacotes do Ubuntu. Mas quero usar o ImageMagick pelos pacotes do Ubuntu, sem ter que compilar o fonte.</p>
<p>Então&#8230;</p>
<p><code>sudo apt-get install libmagickcore-dev libmagick++-dev</code><br />
<code>sudo gem install rmagick</code></p>
<p>Happy coding!</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.georgeguimaraes.com/2009/06/instalando-a-gem-rmagick-no-ubuntu-904/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Apresentação no Rails Summit Latin America 2008</title>
		<link>http://blog.georgeguimaraes.com/2008/10/apresentacao-no-rails-summit-latin-america-2008/</link>
		<comments>http://blog.georgeguimaraes.com/2008/10/apresentacao-no-rails-summit-latin-america-2008/#comments</comments>
		<pubDate>Tue, 21 Oct 2008 13:13:51 +0000</pubDate>
		<dc:creator><![CDATA[George Guimarães]]></dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[capacity planning]]></category>
		<category><![CDATA[deployment]]></category>
		<category><![CDATA[guerrilla capacity planning]]></category>
		<category><![CDATA[pagestacker]]></category>
		<category><![CDATA[rails summit]]></category>
		<category><![CDATA[railssummit]]></category>
		<category><![CDATA[web operations]]></category>

		<guid isPermaLink="false">http://blog.georgeguimaraes.com/?p=231</guid>
		<description><![CDATA[Coloquei abaixo os slides que usei na minha apresentação no Rails Summit. Quem tiver alguma dúvida, sugestão, reclamação, pode mandar para mim (george@pagestacker.com), ou deixar um comentário nesse post. Rails Summit 2008 &#8211; Web Operations &#8211; George Guimarães &#8211; Pagestacker View SlideShare presentation or Upload your own. (tags: georgeguimaraes guimaraes) Ainda quero comentar melhor sobre [&#8230;]]]></description>
				<content:encoded><![CDATA[<p>Coloquei abaixo os slides que usei na minha apresentação no Rails Summit. Quem tiver alguma dúvida, sugestão, reclamação, pode mandar para mim (george@pagestacker.com), ou deixar um comentário nesse post.</p>
<div id="__ss_672677" style="width: 425px; text-align: left;"><a style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" title="Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker" href="http://www.slideshare.net/georgeguimaraes/rails-summit-2008-web-operations-george-guimares-pagestacker-presentation?type=powerpoint">Rails Summit 2008 &#8211; Web Operations &#8211; George Guimarães &#8211; Pagestacker</a><object classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000" width="425" height="355" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slideshare.net/swf/ssplayer2.swf?doc=rails-summit-2008-george-guimaraes-1224519583331091-9&amp;stripped_title=rails-summit-2008-web-operations-george-guimares-pagestacker-presentation" /><embed type="application/x-shockwave-flash" width="425" height="355" src="http://static.slideshare.net/swf/ssplayer2.swf?doc=rails-summit-2008-george-guimaraes-1224519583331091-9&amp;stripped_title=rails-summit-2008-web-operations-george-guimares-pagestacker-presentation" allowscriptaccess="always" allowfullscreen="true"></embed></object></p>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">View SlideShare <a style="text-decoration:underline;" title="View Rails Summit 2008 - Web Operations - George Guimarães - Pagestacker on SlideShare" href="http://www.slideshare.net/georgeguimaraes/rails-summit-2008-web-operations-george-guimares-pagestacker-presentation?type=powerpoint">presentation</a> or <a style="text-decoration:underline;" href="http://www.slideshare.net/upload?type=powerpoint">Upload</a> your own. (tags: <a style="text-decoration:underline;" href="http://slideshare.net/tag/georgeguimaraes">georgeguimaraes</a> <a style="text-decoration:underline;" href="http://slideshare.net/tag/guimaraes">guimaraes</a>)</div>
</div>
<p>Ainda quero comentar melhor sobre o Summit, mas fica pra outro post&#8230; aguardem&#8230; =D</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.georgeguimaraes.com/2008/10/apresentacao-no-rails-summit-latin-america-2008/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>
