quinta-feira, 24 de outubro de 2013

Primeira Expedição de Dados no Brasil faz visualizações e análises com base de dados do Walmart


Participei da 1ª expedição de dados no Brasil. Um projeto da Fundação Open Knowledge, que acaba de chegar ao país. A experiência foi incrível e só pude dizer que aprendi muito. Convido desde já qualquer um que tenha interesse por dados abertos a participar das próximas edições.

Como o texto do blog da Escola de Dados resume bem tudo que aconteceu, deixo o link aqui:

 Primeira Expedição de Dados no Brasil faz visualizações e análises com base de dados do Walmart

Eu tava ali no fundinho da foto... rss.

quinta-feira, 17 de outubro de 2013

Como executar um script dentro de uma sessão do GNU Screen

Ando brincando de minerar Bitcoins (estou fascinado com a tecnologia e preciso me lembrar de escrever algo mais informativo sobre o assunto aqui) e me deparei com um problema.

Ao iniciar o programa de mineração (estou usando o bfgminer) na linha de comando, ele exibe diversas informações e estatísticas relativas ao hardware e ao andamento da sua "mineração". Acontece que eu gostaria de iniciar o programa automaticamente durante o boot. Até aí tudo bem, pois isso é facilmente resolvido criando-se um script e agendando sua execução através do cron toda vez que a máquina reiniciar, mas como fazer depois para acessar os dados do programa depois, inclusive via SSH?

Pensando nisso, achei que uma seção do GNU Screen poderia resolver o problema; mas como executar o script dentro de uma seção do Screen automaticamente? A solução para isso eu achei em algum lugar no stackoverfow.com:

Acrescentei as seguintes linhas ao meu script:

screen -dmS nomeDaSessão
screen -S nomeDaSessão -p 0 -X stuff "comando$(printf \\r)"


Explicando:
  • -dmS inicia uma sessão "detached" do screen com o nome escolhido por você.
  • -X stuff executa o comando ou script dentro da sessão especificada pelo atributo -S.
  • -p 0 especifica o número do terminal dentro da seção do Screen. Como ela só tem um terminal rodando dentro da seção, este começa no 0.
  • $(printf \\r) insere um caractere do tipo "Enter" logo após o comando ou script passado como atributo para, de fato, entrar com o comando.

Bônus


Screen -S nomeDaSessão -p 1 comando2

executa o comando2 em um novo terminal (o de nº 1) dentro da mesma seção do Screen.

Homepage do GNU Screen: https://www.gnu.org/software/screen/

sábado, 5 de outubro de 2013

Compilar o CudaMiner para minerar Litecoins no GNU/Linux

Símbolo do Litecoin
Ultimamente tenho estado encantado com o conceito e a tecnologia por trás do Bitcoin e das moedas criptográficas. Espero poder escrever mais sobre isso neste blog. Se você não sabe o que é Bitcoin e muito menos Litecoin, clique nos respectivos links. Sugiro começar pelo Bitcoin, já que ela foi a primeira moeda virtual que inspirou todas as outras que vieram em seguida, inclusive o Litecoin.

Estava me informando mais sobre como minerar liteconis e li em algum lugar que  o melhor minerador de litecoins para GPUs Nvidia (eu tenho uma GTS 250, já um pouco velhinha...) é hoje o CudaMiner.

Resolvi baixar o programa no GitHub e instalá-lo, para um teste breve. No entanto, o programa não tinha nenhuma documentação de como compilá-lo. Como é horrível tentar compilar um programa que não te informa o mínimo sobre as dependências necessárias e como atingir este objetivo, resolvi documentar aqui o processo para outras pessoas (e eu mesmo) que por ventura venham a tentar fazer o mesmo.

Baixe o programa do GitHub:

$ git clone https://github.com/cbuchner1/CudaMiner.git

O grande problema, neste caso, foi encontrar as dependência que no caso eram os pacotes de desenvolvimento da tecnologia CUDA. Na atual versão do Ubuntu (13.04), eles são instaláveis através de:

$ sudo apt-get install nvidia-cuda-dev nvidia-cuda-toolkit

Feito isso tudo ficará mais fácil :-) Basta tornar o script configure executável e rodá-lo.

$ chmod +x configure
$ ./configure

Compile com make. Isso irá gerar um executável cudaminer na pasta, que pode ou não ser colocado no diretório padrão através de:

# make install

Nos meus testes, o bfgminer estava alcançando uma taxa de 33-36 kH/s e o cudaminer elevou esse patamar para 44-47 kH/s.

Se mais alguém tentar fizer o mesmo, por favor, deixe seus números nos comentários abaixo.

Comente clicando!