<?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>Danilo Cabello</title>
	<atom:link href="http://danilocabello.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://danilocabello.com</link>
	<description></description>
	<lastBuildDate>Wed, 01 Feb 2012 11:54:30 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Monkey patch no Python</title>
		<link>http://danilocabello.com/blog/monkey-patch-no-python/</link>
		<comments>http://danilocabello.com/blog/monkey-patch-no-python/#comments</comments>
		<pubDate>Wed, 27 Apr 2011 05:12:01 +0000</pubDate>
		<dc:creator>Danilo Cabello</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Python]]></category>

		<guid isPermaLink="false">http://blog.danilocabello.com/?p=478</guid>
		<description><![CDATA[Hoje o @RodrigoSetti e o @watinha precisaram fazer um código muito louco que envolvia decorators para alterar a funcionalidade de um método de uma classe da biblioteca unittest. Como eles não pretendiam alterar o pacote original, pois isso implicaria em &#8230; <a href="http://danilocabello.com/blog/monkey-patch-no-python/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Hoje o <a href="http://twitter.com/RodrigoSetti">@RodrigoSetti</a> e o <a href="http://twitter.com/watinha">@watinha</a> precisaram fazer um código muito louco que envolvia <a href="http://www.python.org/dev/peps/pep-0318/"><em>decorators</em></a> para alterar a funcionalidade de um método de uma classe da biblioteca <a href="http://docs.python.org/library/unittest.html"><code>unittest</code></a>.</p>

<p>Como eles não pretendiam alterar o pacote original, pois isso implicaria em bagunças catastróficas, eles prosseguiram com tentativa e erro, <strong>raça</strong> e uma pequena ajuda do <a href="http://stackoverflow.com"><em>Stack Overflow</em></a>, até que o código funcionou. Eu que me envolvi um pouco na solução fiquei pensando o motivo da solução ter funcionado e como, então lembrei que havia um termo específico para o que eles haviam feito, <a href="http://en.wikipedia.org/wiki/Duck_punching"><strong>monkey patch</strong></a>, ao chegar em casa decidi pesquisar sobre o assunto, o que me motivou a escrever esse post.</p>

<p>A pesquisa me levou a essa <a href="http://stackoverflow.com/questions/972/adding-a-method-to-an-existing-object">resposta linda</a> do <a href="http://stackoverflow.com"><em>Stack Overflow</em></a> e baseado nela que vou montar minha solução, ou seja, parecerá bastante com uma tradução da <a href="http://stackoverflow.com/questions/972/adding-a-method-to-an-existing-object">resposta</a> mais votada.</p>

<p>No <a href="http://python.org"><em>Python</em></a> há uma leve diferença entre função e método.</p>

<pre><code>&gt;&gt;&gt; class Foo:
...     def bar(self):
...         pass
...
&gt;&gt;&gt; def baz():
...     pass
...
&gt;&gt;&gt; foo = Foo()
&gt;&gt;&gt; foo.bar
&lt;bound method Foo.bar of &lt;__main__.Foo instance at 0x1004d29e0&gt;&gt;
&gt;&gt;&gt; baz
&lt;function baz at 0x1004b5f50&gt;
</code></pre>

<p>Um método de uma classe é do tipo <em>bound method</em>, isto é, é uma função vinculada a uma instância de uma classe e consequentemente, por possuir esse vínculo, recebe o primeiro parâmetro <em>self</em> que é a instância da classe.</p>

<p><em>Callables</em> que são propriedades de uma classe, ainda estão desvinculados, isso permite que você modifique a definição da classe como quiser.</p>

<pre><code>&gt;&gt;&gt; def life(self):
...     return 42
...
&gt;&gt;&gt; Foo.life = life
&gt;&gt;&gt; new_foo = Foo()
&gt;&gt;&gt; new_foo.life
&lt;bound method Foo.life of &lt;__main__.Foo instance at 0x1004d29e0&gt;&gt;
&gt;&gt;&gt; new_foo.life()
42
</code></pre>

<p>Há um porém nessa solução, ela modifica <strong>todas</strong> as instâncias da classe.</p>

<pre><code>&gt;&gt;&gt; foo.life()
42
</code></pre>

<p>É importante <strong>salvar</strong> a função atual em uma variável para retornar a classe ao <strong>original</strong> após o uso.</p>

<p>Se você inocentemente tenta assinalar a função como atributo de uma instância:</p>

<pre><code>&gt;&gt;&gt; def leet(self):
...     return 1337
...
&gt;&gt;&gt; foo.leet = leet
&gt;&gt;&gt; foo.leet()
Traceback (most recent call last):
  File "&lt;stdin&gt;", line 1, in &lt;module&gt;
TypeError: leet() takes exactly 1 argument (0 given)
</code></pre>

<p>Acontece que a função não é automaticamente vinculada a instância e portanto não recebe o <em>self</em> como esperado.</p>

<pre><code>&gt;&gt;&gt; foo.leet
&lt;function leet at 0x1004b6f30&gt;
</code></pre>

<p>Para vincular um método a uma <strong>única</strong> instância podemos utilizar o módulo <a href="http://docs.python.org/library/new.html#module-new"><code>new</code></a>:</p>

<pre><code>&gt;&gt;&gt; import new
&gt;&gt;&gt; foo.leet = new.instancemethod(leet, foo, Foo)
&gt;&gt;&gt; foo.leet
&lt;bound method Foo.leet of &lt;__main__.Foo instance at 0x1004d29e0&gt;&gt;
&gt;&gt;&gt; foo.leet()
1337
</code></pre>

<p>Desta vez outras instâncias não serão afetadas.</p>

<pre><code>&gt;&gt;&gt; new_foo.leet()
Traceback (most recent call last):
  File "&lt;stdin&gt;", line 1, in &lt;module&gt;
AttributeError: Foo instance has no attribute 'leet'
</code></pre>

<p>Esse é um verdadeiro <a href="http://en.wikipedia.org/wiki/Duck_punching"><strong>monkey patch</strong></a>.</p>

<p>Vale lembrar que a partir da versão 2.6 do <a href="http://python.org">Python</a> o módulo <a href="http://docs.python.org/library/new.html#module-new"><code>new</code></a> está <a href="http://en.wikipedia.org/wiki/Deprecation"><em>deprecated</em></a> em favor do módulo <a href="http://docs.python.org/library/types.html#module-types"><code>types</code></a>, então alteramos nossa solução para:</p>

<pre><code>&gt;&gt;&gt; def qux(self):
...     return "quux"
...
&gt;&gt;&gt; import types
&gt;&gt;&gt; foo.qux = types.MethodType(qux, foo)
&gt;&gt;&gt; foo.qux
&lt;bound method ?.qux of &lt;__main__.Foo instance at 0x1004d29e0&gt;&gt;
&gt;&gt;&gt; foo.qux()
'quux'
</code></pre>

<p>Por fim, uma outra opção é utilizar <code>types.UnboundMethodType</code>, que faz sentido, agora que sabemos o que é um método vinculado (<em>bound</em>).</p>

<p>Por hoje é só, até a próxima pessoal.</p>
]]></content:encoded>
			<wfw:commentRss>http://danilocabello.com/blog/monkey-patch-no-python/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Nova fonte do Ubuntu 10.10 no 10.04</title>
		<link>http://danilocabello.com/blog/nova-fonte-do-ubuntu-10-10-no-10-04/</link>
		<comments>http://danilocabello.com/blog/nova-fonte-do-ubuntu-10-10-no-10-04/#comments</comments>
		<pubDate>Thu, 14 Oct 2010 14:51:26 +0000</pubDate>
		<dc:creator>Danilo Cabello</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.danilocabello.com/?p=468</guid>
		<description><![CDATA[Decidi não migrar para o Ubuntu 10.10 por dois motivos: LTS (Long Term Support), o Ubuntu 10.04 promete suporte de 3 anos (a partir da data de lançamento) enquanto o Ubuntu 10.10 promete suporte de 1,5 anos Novidades, foram poucas &#8230; <a href="http://danilocabello.com/blog/nova-fonte-do-ubuntu-10-10-no-10-04/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p><center><img src="http://blog.danilocabello.com/wp-content/uploads/2010/10/ubuntu_logo.png" alt="Ubuntu" /></center></p>

<p>Decidi não migrar para o Ubuntu 10.10 por dois motivos:</p>

<ul>
<li>LTS (Long Term Support), o Ubuntu 10.04 promete suporte de 3 anos (a partir da data de lançamento) enquanto o Ubuntu 10.10 promete suporte de 1,5 anos</li>
<li>Novidades, foram poucas novidades que justificassem eu configurar todo meu ambiente novamente e não é exagero dizer que eu baixei, instalei e configurei muita coisa.</li>
</ul>

<p>Todavia, eu achei a nova fonte <strong>livre</strong> Ubuntu muito bonita e atraente e queria colocá-la no meu Ubuntu 10.04, como foi bastante trabalhoso, pois a fonte não está disponível nas versões anteriores e o repositório não está com acesso público, vou postar aqui onde encontrei a solução.</p>

<p>A equipe do site <a href="http://www.webupd8.org/2010/10/public-ubuntu-font-family-ppa-for.html">webupd8</a> publicou uma cópia da fonte em seu repositório e para instalá-la basta:</p>

<pre><code>sudo add-apt-repository ppa:webupd8team/ubuntu-font-family
sudo apt-get update
sudo apt-get install ttf-ubuntu-font-family
</code></pre>

<p>Depois da instalação, basta um clique com o botão direito no <em>Desktop</em> > <em>Change Desktop Background</em> > <em>Fonts</em> (aba) e selecioná-la como padrão.</p>

<p>Fonte: <a href="http://www.webupd8.org/2010/10/public-ubuntu-font-family-ppa-for.html">webupd8</a></p>
]]></content:encoded>
			<wfw:commentRss>http://danilocabello.com/blog/nova-fonte-do-ubuntu-10-10-no-10-04/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Rails, por onde começar?</title>
		<link>http://danilocabello.com/blog/rails-por-onde-comecar/</link>
		<comments>http://danilocabello.com/blog/rails-por-onde-comecar/#comments</comments>
		<pubDate>Tue, 12 Oct 2010 20:36:01 +0000</pubDate>
		<dc:creator>Danilo Cabello</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[rails]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://blog.danilocabello.com/?p=455</guid>
		<description><![CDATA[Se você, assim como eu, quando encontra uma tecnologia, ferramenta ou framework novo, não sabe por onde começar, para Rails uma boa referência é o livro Rails Tutorial (em inglês), disponível de graça na versão HTML e pago na versão &#8230; <a href="http://danilocabello.com/blog/rails-por-onde-comecar/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Se você, assim como eu, quando encontra uma tecnologia, ferramenta ou <em>framework</em> novo, não sabe por onde começar, para <a href="http://rubyonrails.org/">Rails</a> uma boa referência é o livro <a href="http://railstutorial.org/">Rails Tutorial (em inglês)</a>, disponível de <strong>graça</strong> na versão HTML e pago na versão PDF.</p>

<p><center><a href="http://railstutorial.org/"><img src="http://blog.danilocabello.com/wp-content/uploads/2010/10/railstutorial.png" alt="Rails Tutorial" /></a></center></p>

<p>O autor constrói uma aplicação do tipo <a href="http://twitter.com">Twitter</a> com o leitor e utiliza diversos conceitos e ferramentas interessantes como:</p>

<ul>
<li><a href="http://rvm.beginrescueend.com/">RVM</a>, permite a instalação de diversas versões de <a href="http://www.ruby-lang.org/pt/">Ruby</a> na mesma máquina.</li>
<li>Testes unitários, como testar seu <em>model</em> ou <em>controller</em>.</li>
<li>Testes de integração, como testar sua aplicação.</li>
<li><a href="http://pt.wikipedia.org/wiki/Test_Driven_Development">TDD</a>, testes antes de escrever o código da aplicação, costuma simplificar muito as interfaces.</li>
<li><a href="http://git-scm.com/">git</a>, controle de versão descentralizado.</li>
<li><a href="http://pt.wikipedia.org/wiki/Mock-up"><em>Mock-ups</em></a>, criação de um rascunho da tela antes de construí-la, é implícito isso, mas você se acostuma fácil, o autor utiliza a fabulosa <a href="https://gomockingbird.com/">MockingBird</a>.</li>
<li><a href="http://heroku.com/">Heroku</a>, <a href="http://en.wikipedia.org/wiki/Software_deployment"><em>deploy</em></a> simplificado em cima da plataforma do <a href="http://heroku.com/">Heroku</a>.</li>
</ul>

<p>Além de ensinar o uso de <a href="http://rubyonrails.org/">Rails</a> na construção de aplicações web. Em suma, é uma excelente referência e ainda há versões do livro tanto para Rails 2.3 como Rails 3.0.</p>
]]></content:encoded>
			<wfw:commentRss>http://danilocabello.com/blog/rails-por-onde-comecar/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Substituindo o Caps Lock por outra tecla mais útil</title>
		<link>http://danilocabello.com/blog/substituindo-o-caps-lock-por-outra-tecla-mais-util/</link>
		<comments>http://danilocabello.com/blog/substituindo-o-caps-lock-por-outra-tecla-mais-util/#comments</comments>
		<pubDate>Mon, 20 Sep 2010 12:36:41 +0000</pubDate>
		<dc:creator>Danilo Cabello</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.danilocabello.com/?p=440</guid>
		<description><![CDATA[Um belo dia eu olhei pro meu teclado e vi uma tecla com excelente localização, onde meu dedo mindinho alcança sem esforço, mas que atualmente não oferecia nenhuma utilidade para mim. Era ela a tecla Caps Lock ou &#8220;Fixa&#8221; em &#8230; <a href="http://danilocabello.com/blog/substituindo-o-caps-lock-por-outra-tecla-mais-util/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Um belo dia eu olhei pro meu teclado e vi uma tecla com excelente localização, onde meu dedo mindinho alcança sem esforço, mas que atualmente não oferecia nenhuma utilidade para mim.</p>

<p>Era ela a tecla <a href="http://pt.wikipedia.org/wiki/Caps_Lock">Caps Lock</a> ou &#8220;Fixa&#8221; em alguns teclados <a href="http://pt.wikipedia.org/wiki/ABNT">ABNT</a>, dá pra contar na mão quantas vezes eu precisei digitar um texto todo em maiúsculo, pra ajudar, comecei a estudar como utilizar o <a href="http://pt.wikipedia.org/wiki/Vim">vim</a> no meu dia a dia, pra quem não sabe o <a href="http://pt.wikipedia.org/wiki/Vim">vim</a> é um editor de texto que dentre muitos outros detalhes faz bastante uso da tecla <a href="http://en.wikipedia.org/wiki/Esc_key">Esc</a> que precisa de certo deslocamento da mão para ser alcançada.</p>

<p><img src="http://blog.danilocabello.com/wp-content/uploads/2010/09/caps_lock.jpg" alt="Caps Lock" /></p>

<p>Sabia que no <a href="http://pt.wikipedia.org/wiki/Ubuntu">Ubuntu</a> (Linux ou GNU/Linux) trocar uma tecla como a inútil <a href="http://pt.wikipedia.org/wiki/Caps_Lock">Caps Lock</a> por uma outra tecla seria fácil e me pus a procurar na internet, no fim acabei com um script simples que troca e destroca a tecla pelo <a href="http://en.wikipedia.org/wiki/Esc_key">Esc</a>, caso um dia eu eventualmente precise dela, segue o conteúdo do script:</p>

<pre><code>#!/bin/sh

case $1 in
        off)
                xmodmap -e "clear lock"
                xmodmap -e "keycode 0x42 = Escape"
                ;;
        on)
                xmodmap -e "keycode 0x42 = Caps_Lock"
                xmodmap -e "add lock = Caps_Lock"
                ;;
        *)
                echo "Usage: caps {on|off}, turn the caps lock key on or"
                echo "off.  When it is off, the key acts as an Escape key."
                ;;
