Arquivos Mensais: abril 2009

Transferência rápida de arquivos com python

Às vezes é necessário passar um arquivo grande para alguém, mas devido ao tamanho máximo permitido para anexos em emails, é preciso encontrar outras formas de passar esse arquivo. Uma das opções é fazer o upload do arquivo em algum desses sites próprios para isso (rapidshare, mediafire, etc), outra é mandar o arquivo por algum programa de mensagens instantâneas (tal como o MSN).

O primeiro caso é ruim pois é necessário fazer o upload antes e depois enviar o link, e se você não for registrado no site, não terá controle sobre quanto tempo o arquivo ficará disponível. O segundo é ruim pois geralmente não é possível atingir a velocidade máxima transferindo arquivos pelo MSN.

A solução é esse pequeno script, em python, que inicia um servidor HTML na pasta em que ele for chamado, permitindo que a outra pessoa baixe os arquivos do seu PC com maior velocidade.

import SimpleHTTPServer

SimpleHTTPServer.test()

E para descobrir seu IP, use o pequeno shell script abaixo:

echo `wget -q -O - http://whatismyip.org`

Só não se esqueça que o servidor estará funcionando na porta 8000. Por isso, quando for passar o IP a seu amigo, passe da seguinte forma:

http://0.0.0.0:8000

Fonte: shell-fu

Publicidade

Introdução à programação genética

Nós, como programadores, estamos acostumados a ditar regras ao computador. Ainda que os defensores da programação funcional digam que eles não tenham de ensinar ao computador como fazer (como é o caso das linguagens procedurais), eles ainda tem de dizer qual a relação entre o valor que aquela função retorna e seus argumentos. Por exemplo, podemos definir a função soma como sendo soma(x, y) = x + y, mas e se pudéssemos fazer o contrário, criar um banco de dados e mandar o computador analisar esses dados e achar a relação entre eles?

A Programação Genética (PG) surge justamente dessa idéia, misturando também conceitos da biologia, ou mais precisamente, da genética e da evolução. Por mais estranho que possa parecer, criaremos programas que irão se reproduzir e sofrer mutações. Através disso e de um processo de seleção natural, seremos capazes de determinar a relação entre valores que a princípio pareciam não ter nada em comum.

Além disso, podemos usá-la também para desenvolvermos algoritmos que sejam mais rápidos, basta ajustarmos a nossa seleção “natural” para que ela leve em consideração o tempo também.

Saiba mais

Lançamentos oblíquos: alcance máximo

O ângulo que possui alcance máximo em um lançamento oblíquo é 45°. Isso geralmente é dito por professores do Ensino Médio, mas raramente é explicado. Na verdade, duvido que muitos alunos se interessem pelo porquê; imagino uns cinco alunos por turma testando outros valores e percebendo que de fato 45° é o que dará o maior alcance e apenas um realmente curioso sobre como e porque 45° é que dará o maior alcance.

Bom, eu sou um desses alunos que se perguntou “por quê?” quando soube disso e um desses dias resolvi provar a mim mesmo matematicamente por que com 45° o corpo atingiria o alcance máximo.

Saiba mais

Da possibilidade de usar uma wiki, conclusões

Eu gostei bastante de usar uma wiki ao invés de um blog, mas o google não. Uma semana após eu ter adicionado manualmente o endereço no Google, ainda não há qualquer referência a ele nas pesquisas que fiz, e todo mundo sabe que um site que não esteja no google não existe. Some a isso que este blog bateu um recorde de visistas em março, com um pouco mais de 1490 visitas no mês, e você entenderá porque fico receoso de mudar de endereço.

Porém, tavez o blog passe por algumas mudanças: estou pensando em usar mais páginas que artigos (posts), já que de maneira geral meus artigos são atemporais. Digo, a maioria deles não depende de versões de programas, e por isso alguém lê-los hoje ou daqui 5 anos, os artigos ainda serão úteis.

Além disso, estou escolhendo um novo tema e começarão a aparecer artigos menos voltados a programação e mais a matemática/física, começando pelo meu artigo anterior, sobre calcular pi usando limite.

Calculando pi usando limites

Sempre tive curiosidade de saber como se calcula pi. De tempos em tempos se ouve “grupo de cientistas de Townsville calculam pi até 123891318475618457164 digitos”. Legal, mas como?

Bom, achei uma forma. Embora ela não seja muito eficiente para ser usadas com computadores, essa é a idéia matemática por trás do cálculo. Os problemas são que 1) as linguagens de programação apresentam uma função cosseno cujo argumento é em radianos, ou seja, precisamos já do valor de pi para que elas funcionem e que 2) existem problemas de arredondamento com floats.

Saiba mais