quarta-feira, 25 de fevereiro de 2009

Cliente Torrent em Background


Quem já trocou algumas palavras comigo sabe como eu considero difícil baixar coisas da internet para assistir. Para mim é difícil porque eu não tenho disponibilidade de deixar o computador baixando à noite ou coisa assim. Mas chato mesmo é nos finais de semana, quando quero baixar pelo note e meus irmãos no desktop reclamam que roubo a banda inteira.

Então comecei a buscar alternativas. Maneiras de deixar meus torrents baixando enquanto eu não estava por perto e sem depender de eles lembrarem de "dar o play" no programa cliente.

Então fui à luta - melhor dizendo, à pesquisa. Primeiro encontrei o torrentflux, e ele é bem interessante. Mas ele não serve ao meu objetivo. O torrentflux é um centralizador de torrents, pelo que pude entender. Ele serve para que numa LAN apenas uma máquina baixe os torrents, e todas as pessoas possam pesquisar, adicionar e baixar seus arquivos acessando uma interface web instalada nesta máquina. O meu maior problema com o torrentflux foi o play. Ele não me livrou da necessidade de ter que iniciar manualmente o download dos arquivos sempre que o computador é ligado.

Por uma insistência quase troll do nilson, pesquisei sobre algum cliente python, e acabei achando uma biblioteca, o que é meio caminho andado. A biblioteca é o pytorrent, que é bem simples de se usar. Tão simples que deixa o desenvolvedor com pouquíssimo controle do que acontece. Tão simples que a documentação é mínima. Não encontrei nem uma função para limitar a taxa de downloads.

Pesquisando mais sobre o pytorrent, descobri que ele é ligado ao projeto do transmission. E olhando os pacotes disponíveis do transmission para o Ubuntu, vi que ele tem a interface gráfica GTK padrão, mas também tem um funcionamento via linha de comando (transmission-cli) e em formato de daemon (transmission-daemon como servidor e transmission-remote como cliente), além de uma interface web que controla aspectos básicos, como adicionar, pausar e "dar play" nos torrents.

O que eu precisei fazer foi apenas um script de inicialização para chamar o transmission-daemon no boot e um arquivo de configuração que contivesse o diretório de download e os limites de download e upload que eu queria.

O arquivo de configuração é em formato json, bem fácil de entender. O ponto (·) que coloquei no final de cada linha menos a última é para trocar por espaços.

{
"blocklist-enabled": 0,·
"download-dir": "\/home\/compartilhado\/downloads",·
"download-limit": 5,·
"download-limit-enabled": 1,·
"encryption": 1,·
"max-peers-global": 200,·
"peer-port": 32458,·
"pex-enabled": 1,·
"port-forwarding-enabled": 0,·
"rpc-access-control-list": "+127.0.0.1",·
"rpc-authentication-required": 0,·
"rpc-password": "",·
"rpc-port": 9091,·
"rpc-username": "",·
"upload-limit": 1,·
"upload-limit-enabled": 1
}


Este arquivo deve ser salvo num diretório onde o transmission-daemon vai salvar as outras configurações dele, como que torrents estão na fila. Se você vai fazer um script para ser executado no boot, o usuário root vai chamá-lo, e por padrão este diretório será o /root/.config/transmission-daemon.

Espero que estas informações possam ajudar a quem quer fazer o mesmo, eu por enquanto não vou postar o conteúdo do script de inicalização (odeio esta palavra, mas não conheço uma melhor) porque o post já está grande demais.

terça-feira, 10 de fevereiro de 2009

Idiomas Internacionais

Algumas vezes eu me revolto com como certas coisas são aceitas como verdades imutáveis. A coisa que mais me irrita é quando dizem que o esperanto morreu, enquanto a internet trouxe um grande crescimento ao idioma.

Mas não me irrito porque sou esperantista, me irrito porque sei que não é assim e que esta é uma das coisas que são repetidas até que aqueles que não conhecem passam a repetir como se fosse verdade, numa de "se todo mundo diz isso, é porque é assim".

Hoje eu conversei um pouco com o cmilfont e com o daniel_ruoso no twitter sobre o inglês ser uma língua internacional.

Ninguém pode negar que realmente ele o é. Mas isto é algo justo? Ou, para ser mais realista, é algo que se deva aceitar sem ao menos contestar? A questão da língua internacional não nasceu ontem, o esperanto foi divulgado ao mundo em 1887 há mais de 100 anos, e ele não foi a primeira tentativa.

Porque não deu certo? Aliás, algum dia a sociedade internacional aceitará um idioma internacional? Nem a União Européia tem um idioma só de trabalho, tudo tem que ser traduzido a mais de vinte idiomas. As pessoas querem seu interesse, é difícil para a maioria aceitar que algo pode ser vantajoso para todos.

Quando os estados europeus não entram em acordo com uma língua nacional apenas ser oficial, cada um defende seu lado, mesmo que isso gere mais burocracia e atrapalhe as tomadas de decisão. Este raciocínio com a UE vale para a ONU, mas a ONU abrange um número maior de países e interesses conflitantes.

É inclusive comum hoje se dizer que o chinês vai substituir o inglês, então aprendamos todos mandarim. Tá, o mundo sempre foi assim, porque mudar? Sempre houve um país que dominava economicamente e impunha sua língua aos outros, porque fazer diferente? Afinal, isto de direitos iguais a todos vale alguma coisa?

Eu creio que valha sim, e que está nas mãos de cada um optar por mudar um pouco a postura submissa de aceitar a dominação "porque sempre foi assim".

Vou continuar este papo em alguns dias, para evitar um texto muito grande e para acompanhar algum retorno nos comentários ou no twitter.