<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<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/"
	>

<channel>
	<title>vida-geek &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://wordpress.com/tag/vida-geek/</link>
	<description>Feed of posts on WordPress.com tagged "vida-geek"</description>
	<pubDate>Tue, 07 Oct 2008 00:30:00 +0000</pubDate>

	<generator>http://wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[Calculando fatorial em Python]]></title>
<link>http://wille.wordpress.com/?p=219</link>
<pubDate>Sat, 27 Sep 2008 20:12:37 +0000</pubDate>
<dc:creator>wille</dc:creator>
<guid>http://wille.pt-br.wordpress.com/2008/09/27/calculando-fatorial-em-python/</guid>
<description><![CDATA[Meu irmão tá cursando o primeiro período de Ciência da Computação na UESB, então estamos semp]]></description>
<content:encoded><![CDATA[<p>Meu irmão tá cursando o primeiro período de Ciência da Computação na <a href="http://www.uesb.br">UESB</a>, então estamos sempre batendo um papo sobre programação e compartilhando o que estamos aprendendo. Essa noite. ele comentou que quebrou a cabeça até descobrir como escrever um código para calcular o fatorial de um número inserido pelo usuário.</p>
<p>Eu também passei horas tentando descobrir o caminho. O mais surpreendente é que, no final, o código é muito simples...</p>
<blockquote><p>#!/bin/python<br />
#calculador de fatorial</p>
<p>n = int(raw_input('Digite um numero: '))</p>
<p>resultado = 1</p>
<p>lista = range(1,n+1)</p>
<p>for x in lista:</p>
<p style="padding-left:30px;">resultado = x * resultado</p>
<p>print '%s! = %s' % (n, resultado)</p></blockquote>
<p>O fatorial de um número é ele multiplicado por todos os números positivos e menores que ele. Exemplo 5! = 5 x 4 x 3 x 2 x 1.</p>
<p>A lógica do programa está em gerar uma lista que começa no número 1 e vai até o número digitado pelo usuário [ <strong><em>range(1,n+1)</em></strong> ]. O <em><strong>range(1,6)</strong></em> por exemplo, gera a lista <em><strong>[1, 2, 3, 4, 5]</strong></em>. Antes disso, eu havia atribuído o valor 1 à variável 'resultado'. Em seguida, cada número da lista é multiplicado pelo resultado da multiplicação anterior.</p>
<p>A última linha apenas imprime o resultado do fatorial.</p>
<p>Se alguém tiver mais sugestões de bons desafios de programação, deixem comentários.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Programando em Python: contador de troco]]></title>
<link>http://wille.wordpress.com/?p=188</link>
<pubDate>Thu, 28 Aug 2008 03:41:56 +0000</pubDate>
<dc:creator>wille</dc:creator>
<guid>http://wille.pt-br.wordpress.com/2008/08/28/programando-em-python-contador-de-troco/</guid>
<description><![CDATA[Nos últimos meses, tenho sentido vontade de me aventurar pelo mundo da programação e do desenvolv]]></description>
<content:encoded><![CDATA[<p>Nos últimos meses, tenho sentido vontade de me aventurar pelo mundo da programação e do desenvolvimento web, sendo assim, comecei a estudar lógica de programação e Python, uma linguagem de fácil aprendizado e com muitos recursos.</p>
<p>Hoje eu resolvi praticar um pouco e escrevi um programa para calcular troco e mostrar como entregá-lo com o menor número de notas possíveis.</p>
<p>Veja como ficou o código:</p>
<blockquote><p><code><strong>#!/bin/python<br />
# -*- coding: iso-8859-15 -*-<br />
#contador de troco</strong></code></p>
<p><strong>preco = int(raw_input('Digite o valor da compra: '))<br />
dinheiro = int(raw_input('Digite a quantia de dinheiro entregue: '))<br />
print</strong></p>
<p><strong>troco = dinheiro - preco</strong></p>
<p><strong>if troco &#62; 0:</strong></p>
<p style="padding-left:30px;"><strong>print 'Valor do troco: R$ %s.' % troco<br />
print</strong></p>
<p style="padding-left:30px;"><strong>for p in 100, 50, 20, 10, 5, 2, 1:</strong></p>
<p style="padding-left:60px;"><strong>if troco &#62;= p:</strong></p>
<p style="padding-left:90px;"><strong>n = troco/p<br />
r = troco - p*n<br />
print ': %s nota(s) de R$ %s.' % (n, p)<br />
troco = r</strong></p>
<p><strong>else:</strong></p>
<p style="padding-left:30px;"><strong>print 'O dinheiro entregue é menor do que o valor da compra.'</strong></p>
<p><strong></strong></p></blockquote>
<p>Código comentado:</p>
<p><strong>preco = int(raw_input('Digite o valor da compra: '))</strong></p>
<p>O comanto <strong>raw_input(' ')</strong> recebe os dados digitados pelo usuário. Como estes dados são considerados como <em>string</em>, ou seja, apenas uma seqüência de caracteres, é necessário transformá-los em número para que, assim, podermos efetuar operações matemáticas com esses dados. Preferi usar o comando <strong>int()</strong>, o qual converte os dados em números inteiros. Por fim, o número é armazenado na variável <strong>preco</strong>.</p>
<p>O mesmo se dá na linha seguinte para a variável <strong>dinheiro</strong>. O <strong>print</strong> da linha seguinte apenas gera uma linha em branco durante a execução do programa. Já na linha:</p>
<p><strong>troco = dinheiro - preco</strong></p>
<p>calculamos o valor do troco.</p>
<p><strong>if troco &#62; 0:</strong></p>
<p>Para que o troco exista, ele tem que ser maior do que zero (óbvio!).</p>
<p>Se o troco for menor que zero, o programa pula para a linha:</p>
<p><strong>else:<br />
print 'O dinheiro entregue é menor do que o valor da compra.'</strong></p>
<p>a qual avisa o usuário que o valor do dinheiro é menor do que o das despesas.</p>
<p>Se o troco for maior do que zero, o programa vai mostrar o valor do troco:</p>
<p><strong>print 'Valor do troco: R$ %s.' % troco</strong></p>
<p>No bloco seguinte, eu usei o seguinte raciocínio: o cliente só vai receber uma nota de 100 se o troco for maior que 100 e assim sucessivamente com todas as notas (100, 50, 20, 10, 5, 2 e 1). O comando <em><strong>for</strong></em> vai fazer a comparação com o valor de cada nota.</p>
<p><strong>if troco &#62;= p:</strong></p>
<p>Se o troco é maior ou igual a 100, então o número de notas de 100 que o cliente vai receber é o valor do troco dividido por 100 (<strong>n = troco/p</strong>). Nesse caso, n sempre vai ser um número inteiro em razão do uso do comando <strong>int()</strong> no começo do programa. A operação envolvendo dois número inteiros em Python, sempre vai resultar num número inteiro. Então, se o valor do troco for R$ 107, <em><strong>n</strong></em> será igual a 1.</p>
<p>Daí eu uso <strong>r = troco - p*n </strong>pra calcular o resto da operação. O resto (r) é igual ao troco menos o valor da nota múltiplicado pela quantidade destas. Eu não precisei usar parênteses no p*n devido a uma propriedade do Python de efetuar a multiplicação antes da subtração.</p>
<p><strong>print ': %s nota(s) de R$ %s.' % (n, p)</strong></p>
<p>Mostra a quantidade de notas de 100 que o cliente tem direito. Por fim, temos a linha:</p>
<p><strong>troco = r</strong></p>
<p>que substitui o valor da variável <em><strong>troco</strong></em> pelo valor de <strong>r</strong>. A partir daí, o programa vai repetir essas operações para todos os valores presentes na linha <strong>for p in 100, 50, 20, 10, 5, 2, 1:</strong></p>
<p>É isso<strong>...</strong> depois vou tentar fazer o programa calcular os centavos do troco também. Qualquer erro ou sugestão de melhorias no algoritmo, deixem comentário.</p>
<p>Obs.: Pra executar o programa, basta salvá-lo como arquivo de texto e digitar no terminal<strong>: python arquivo.py</strong></p>
<p><strong>Manuais que eu utilizei:</strong> <a class="attachment" title="Aprenda_a_Programar-Luciano_Ramalho.pdf" href="http://www.pythonbrasil.com.br/moin.cgi/DocumentacaoPython?action=AttachFile&#38;do=get&#38;target=Aprenda_a_Programar-Luciano_Ramalho.pdf">Aprenda a Programar</a> do Luciano Ramalho e <a href="http://www.pythonbrasil.com.br/moin.cgi/DocumentacaoPython?action=AttachFile&#38;do=get&#38;target=python24.pdf">Tutorial Python</a>.</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[a forma mais fácil de baixar vídeos do You Tube]]></title>
<link>http://wille.wordpress.com/?p=111</link>
<pubDate>Sun, 11 May 2008 16:18:26 +0000</pubDate>
<dc:creator>wille</dc:creator>
<guid>http://wille.pt-br.wordpress.com/2008/05/11/a-forma-mais-facil-de-baixar-videos-do-you-tube/</guid>
<description><![CDATA[No GNU/Linux, existe uma forma bem fácil e rápida de extrair vídeos de sites como You Tube, blip.]]></description>
<content:encoded><![CDATA[<p>No GNU/Linux, existe uma forma bem fácil e rápida de extrair vídeos de sites como You Tube, blip.tv, vimeo...</p>
<p><strong>1.</strong> No Firefox, espere o vídeo carregar completamente.</p>
<p><strong>2.</strong> Vá até o diretório <strong>/tmp</strong> e procure por um arquivo cujo nome começa com "<em>Flash</em>". Não é preciso dizer q se fechar a página no firefox, o arquivo é deletado, né?</p>
<p><strong>3.</strong> Copie esse arquivo pra uma outra pasta e renomeie com a extensão <strong>.flv</strong>.</p>
<p><strong>4.</strong> Se desejar, pode converter o arquivo para outro formato com o <a href="http://estudiolivre.org/ffmpeg">ffmpeg</a> ou <a href="http://estudiolivre.org/ffmpeg2theora">ffmpeg2theora</a>.</p>
<p>Fácil, né? E tem gente que perde tempo tentando impedir a cópia de conteúdo na internet...</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[combatendo o google]]></title>
<link>http://wille.wordpress.com/2008/01/08/combatendo-o-google/</link>
<pubDate>Tue, 08 Jan 2008 20:32:54 +0000</pubDate>
<dc:creator>wille</dc:creator>
<guid>http://wille.pt-br.wordpress.com/2008/01/08/combatendo-o-google/</guid>
<description><![CDATA[Já está no ar a versão alpha do wikia search, um motor de busca de código aberto. Por enquanto, ]]></description>
<content:encoded><![CDATA[<p>Já está no ar a <a href="http://alpha.search.wikia.com">versão alpha do wikia search</a>, um motor de busca de código aberto. Por enquanto, a qualidade da busca ainda é baixa, mas podemos contribuir criando definições para os termos de busca mais populares. Vale a pena contribuir com essa iniciativa, pois os buscadores são hoje uma parte importante da infra-estrutura da internet. E, se o buscador não nos revela os critérios de classificação das páginas na busca, estaremos reféns da informação que ele julgar ser importante para nós.</p>
<p>Por falar em buscador, resolvi boicotar o google analytics. O analytics é um script que está inserido em inúmeras páginas da internet e informa ao google quais sites acessamos, onde clicamos e muitas outras informações. Para bloquear o google analytics, instale a extensão <a href="https://addons.mozilla.org/pt-BR/firefox/addon/1865">Adblock Plus</a> no firefox e configure o bloqueio aos seguintes endereços:</p>
<p><em>http://www.google-analytics.com/ga.js<br />
https://ssl.google-analytics.com/urchin.js<br />
http://www.google-analytics.com/urchin.js<br />
https://ssl.google-analytics.com/siteopt.js*<br />
https://ssl.google-analytics.com/urchin_beta.js</em></p>
<p>Em menos de 24h de uso, o Adblock já bloqueou o script do google 80 vezes!</p>
]]></content:encoded>
</item>
<item>
<title><![CDATA[no meio do caminho tinha um flash]]></title>
<link>http://wille.wordpress.com/2008/01/06/66/</link>
<pubDate>Sun, 06 Jan 2008 16:38:11 +0000</pubDate>
<dc:creator>wille</dc:creator>
<guid>http://wille.pt-br.wordpress.com/2008/01/06/66/</guid>
<description><![CDATA[Entre outros problemas da operadora de telefonia mais odiada do Brasil, está o fato de seu site pra]]></description>
<content:encoded><![CDATA[<p>Entre outros problemas da operadora de telefonia mais odiada do Brasil, está o fato de seu site praticamente não poder ser visualizado por quem utiliza o <a href="http://getfirefox.com">Firefox</a> no GNU/Linux. A causa desse problema é um banner em flash que ocupa grande parte da página e torna inacessível os menus e links mais importantes. Com isso, ficava impossível utilizar o site pra mandar um <a href="http://www.mundooi.oi.com.br/oiTorpedo.asp" target="_blank">Oi torpedo</a>, já que o banner ficava por cima da área onde se digita o texto do torpedo.</p>
<p>A solução que eu encontrei pra isso foi instalar uma extensão pro firefox chamada <a href="https://addons.mozilla.org/en-US/firefox/addon/433">Flashblock</a>. Essa extensão retira todo o conteúdo em flash das páginas e deixa apenas um botão no lugar. O conteúdo em flash só será exibido se o botão por pressionado. Se preferir, você pode deixar a extensão desabilitada e, quando precisar entrar no site da maldita operadora, ativá-la.</p>
<div style="text-align:center;"><img src="http://wille.wordpress.com/files/2008/01/flashblock.png" alt="tela do site da oi sem flash" /></div>
]]></content:encoded>
</item>
<item>
<title><![CDATA[Instalando GNU/Linux num macbook]]></title>
<link>http://wille.wordpress.com/2007/12/26/instalando-gnulinux-num-macbook/</link>
<pubDate>Wed, 26 Dec 2007 03:01:25 +0000</pubDate>
<dc:creator>wille</dc:creator>
<guid>http://wille.pt-br.wordpress.com/2007/12/26/instalando-gnulinux-num-macbook/</guid>
<description><![CDATA[Um amigo comprou um macbook há poucos meses e me pediu para instalar uma distribuição GNU/Linux. ]]></description>
<content:encoded><![CDATA[<p>Um amigo comprou um macbook há poucos meses e me pediu para instalar uma distribuição GNU/Linux. Pesquisei bastante e descrevo aqui a forma como eu consegui fazer a instalação.</p>
<p>Um dos tutoriais que eu li recomendava a atualização do MacOS e do firmware do computador, então a primeira coisa que fiz foi isso.</p>
<p>Depois veio a parte que me tomou mais tempo. Muitos tutoriais recomendavam que o redimensionamento da partição do MacOs fosse feito com o Bootcamp, um software desenvolvido pela Apple. No entanto, a Apple não mais libera gratuitamente o Bootcamp. Tentei baixar o Bootcamp de outros sites, mas não funcionou.</p>
<p>Assim, acabei descobrindo que o redimensionamento pode ser feito facilmente pela linha de comando com o <a href="http://developer.apple.com/documentation/Darwin/Reference/ManPages/man8/diskutil.8.html">Diskutil</a>. Usei o seguinte comando (como usuário root, no próprio MacOs):</p>
<p><strong> diskutil resizeVolume </strong><strong>disk0s2</strong><strong> 100G</strong></p>
<p>onde, "disk0s2" é a partição que você deseja redimensionar e "100G" é o tamanho desejado para a partição. Após isso, reinicie o computador e confira se o redimensionamento foi bem sucedido. Depois utilizei o comando:</p>
<p><strong>diskutil disableJournal disk0s2</strong></p>
<p>o qual, serve para desabilitar o "journaling" na partição e assim possibilitar que o sistema GNU/Linux que você vai instalar possa escrever na partição em que o MacOs está instalado.</p>
<p>O passo seguinte é instalar o <strong><a href="http://refit.sourceforge.net/">refit</a></strong>,  um software livre que vai ser utilizado para escolher o sistema operacional a ser inicializado quando o macbook for ligado.</p>
<p>Depois disso, coloque o CD/DVD da distribuição GNU/Linux que você quer instalar e reinicie o computador. Segure a tecla "<strong>c</strong>" para que o computador dê boot pelo CD/DVD.</p>
<p>Instale a distribuição no espaço em disco que ficou livre após o redimensionamento da partição do MacOs. Esse processo de instalação é idêntico ao que fazemos em qualquer pc. Após o final da instalação, quando o computador for reiniciado, aparecerá o menu do refit solicitando a escolha do sistema a ser inicializado. No meu caso, eu instalei o Ubuntu Feisty 7.04 (em casa eu uso Slackware 12!)</p>
]]></content:encoded>
</item>

</channel>
</rss>
