Fazendo um benchmark do HD no GNU/Linux (ou ext3 VS ext4)
9 de Julho de 2009, 0:00 - sem comentários aindaSempre li que os SSDs são infinitamente mais velozes que os atuais HDs. Usar um computador com um drive desses dá um belo ganho de performance. Por curiosidade, fui testar a velocidade do meu HD.
Usando:
$ udevadm info –query=all –path /sys/block/sda
achei o serial do meu HD. Com uma rápida busca, descobri que ele é o Seagate Momentus 7200.3, com 320gb, 7200rpm e 16mb de cache. Nada mal. Ok, vamos ao benchmark.
Para gerá-lo, usei o bonnie++ v1.03c. No Ubuntu, basta:
$ sudo aptitude install bonnie
$ bonnie++
Por curiosidade, rodei ele em uma partição ext3 e em uma ext4. Sempre com um arquivo de 6 GB.
——Sequential Output—— | –Sequential Input- | |||||||||
---|---|---|---|---|---|---|---|---|---|---|
-Per Chr- | –Block– | -Rewrite- | -Per Chr- | –Block– | ||||||
FS | K/sec | %CP | K/sec | %CP | K/sec | %CP | K/sec | %CP | K/sec | %CP |
ext3 | 40421 | 89 | 48745 | 25 | 28304 | 16 | 47321 | 90 | 66517 | 22 |
ext4 | 46671 | 96 | 72506 | 24 | 32927 | 15 | 49627 | 91 | 78888 | 23 |
!!!
Impressionante. Não tinha procurado nenhum benchmark ext3 VS ext4. Sabia que este era mais rápido, mas não tanto. Agora entendo o porquê das versões novas das distros (ao menos Ubuntu e Fedora) terem acelerado tanto o boot. Chegaram a incríveis 20 segundos.
Mesmo assim, reza a lenda que os SSDs chegam a 150 MB/s de leitura, o que é mais que o dobro do ext4. Talvez valha a pena comprar um SSD de 16gb para deixar só o SO e aplicativos.
Daqui a alguns anos, quando fizer um upgrade no notebook, certamente será esse.
Transferindo o áudio do microfone via SSH
16 de Junho de 2009, 0:00 - sem comentários aindaEstamos a 2 dias do III ENSOL. Na palestra do Richard Stallman haverá tradução e transmissão simultânea. Com a tradução eu não preciso me preocupar, pois contratamos uma empresa para isto. Já a transmissão é um pouco mais complicada.
O LAViD está nos apoiando nisto. Vamos ter uma câmera HD para gravar algumas palestras e transmitir a do RMS para as outras 2 salas. Só que, pensando com o pessoal, decidimos que o áudio a ser transmitido não vai ser o do Stallman, mas o do tradutor. Aí vem o problema: como transmitir o áudio da cabine de trasmissão para as outras duas salas? Lembrava que dava pra fazer isso com o SSH, então fui testar.
Fazer localmente é fácil. Basta executar:
dd if=/dev/dsp of=/dev/dsp
O que isto faz? Simples. Lembre-se que nos sistemas POSIX tudo é um arquivo. E /dev/dsp é o arquivo que representa a placa de som. Numa linguagem natural, o comando acima quer dizer “Copie o que tem em /dev/dsp para /dev/dsp.”
Como assim? Se eu copiar um arquivo para ele mesmo, o resultado não deveria ser… o mesmo arquivo? Depende. Neste caso, por exemplo, ler da placa de som (/dev/dsp) significa “capturar o audio que vem do microfone.” E escrever significa “tocar.” Juntando, você está “capturando o audio que vem do microfone e tocando.”
Fácil. Agora, como fazer isso em dois computadores diferentes? Eu sei que vou ter que ler do /dev/dsp de um computador e escrever no /dev/dsp do outro, mas como?
Vamos por partes. Primeiro, para ler o /dev/dsp, usamos:
dd if=/dev/dsp
O dd vai ler o arquivo e escrever na saída padrão. Neste caso, a tela. Então, precisamos redirecionar isso para o outro computador. É aí que entra o SSH. Se fizermos:
ssh
Ele vai abrir um shell no destino. Não é o que queremos. Temos a opção de usar:
ssh dd of=/dev/dsp
Ao invés de abrir um shell, o SSH vai executar o comando que passamos (dd of=/dev/dsp). Neste caso, o dd escreve tudo que receber da entrada padrão (teclado) para o arquivo /dev/dsp. Se você escrever algumas coisas aleatórias, vai ouvir uns barulhos na caixa de som. Ele está interpretando o que você está escrevendo como som. Ótimo! Estamos chegando perto. Agora só precisamos ligar a saída do primeiro comando, que lê do /dev/dsp de uma máquina, a entrada do ssh. Como? Usando pipes, é claro!
dd if=/dev/dsp | ssh dd of=/dev/dsp
O que essa barrinha discreta aí faz é conectar a saída padrão do comando a esquerda com a entrada padrão do da direita. Pronto! Executando isso, já conectamos o microfone de um PC com a caixa de som de outro. Para melhorar um pouco, podemos pedir pro SSH comprimir o tráfego, adicionando a opção -C.
dd if=/dev/dsp | ssh -C dd of=/dev/dsp
Mesmo assim, ainda não fica muito bom. Aqui, apesar dele usar só 5 KB/s de banda e as máquinas estarem na mesma rede wifi, fica uma latência muito grande. Talvez seja culpa do SSH ou do dd, e não da velocidade da conexão. Não sei.
Mas pode dizer. Muito foda, não é?
PDI ao resgate!
21 de Maio de 2009, 0:00 - sem comentários aindaHoje tive um problema com uma imagem. Estou organizando junto com alguns amigos o III ENSOL, e a UEPB nos apoiou pagando 75 inscrições para seus alunos. Então, precisei encontrar o logo deles para colocar no site do evento. A melhor que encontrei foi esta:
Como dá pra ver, ela não tem o fundo branco. O do site do ENSOL é laranja. E agora?
Tentei usar o GIMP para resolver, usando a Magic Wand, mas ele não consegue pegar tudo, pois parte do fundo não é 100% branco. Colocando sobre um fundo preto, ficou assim:
Como resolver? Sei que, se eu diminuísse a precisão da Magic Wand, fazendo ela pegar não só 100% branco, mas entre 90% e 100%, por exemplo, melhoraria. Quiçá, resolvesse. Mas, como? Não encontrei essa configuração. Sei que poderia criar um plugin em Python pro GIMP que resolveria, mas como nunca fiz isso, iria demorar.
Então eu vi a luz.
Relembrando as aulas de PDI - Processamento Digital de Imagens -, que paguei semestre passado. Uma das cadeiras mais interessantes até agora, uma pena que, por uma razão qualquer, não aproveitei tanto. Mas aprendi a programar usando o Octave.
O GNU Octave é uma linguagem para fazer cálculos matemáticos, muito parecida com o MatLab. Nela a gente consegue trabalhar com matrizes sem problema algum. Por exemplo, se você tiver uma matriz 3×3 e quer somar com uma outra de mesmo tamanho o que faz? Um for por cada elemento da matriz somando um com o outro? Não! Simplesmente matrizA + matrizB. E o que são imagens que não grandes matrizes de pixels?
A idéia é: passar por cada pixel da imagem e, se ele for mais claro que um determinado valor, transformo ele em magenta. Daí nasceu o Magentinizator!
Fazer isto em Octave é trivial. O código comentado é:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# Magentinizator v 0.42 - 2009 # ---------------------------------------------------------------------------- # "THE BEER-WARE LICENSE" (Revisão 42): # <vitor@vitorbaptista.com> escreveu este arquivo. Contanto que mantenha este # texto, você pode fazer o que quiser com esse software. Se nos conhecermos # algum dia, e você achar que esse programa vale, você pode me pagar uma cerveja # em troca. # Vitor Baptista # ---------------------------------------------------------------------------- path = "uepb.png"; # Caminho para a imagem threshold = 0xB4; # Pixels com cor maior que 0xB4B4B4 # se tornarão 0xFF00FF im = imread(path); # Lê a imagem. im agora tem uma matriz # Largura x Altura x 3 (RGB) tam = size(im); # Pega o tamanho da imagem for i = 1:tam(1) # De 1 até a largura for j = 1:tam(2) # De 1 até a altura if (im(i, j, 1) > threshold # Se o R for maior que o threshold, e && im(i,j,2) > threshold # se o G for maior, e && im(i,j,3) > threshold) # se o B for maior. im(i,j,1) = 255; # Torna aquele pixel im(i,j,2) = 0; # em im(i,j,3) = 255; # magenta! end end end imwrite([path, ".magentinized"], # Concatena strings im(:,:,1), # R im(:,:,2), # G im(:,:,3)); # B |
O resultado ficou ótimo. Não perfeito, mas bem melhor que usando o GIMP e mais que o suficiente pro site do ENSOL.
Se precisar tirar mais o branco, só diminuir o threshold. Lembrando que vai chegar um momento que vai tornar outras partes da imagem também magenta.
Você pode baixar o Magentinizator aqui.
Chamada para a megablogagem
17 de Maio de 2009, 0:00 - sem comentários aindaNa última semana tivemos grandes e poderosas vitórias: O ministro da Justiça manifestou publicamente seu apoio ao veto dos artigos “draconianos” do PL de Cibercrimes, o PL 84/99, ou o PL do Azeredo, ou ainda popularmente conhecido como o AI5 digital. No último dia 14 tivemos uma grande vitória com o Ato Público na Assembléia Legislativa de São Paulo contra o AI5 digital, onde novos e poderosos aliados se juntaram ao combate ao vigilantismo. Estranhamente a mídia tradicional não deu muita importância ao evento, não lembro de ter visto nenhuma noticia na TV sobre o Ato, a excessão ficou com a Folha, aquela da “Ditabranda” que mandou para o evento uma jornalista com as piores das intenções, e segundo os presentes com as perguntas mais descabidas possíveis.
Há algum tempo haviamos percebido um argumento típico dos vigilantistas na novela da Globo da Globo caminho das Indias, onde um personagem advogado fala para outra personagem algo como: Olha, não sei como andam estas leis, mas é dificil isto, nem a Policia Federal consegue rastrear sobre casos de pedofilia. Conseguimos um contato com a assessora da Glória Perez, que nos “cozinhou” e acabamos não conversando com a autora para expor nosso ponto de vista, na verdade acredito que a Glória pouco poderia fazer a respeito, já que ela é funcionária da Globo, e provavelmente deve ter de seguir as determinações da Empresa.
Nesta semana, justamente a semana de grande vitórias, a mídia atacou a Internet de forma extremamente agressiva, estão promovendo uma verdadeira engenharia social, tentando a todo custo convencer as pessoas de que a Internet é um antro de criminosos e pedófilos. O SBT fez uma matéria a respeito, a Globo esta atacando em todas as esferas, no programa Ana Maria Braga onde tenta envolver a Internet no caso do “Mussunzinho” apenas pelo fato de alguem ter tido acesso ao email dele para responder à uma entrevista. O jornal da Globo, RJ TV, Fantástico e ontem o Globo Reporter que falou de pedofilia, não citou nenhum caso de pedofilia na Internet, o que sabemos que não existe, mas falou que a maioria dos casos de pedofilia se dá na Internet. Para fechar, a Veja desta semana esta detonando com a Internet da forma mais escrota e descabida como parece peculiar desta publicação.
O que estamos assistindo é na verdade um ato de desespero, os apoiadores do vigilantismo, como a FEBRABAN, APCN, Operadoras de telefonia, a Industria Cultural, só para citar alguns, devem estar patrocinando, ops, quero dizer pressionando os nove empresários que comandam a mídia no Brasil, ou seriam estes empresários também interessados? Será que tem algum Senador que tem ligação com veículos de comunicação? A mídia deixou de ser sutil, de parecer imparcial, e num ato de desespero esta tomando uma posição clara, a favor do vigilantismo, com o objetivo de manipular a opinião pública para que o nosso ativismo seja desmoralizado e minimizado e AI5 digital seja aprovado.
Sendo assim, convocamos todos a uma blogagem coletiva hoje, dia 17 de maio, dia Internacional da Internet para uma blogagem coletiva com o objetivo de critica a atitude de nossa imprensa mentirosa, de investigar e de desmascarar a midia que mente e vai contra a democracia. Não vamos deixar o vigilantismo ganhar, Mega Não, Mega Blogagem já !!!
Usem as tags “ciberativismo”, “meganao” e “megablogagem” para que possamos identificar os posts participantes, e mandem um ping para cá. Publiquem, twittem seus posts, divulguem no Orkut, Facebook, neste dia 17 temos de fazer as mídias sociais gritarem um Mega Não ao vigilantismo.
http://meganao.wordpress.com/2009/05/17/chamada-para-a-megablogagem/