Páginas

segunda-feira, 28 de junho de 2010

Utilização do disco usando du e awk

Hoje escrevi algumas linhas no shell para me ajudar a identificar onde estavam as coisas mais pesadas na hierarquia...

Fica aqui como possível referência futura:

  • Listar/calcular tamanho para 2 níveis de diretórios 
du -k -d2 . | awk '{printf "%-40s %4.1f MB\n", $2, $1/1024}' | sort

  • Ver os 15 maiores diretórios
du -k * | sort -nr | head -n 15

  • Ver apenas diretórios com mais de 1 MB
du -k -d3 main | awk '{ if ($1 >= 1024) printf "%-40s %4.1f MB\n", $2, $1/1024}' | sort 

sábado, 26 de junho de 2010

Novo layout

Sei que o blog anda abandonado... os tempos aqui em Lisboa não são convidativos a bloggar muito :D
Infelizmente meu tempo aqui está chegando ao fim. Já não tenho mais aulas.

Hoje resolvi fazer uma limpeza no visual do blog. Espero ter mais alguma novidade em breve.
O antes e o depois:



Optei por usar um modelo com menos cores, alarguei o espaço para as postagens, rearrumei os widgets, renomeei títulos que sugeriam o nome antigo do blog, "LifeAtMyMind". E então, estou no caminho certo?
Gostei de ver "novidades" (que possivelmente já são bem antigas) no Blogger, como possibilidade de criar páginas fixas e mostrar só o início da postagem com um link "ler mais". Também usei o novo editor de modelo e gostei, apesar de visualmente ele ser totalmente diferente da interface padrão do Blogger.

segunda-feira, 19 de abril de 2010

Como encontrar arquivos usando o GNU find e ignorando alguns diretórios

Esta dica foi tirada de um comentário anônimo em http://www.linux.com/archive/feed/49304.
Fica aqui para referência futura...

Algumas vezes queremos usar o GNU find para procurar por arquivos recursivamente. O problema é quando queremos excluir alguns diretórios da busca. O jeito é usar mais de uma condição. Por exemplo:

find / -path '/proc' -prune -o -path '/dev' -prune -o -name foo.txt

Este comando procura por arquivos chamados "foo.txt" na raiz de sistema, ignorando tudo em /proc e /dev. O '-o' é um "ou" e o '-prune' faz com que o find ignore o caminho encontrado.


Original em inglês:
Sometimes you may want to exclude parts of the directory tree. It took me a while to figure out how to do this because it isn't very intuitive.
If you wanted to search for foo.txt but don't want to descend into /proc or /dev you can do this
find / -path '/proc' -prune -o -path '/dev' -prune -o -name foo.txt

The '-o' means 'or', so there in this case there are three conditions, separated by 'or', which will cause find to take action. The first two is when the path is '/proc' or '/dev' the action find will take is to prune them from the search path. The third condition is when the name is foo.txt. In this case find will print, since no other action is specified.

quinta-feira, 21 de janeiro de 2010

Sons, muitos sons! Com Python :D

Pois é, tive um dia de domingo agradável, programando!
A turma do Dojo Rio está tocando o projeto opensource Dojotools para reunir ferramentas para facilitar nossas vidas durante as sessões de coding dojo.
Para dar minha pequena contribuição para minha diversão, e prejuízo de meus ouvidos, passei a tarde arrumando o sound_alarm. Este script surgiu de diversas brincadeiras que já havia feito para reproduzir som com Python no Windows e no Ubuntu.
Juntei coisas que eu já tinha, refatorei, produzi algumas "melodias" para perturbar quem se aproxima de mim, e taquei no github.

Ontem testei o script no Mac e não funciona. Pelo menos aqui no Macbook Pro não tem /dev/audio, e não descobri como tocar sons em diferentes frequências como consigo no Linux e Windows.

Eis que se alguém tiver uma solução pro Mac OSX ela é apreciada :D

quinta-feira, 10 de dezembro de 2009

Novas línguas do semestre

Neste segundo semestre de 2009 inicei meu contato com diversas novas línguas e linguagens.
Para começar, estou agora morando em Portugal, o que me deixa em contato com um português um bocado diferente do que estava acostumado no Brasil.

Depois, por ter contato com amigos de diversas partes do globo, o inglês é certamente a língua que mais tenho utilizado no dia-a-dia. Para completar, tem o Polonês e o Turco, que podem parecer exóticos mas tem feito parte do meu cotidiano no momento.

Mas, o que tenho feito de novo aqui em Lisboa? Só vida boa? Não, não.
Os trabalhos da faculdade me fizeram desviar da jornada estritamente pythônica para olhar outras linguagens.

No Brasil meus amigos continuam arrasando com as super comunidades, mega encontros, e muita agitação todos os dias da semana. Aqui, encarei um projeto de Inteligência Artificial usando LISP.
O objetivo era resolver automaticamente instâncias do jogo Hidato.

Inicialmente o contato com LISP não foi muito amigável, porém com o tempo fui pegando o gosto e vi muito espaço para aprendizado com esta linguagem. Implementei meu projeto para o ambiente CLISP, e fiquei muito satisfeito pela boa velocidade com que resolvia grandes instâncias do jogo.

Os pontos que me deixaram curiosos no LISP e que ainda não tive a oportunidade de brincar foi o processamento de texto, acesso a dados via Internet, e outros detalhes que não me vêm à cabeça neste momento...

O lado negro foi ter que cursar Programação com Objectos usando Java, linguagem extremamente burocrática, e que nenhum conhecimento interessante me traz. É impressionante a distância entre uma idéia pra solucionar um problema e uma solução implementada em Java. Talvez os mais experientes hackers da terra do cafezinho vão discordar desse meu desabafo sem código, mas aqui o objetivo é só relatar meu descontentamento mesmo :P

Por fim, Matlab. É um ambiente proprietário, de sintaxe muitas vezes esquisita, e que estou utilizando nas aulas de Processamento de Imagens. Não vi ainda vantagens em relação a usar Python + Numpy + Matplotlib... ainda assim, é uma linguagem interpretada e lá temos console e um manual muito bem elaborado.

Acho que as linguagens compiladas tem um ponto a menos nas minhas avaliações por conta da velocidade do "escrever código". Legibilidade e fluxo de desenvolvimento acabam valendo mais que tempo de execução.