Caderno de anotações

Aqui farei algumas anotações principalmente dicas que facilitam a vida durante minha pesquisa aqui no grupo de Sistemas Complexos do IF-UFF.

Pylab no Mac OS X

Só uma pequena merda que ocorre após instalar as várias versões do Python e sua bibliotecas científicas, parei mais com o vício de Python por conta que a versão 3 inutilizou muitos códigos meus. Mas recentemente estou precisando fazer uns testes de funções e como sempre o Python é uma boa pedida.

A merda é que a pylab não funciona com o backend selecionado por padrão, isso a gente descobre quando abrimos o ipython com a flag –pylab e tentamos plotar algum gráfico, apenas o objeto é criado e nada é exibido. É fácil mudar isso, basta alterar o arquivo:

vim /opt/local/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/mpl-data/matplotlibrc

Provavelmente o endereço dele é dado de bandeja quando usamos a função show() e o python retorna o erro de backend. Usei o vim para editar o arquivo, mas use o que preferir. Meu ipython trabalha com a versão 2.7 logo, alguns diretórios tem esse número no nome. Lá no arquivo ache a linha backend : Agg e mude para um que exiba seus gráficos, por exemplo backend : MacOSX.

Expressão regular no comando ls

Já algum tempo sem postar, mas não pude de fazer essa nota pois descobri isso sem auxílio do google. Havia simulado um novo conjunto de dados com os mesmos parâmetros, trocando apenas as sementes do gerador de números aleatórios, então adicionei a letra b aos nomes dos novos arquivos, mas quando fui utilizar novamente os dados antigos, e agora? Como posso lista-los já que o nome difere apenas pela letra b:

ls nomecomum*b.dat # para aqueles arquivos que terminam em b.dat
ls nomecomum*[ˆb].dat # para os arquivos que não terminam em b.dat
Por isso gosto do shell, você vai desvendando as possibilidades.

O R conversando com o Gnuplot

Uma ótima ferramenta de análise de dados, o R, pode mandar mensagens pro melhor programa para a visualização destes. Basta usar:

library('TeachingDemos')
gp.open('/usr/bin/gnuplot') # ou onde é que seu binário para o gnuplot está
gp.plot(x,y,'p ou l') # use p para pontos e l para linhas
gp.splot(x,y,z) # o legal que eles, x, y e z, são vetores do R
gp.send('o comando de gnuplot que lhe der na telha')

não aprendi a controlar o tamanho dos pontos e demais frescuras

Mais sobre geradores de números aleatórios

Um pouco sobre performance de geradores: http://blogdocalouro.blogspot.com/2009/12/numeros-aleatorios-performance.html

Como usar o gerador mais rápido, o problema é que é intel, então nem todos podem ter: http://blogdocalouro.blogspot.com/2009/12/gerando-numeros-aleatorios-com.html

Valeu Daniel pela dica.

Não é a programação

Só um desabafo para que nunca mais esqueça disso. As vezes se o programa para de computar de repente: ele compila perfeitamente, ele executa sem erro de segmentation fault, porém era para ele demorar um dia e ele acabou em menos de um segundo. É o clássico caso em que o bug está entre a tela e a cadeira. Você (eu no caso) colocou um parâmetro de entrada errado.

2011/03/14 21:13 · 0 Comments · 0 Linkbacks

Renomeando em massa no Shell

Errei ao dar o nome nos arquivos em apenas um parâmetro então não quero renomear um por um dos arquivos, muito menos rodar o programa novamente com o nome certo, então apenas fazemos isso:

 for i in $(ls N=10000_K=20_e=0.1_J=-6_*); do mv $i ${i/N=10000/N=100000}; done 

Nesta linha $() deposita a saída do comando ls no vetor que alimentará o laço for, então $i retorna o nome dessa variável e ${} apenas substitui a substring N=10000 contida em i pela desejada N=100000, simples assim. Acho que existe uma forma mais fácil ainda, se descobrir eu publico.

2011/02/16 12:33 · 0 Comments · 0 Linkbacks

Formatando números no R

Quando você manda seu programa gerar números num formato específico usando a printf do ANSI C, existe a possibilidade de escrever esse mesmo formato usando o R, isso é muito útil quando precisamos ler arquivos nos quais geramos seus nomes com a função sprintf.

 formatC(x, format="f") 

Podemos usar todos os formatos do C, não somente o f, se por acaso o número foi escrito com %f para floats, mas podemos usar d para int's, g, lf, u e assim por diante…

Para o formato específico g podemos usar:

 format(x, format=g, digits=-1, width=-1) 
os valores negativos para as opções digits e width fazem a formatação usar o padrão de seis algarismos significativos padrão do C e faz a justificação do número ser à esquerda.

2011/02/11 18:29 · 0 Comments · 0 Linkbacks

Instalando revtex4 no Debian

Esse é um email que mandei para um professor algum tempo atrás e por sorte ele não foi perdido quando fui questionado novamente a esse respeito, então publico aqui pra ter mais uma cópia:

Copie a pasta que você baixou revtex4 para /usr/share/texmf/tex/latex: no diretório que está a pasta revtex4 é só dar o comando

sudo cp -r revtex4 /usr/share/texmf/tex/latex
e o diretório é copiado graças à flag -r.

Agora crie um diretório revtex4 em /usr/share/texmf/bibtex/bst é só fazer

sudo mkdir /usr/share/texmf/bibtex/bst/revtex4
então mova os arquivos *.bst para essa pasta
sudo
mv /usr/share/texmf/tex/latex/revtex/*.bst /usr/share/bibtex/bst/revtex
Pronto seu estilo revtex4 está no diretório padrão do tex inclusive o estilo do bibtex. Agora execute
sudo texhash
para atualizar os dados das classes instaladas.

Claro que estou supondo que o usuário é um sudoers senão tudo deverá ser feito como su sem o comando sudo antes.

2011/02/01 17:28 · 0 Comments · 0 Linkbacks

Espelhando diretórios com o rsync

Primeiramente esse tutorial é ótimo: Transferindo arquivos com o rsync.

Mas como preciso apenas ficar levando arquivos da universidade para casa preciso apenas desse comando:

rsync -Cravzp orahcio@minhamaquinanauff:./algumapastapessoal/essaaqui ~/algumapastapessoal
e a pasta essaaqui será espelhada para sua algumapastapessoal. Melhor do que arrastar e soltar.

2011/01/27 13:28 · 0 Comments · 0 Linkbacks

Passando parâmetro na linha de comando em script bash ou shell

A variável mágica é o array $@ que armazena os parâmetros da linha de comando:

#!/bin/sh
 
for i in $@
do
   echo $i
done
e você imprime no terminal os parâmtros que foram passados, para usar um parâmetro em específico use $0, que armazena o nome do script, $1 o primeiro parâmetro, $2 o segundo, e assim por diante.

P.S.1: Para escrever $ no wiki use o <nowiki> $ </nowiki> ou %% $ %%. Metalinguagem dá trabalho.

P.S.2: a partir do décimo parâmetro temos que usar ${10}, do contrário o shell irá usar o parâmetro 1 e escreverá um 0 em seguida.

2011/01/26 16:37 · 0 Comments · 0 Linkbacks

Linkbacks

Use the following URL for manually sending trackbacks: http://complex.if.uff.br/lib/plugins/linkback/exe/trackback.php/orahcio:home
orahcio/home.txt · Última modificação: 2011/07/24 22:22 por orahcio
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0