esac
</code></pre>

<p>Salvei em meu <em>home</em> como <code>caps_lock.sh</code> e permiti a execução dele com <code>chmod +x caps_lock.sh</code>, feito isso adicionei a seguinte linha no meu <code>.bash_profile</code> (caso o arquivo não exista em seu <em>home</em> basta criá-lo):</p>

<pre><code>~/caps_lock.sh off
</code></pre>

<p>Assim sempre que eu fizer <em>login</em> a tecla é trocada pelo <a href="http://en.wikipedia.org/wiki/Esc_key">Esc</a> mas se no meio de uma sessão eu precisar do <a href="http://pt.wikipedia.org/wiki/Caps_Lock">Caps Lock</a> basta abrir um terminal e executar o seguinte comando <code>~/caps_lock.sh on</code>.</p>

<p>Pra quem usa <a href="http://pt.wikipedia.org/wiki/Emacs">emacs</a> a dica também é válida sendo mais interessante trocar o <a href="http://en.wikipedia.org/wiki/Esc_key">Esc</a> pelo <a href="http://pt.wikipedia.org/wiki/Control_(tecla)">Control</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://danilocabello.com/blog/substituindo-o-caps-lock-por-outra-tecla-mais-util/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Trocando os ícones do Empathy</title>
		<link>http://danilocabello.com/blog/trocando-os-icones-do-empathy/</link>
		<comments>http://danilocabello.com/blog/trocando-os-icones-do-empathy/#comments</comments>
		<pubDate>Sun, 18 Jul 2010 21:17:32 +0000</pubDate>
		<dc:creator>Danilo Cabello</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[linux]]></category>
		<category><![CDATA[ubuntu]]></category>

		<guid isPermaLink="false">http://blog.danilocabello.com/?p=400</guid>
		<description><![CDATA[O Ubuntu 10.04 vem com o Empathy por padrão, que é um ótimo cliente, porém tenho a impressão de que os ícones são trocados Ausente era pra ser Ocupado e Ocupado era pra ser Ausente, pois munido de um pouco &#8230; <a href="http://danilocabello.com/blog/trocando-os-icones-do-empathy/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>O Ubuntu 10.04 vem com o Empathy por padrão, que é um ótimo cliente, porém tenho a impressão de que os ícones são trocados Ausente era pra ser Ocupado e Ocupado era pra ser Ausente, pois munido de um pouco de tempo livre me pus a procurar como colocar ícones que ofereciam melhor usabilidade, já que eu me confundia todo com os ícones padrão.</p>

<p>Encontrei no OMG! Ubuntu[1] a solução, mas ao invés de substituir totalmente como o artigo indica eu coloquei os ícones em meu home no seguinte caminho $HOME/.icons/ inicialmente não tinha arquivos nessa pasta, após deszipar o arquivo[2] com ícones novos fiquei com uma pasta hicolor dentro de .icons.</p>

<p>Feito isso, basta reiniciar o Empathy e ter ícones muito mais lógicos, parecidos com o GTalk original. Veja como os ícones são claros e sem necessidade de legenda:</p>

<p><a href="http://blog.danilocabello.com/wp-content/uploads/2010/07/empathy_icons.png"><img class="aligncenter size-full wp-image-402" title="empathy_icons" src="http://blog.danilocabello.com/wp-content/uploads/2010/07/empathy_icons.png" alt="Ícones alternativos para o Empathy" width="179" height="31" /></a></p>

<p>[1] &#8211; <a href="http://www.omgubuntu.co.uk/2010/01/elementary-empathy-theme.html">http://www.omgubuntu.co.uk/2010/01/elementary-empathy-theme.html
</a>[2] &#8211; <a href="http://www.gnome-look.org/CONTENT/content-files/119449-elementary%20Empathy.zip">http://www.gnome-look.org/CONTENT/content-files/119449-elementary%20Empathy.zip</a></p>
]]></content:encoded>
			<wfw:commentRss>http://danilocabello.com/blog/trocando-os-icones-do-empathy/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Resolvido: Apache (Wamp) lento no Windows 7 64 Bits</title>
		<link>http://danilocabello.com/blog/resolvido-apache-wamp-lento-no-windows-7-64-bits/</link>
		<comments>http://danilocabello.com/blog/resolvido-apache-wamp-lento-no-windows-7-64-bits/#comments</comments>
		<pubDate>Sun, 30 May 2010 03:55:45 +0000</pubDate>
		<dc:creator>Danilo Cabello</dc:creator>
				<category><![CDATA[Blog]]></category>

		<guid isPermaLink="false">http://blog.danilocabello.com/?p=382</guid>
		<description><![CDATA[Esses dias eu estava utilizando meu computador com Windows 7 64 Bits para desenvolver o projeto da empresa em PHP. Munido do WAMP server tudo corria bem, até notar uma certa lentidão, cerca de 5 segundos para toda e qualquer &#8230; <a href="http://danilocabello.com/blog/resolvido-apache-wamp-lento-no-windows-7-64-bits/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Esses dias eu estava utilizando meu computador com Windows 7 64 Bits para desenvolver o projeto da empresa em PHP. Munido do WAMP server tudo corria bem, até notar uma certa lentidão, cerca de 5 segundos para toda e qualquer requisição ao localhost! Fiquei preocupado achando que havia algum problema com a instalação de algum software e iria dar uma dor de cabeça para achar, depois de muitas buscas ao google encontrei o problema!</p>

<p>O Windows 7 não vem com a rota localhost por padrão então quando eu acessava 127.0.0.1 a requisição era próximo do instantânea mas quando utilizava localhost, demorava e me deixava impaciente.</p>

<p>Para não ter que acessar através do IP eu alterei o arquivo <code>hosts</code> do Windows que se encontra em:</p>

<p><code>C:\Windows\System32\drivers\etc</code></p>

<p>Alterei o arquivo adicionando o seguinte:</p>

<p><code>127.0.0.1       localhost</code></p>

<p>Na verdade a linha já estava lá e eu apenas removi o comentário, cerquilha (#) na frente.</p>

<p>Feito isso, localhost rápido como o acesso pelo IP.</p>

<p>Espero que resolva o seu problema também!</p>

<p><strong>OBS</strong>: Para quem usa UAC (aquela proteção do Windows), copie o arquivo para a área de trabalho, altere e cole de volta, o UAC pedirá autorização e dará tudo certo.</p>
]]></content:encoded>
			<wfw:commentRss>http://danilocabello.com/blog/resolvido-apache-wamp-lento-no-windows-7-64-bits/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Space Monger: organizando seus arquivos</title>
		<link>http://danilocabello.com/blog/space-monger-organizando-seus-arquivos/</link>
		<comments>http://danilocabello.com/blog/space-monger-organizando-seus-arquivos/#comments</comments>
		<pubDate>Wed, 12 May 2010 17:07:48 +0000</pubDate>
		<dc:creator>Danilo Cabello</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[Utilidades]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.danilocabello.com/?p=374</guid>
		<description><![CDATA[Dica de aplicativo para organização de disco rígido, HD externo, pen drive, ou qualquer outra unidade de armazenamento: Space Monger [1]. Para mim este software é comparável ao Google Maps do HD, com um clique você escaneia todo seu disco &#8230; <a href="http://danilocabello.com/blog/space-monger-organizando-seus-arquivos/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Dica de aplicativo para organização de disco rígido, HD externo, pen drive, ou qualquer outra unidade de armazenamento: <a href="http://www.sixty-five.cc/sm/">Space Monger</a> [1].</p>

<p>Para mim este software é comparável ao Google Maps do HD, com um clique você escaneia todo seu disco rígido e consegue dar zoom visualizando de arquivos grandes a arquivos pequenos.</p>

<p>Um exemplo do resultado do scan:
<a href="http://blog.danilocabello.com/wp-content/uploads/2010/05/space_monger.gif"><img class="aligncenter size-medium wp-image-375" title="Space Monger" src="http://blog.danilocabello.com/wp-content/uploads/2010/05/space_monger.gif" alt="Organizando seu HD" /></a></p>

<p>Veja que ele totaliza o conteúdo das pasta e quando você, consegui organizar meu HD externo, encontrando arquivos gigantescos que eu não utilizava pra nada, sistemas operacionais que estavam nas pastas erradas, etc.</p>

<p>Vale lembrar que é um software pago e com 30 dias grátis, que são mais do que suficientes para um uso caseiro. E apenas para o Windows.</p>

<p>[1] &#8211; <a href="http://www.sixty-five.cc/sm/">http://www.sixty-five.cc/sm/</a></p>
]]></content:encoded>
			<wfw:commentRss>http://danilocabello.com/blog/space-monger-organizando-seus-arquivos/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Onde fica o fixmbr do Windows 7 ou como arrumar seu boot após remover as partições com Linux</title>
		<link>http://danilocabello.com/blog/onde-fica-o-fixmbr-do-windows-7-ou-como-arrumar-seu-boot-apos-remover-as-particoes-com-linux/</link>
		<comments>http://danilocabello.com/blog/onde-fica-o-fixmbr-do-windows-7-ou-como-arrumar-seu-boot-apos-remover-as-particoes-com-linux/#comments</comments>
		<pubDate>Sat, 13 Feb 2010 05:58:11 +0000</pubDate>
		<dc:creator>Danilo Cabello</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[boot]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.danilocabello.com/?p=352</guid>
		<description><![CDATA[Decidi jogar meu Ubuntu fora momentaneamente por precisar de espaço no computador e obviamente sabia que o GRUB (ferramenta de boot) iria dar problema após remover a partição do Ubuntu e de SWAP, por isso, preparei meu pen-drive com Windows &#8230; <a href="http://danilocabello.com/blog/onde-fica-o-fixmbr-do-windows-7-ou-como-arrumar-seu-boot-apos-remover-as-particoes-com-linux/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Decidi jogar meu Ubuntu fora momentaneamente por precisar de espaço no computador e obviamente sabia que o GRUB (ferramenta de <em>boot</em>) iria dar problema após remover a partição do Ubuntu e de SWAP, por isso, preparei meu pen-drive com Windows 7 conforme o <a href="http://blog.danilocabello.com/arquivo/instalando-o-windows-7-pelo-pen-drive/">post anterior</a> já adiantando esse tipo de problema.</p>

<p>Após remover a partição e tentar ligar o computador, dou de cara com o GRUB reclamando que não encontrou nada para conseguir iniciar normalmente, coloquei meu pen-drive e reiniciei a máquina, o Windows 7 oferece no canto inferior esquerdo a opção de reparar o computador, fiquei surpreso que ao acessar o modo de reparo o Windows já notou que havia problema com o <em>boot </em>e me informou que tinha arrumado a situação e que eu podia reiniciar.</p>

<p>Para minha surpresa nada aconteceu e o GRUB estava lá, lindo, leve e solto, me impedindo de utilizar meu computador. Reiniciei novamente o computador com o pen-drive com Windows e dessa vez fui direto na linha de comando, outra surpresa me aguardava, os tradicionais <code>fixboot</code> e <code>fixmbr</code> não se encontravam no diretório aberto no <em>prompt</em>.</p>

<p>Por sorte e com acesso a outro computador, descobri através do Google que os arquivos se encontram em:</p>

<p><pre>
X:\windows\system32\bootrec.exe /FixMbr
</pre></p>

<p>Executado o comando e pronto, computador funcionando novamente sem GRUB, o susto valeu o post no blog.</p>
]]></content:encoded>
			<wfw:commentRss>http://danilocabello.com/blog/onde-fica-o-fixmbr-do-windows-7-ou-como-arrumar-seu-boot-apos-remover-as-particoes-com-linux/feed/</wfw:commentRss>
		<slash:comments>18</slash:comments>
		</item>
		<item>
		<title>Instalando o Windows 7 pelo Pen Drive</title>
		<link>http://danilocabello.com/blog/instalando-o-windows-7-pelo-pen-drive/</link>
		<comments>http://danilocabello.com/blog/instalando-o-windows-7-pelo-pen-drive/#comments</comments>
		<pubDate>Fri, 12 Feb 2010 05:05:15 +0000</pubDate>
		<dc:creator>Danilo Cabello</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[pen-drive]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.danilocabello.com/?p=347</guid>
		<description><![CDATA[Voltando a ativa depois de alguns meses de blog parado, estou em um momento crítico da minha vida, mudando de foco em muitas coisas e principalmente na forma de pensar e reagir as situações, mas isso é assunto para outro &#8230; <a href="http://danilocabello.com/blog/instalando-o-windows-7-pelo-pen-drive/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Voltando a ativa depois de alguns meses de blog parado, estou em um momento crítico da minha vida, mudando de foco em muitas coisas e principalmente na forma de pensar e reagir as situações, mas isso é assunto para outro post.</p>

<p>Eu não gosto de queimar DVD e por sorte minha faculdade tem parceria com a Microsoft, então após baixar a ISO do Windows 7 eu tive que ir a caça de como fazer um pen-drive &#8220;bootável&#8221;. Atualmente há diversas alternativas, apesar de gostar de linha de comando, tem coisas que eu prefiro que sejam práticas e rápidas.</p>

<p>Para encurtar o seu tempo procurando por uma solução descomplicada e após visitar mais de dez blogs e fazer diversas buscas, segue a dica.</p>

<ol>
    <li>Baixe o aplicativo ABUSB <a href="http://cid-f52381d9f2fd5fd8.skydrive.live.com/browse.aspx/ABUSB">aqui</a>, se por acaso o link estiver quebrado me avise por comentário ou e-mail. <strong>Importante:</strong> Não sou o autor do aplicativo.</li>
    <li>De posse de seu CD/DVD <strong>ou </strong>de seu ISO do Windows, abra o aplicativo.</li>
    <li>Next, next, next, espere, espere tranquilamente, no caso do Windows 7 por exemplo, tem um arquivo <em>install.wim</em> que possui 2.7 Gb parece que o programa trava no 6% por causa disso, mas depois que ele termina de mandar esse arquivo, vai direto para 90% concluído.</li>
    <li>Agora é só colocar a sua BIOS para dar <em>boot </em>pelo pen-drive e instalar o Windows.</li>
</ol>

<p>Foto do aplicativo, para você ver como a interface é simples:</p>

<p style="text-align: center;"><a href="http://blog.danilocabello.com/wp-content/uploads/2010/02/abusb.png"><img class="aligncenter size-medium wp-image-348" title="ABUSB" src="http://blog.danilocabello.com/wp-content/uploads/2010/02/abusb.png" alt="" width="506" height="278" /></a></p>

<p>Esse post é resultado de passar mais tempo procurando sobre como colocar o Windows no pen-drive do que esperando ele terminar de instalar.</p>

<p><span style="color: #ff0000;"><strong>Atualização: </strong></span> Meu colega de turma me avisou pelo Buzz que a Microsoft liberou uma ferramenta oficial para fazer esse tipo de preparo sem dor de cabeça, segue o link:
<a href="http://store.microsoft.com/Help/ISO-Tool">http://store.microsoft.com/Help/ISO-Tool</a></p>
]]></content:encoded>
			<wfw:commentRss>http://danilocabello.com/blog/instalando-o-windows-7-pelo-pen-drive/feed/</wfw:commentRss>
		<slash:comments>7</slash:comments>
		</item>
		<item>
		<title>Aspas duplas em arquivos batch (.bat)</title>
		<link>http://danilocabello.com/blog/aspas-duplas-em-arquivos-batch-bat/</link>
		<comments>http://danilocabello.com/blog/aspas-duplas-em-arquivos-batch-bat/#comments</comments>
		<pubDate>Mon, 09 Nov 2009 13:55:50 +0000</pubDate>
		<dc:creator>Danilo Cabello</dc:creator>
				<category><![CDATA[Blog]]></category>
		<category><![CDATA[dica]]></category>
		<category><![CDATA[rápida]]></category>
		<category><![CDATA[Windows]]></category>

		<guid isPermaLink="false">http://blog.danilocabello.com/?p=338</guid>
		<description><![CDATA[Se por um acaso do destino você precisar alterar ou começar do zero um arquivo batch (.bat) e ainda necessitar receber argumentos pela chamada do arquivo, muito provavelmente você irá utilizar aspas no argumento se ele for um caminho de &#8230; <a href="http://danilocabello.com/blog/aspas-duplas-em-arquivos-batch-bat/">Continue reading <span class="meta-nav">&#8594;</span></a>]]></description>
			<content:encoded><![CDATA[<p>Se por um acaso do destino você precisar alterar ou começar do zero um arquivo batch (.bat) e ainda necessitar receber argumentos pela chamada do arquivo, muito provavelmente você irá utilizar aspas no argumento se ele for um caminho de alguma pasta ou diretório.</p>

<p>Se esse caminho não possuir espaços, tudo será tranquilo, você provavelmente irá utilizar <code>%1</code> e receberá o argumento corretamente, mas se o caminho possuir espaços, você vai colar aspas duplas pra passar o parâmetro corretamente e surpresa não vai conseguir concatenar esse caminho com nada.</p>

<p>Depois de muita pesquisa do google fica a dica então: <code>%~1</code> retira as aspas do caminho facilitando para você fazer algo do tipo:</p>

<p><code>"%~1\programa.exe"</code></p>

<p>Lembrando que segundo a fonte isso vale apenas para NT 4 (SP6) pra cima.</p>

<p>Fonte: <a href="http://www.robvanderwoude.com/parameters.php">http://www.robvanderwoude.com/parameters.php</a></p>
]]></content:encoded>
			<wfw:commentRss>http://danilocabello.com/blog/aspas-duplas-em-arquivos-batch-bat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

