sexta-feira, 31 de julho de 2009

Como copiar um texto para a área de transferência do X pela linha de comando

O xclip é um utilitário de linha de comando que proporciona uma interface para a área de transferência do ambiente X Window. Pode ler dados de um arquivo ou da entrada padrão e copiar o conteúdo para a área de transferência do X, para então colar em outra aplicação do ambiente X. O xclip pode também imprimir o conteúdo da área de transferência para a saída padrão ou redirecionar para um arquivo ou outro programa.

Também tem o XSel, um utilitário de linha de comando, similar ao xclip, que pode copiar um conteúdo de e para um arquivo ou entrada e saída padrão, para a área de transferência do ambiente X. Pode inclusive adicionar ou apagar um conteúdo da área de transferência.

Para capturar o conteúdo de um arquivo texto use um dos comandos exemplificados abaixo:

$ xclip -selection clipboard arquivo.txt

$ xsel -b < arquivo.txt

Com estes comandos, o conteúdo do arquivo estará armazenado na área de transferência do ambiente X. Para o sentido inverso, copiar o conteúdo da área de transferência para um arquivo, use um dos comandos abaixo:

$ xclip -selection clipboard -o > arquivo.txt

$ xsel -b > arquivo.txt

Um detalhe, estes dois utilitários, obviamente por interagir com o X, são executados sobre o sistema operacional Linux.

quarta-feira, 29 de julho de 2009

Comparando o tamanho dos astros

Encontrei esta figura no Wikimedia Commons. É uma imagem comparando os tamanhos relativos dos planetas do sistema solar com algumas das estrelas mais conhecidas.

Interessante é perceber quanto o nosso planeta Terra é pequeno quando comparado com as maiores estrelas do universo. A Terra possui 6.378,14 quilômetros de raio equatorial e o raio solar é cerca de 110 vezes o raio da Terra, com aproximadamente 695.500 quilômetros.

Júpiter é o maior planeta do sistema solar, com 71.492 quilômetros de raio equatorial, 11,2 vezes o raio da Terra. E Mercúrio é o menor planeta do nosso sistema, com raio de aproximadamente 2.439,7 quilômetros, 0,38 vezes o raio da Terra.

Dentre as estrelas apresentadas na figura, VY Canis Majoris é a maior estrela conhecida no universo, seu raio é cerca de 1.800-2.100 vezes o raio solar e está a uma distância de 4.900 anos-luz de nós. E a estrela mais brilhante para nós é a Sirius com uma magnitude aparente de -1,46 e distante 8,57 anos-luz da Terra. Ambas estão localizadas na constelação do cão maior.


Coloquei aqui uma versão reduzida, a imagem original encontra-se em:
http://commons.wikimedia.org/wiki/File:Star-sizes.jpg

terça-feira, 28 de julho de 2009

Os maiores supercomputadores do planeta

O projeto TOP500 classifica e mostra detalhes dos 500 mais poderosos sistemas de computadores conhecidos no mundo. O projeto teve início em 1993 e publica duas vezes ao ano uma lista atualizada. A lista TOP500 é compilada por Hans Meuer da Universidade do Mannheim, Alemanha, Erich Strohmaier e Horst Simon do Laboratório Nacional de Lawrence Berkeley e Jack Dongarra da Universidade do Tennesse, E.U.A.

A classificação dos supercomputadores é realizada a partir dos resultados do software de benchmark HPL (High-Performance Linpack Benchmark for Distributed-Memory Computers), desenvolvido por um laboratório do Departamento de Ciência da Computação da Universidade do Tennesse.

Algums destaques sobre os resultados é que a Intel domina o mercado de processadores de alto nível com 79,8% de todos os sistemas e que 87,7% são sistemas baseados em processadores Quad-core. Em segundo e terceiro lugar vem os processadores da série Power da IBM com 11% e os processadores da família Opteron da AMD com 8,6%. Outro destaque é que a IBM e a Hewlett-Packard continuam a fornecer a maioria dos sistemas dentre todos os níveis de performance dos TOP500. E por fim, incrivelmente 91% dos 500 supercomputadores mais poderosos utilizam o Linux como sistema operacional.

Na tabela Top500 o índice Rmax é o máximo em performance de um computador pelo benchmark HPL, medido em gigaflop por segundo. Todos os computadores na lista estão ordenados primeiro pelos seus valores em Rmax. Segue a lista editada com somente os 10 melhores:

Rank: 1
Local: DOE/NNSA/LANL
Fabricante: IBM
Computador: BladeCenter QS22/LS21 Cluster, PowerXCell 8i 3.2 Ghz / Opteron DC 1.8 GHz, Voltaire Infiniband
Processador: PowerXCell 8i
Sistema Operacional: Linux
RMax: 1105000

Rank: 2
Local: Oak Ridge National Laboratory
Fabricante: Cray Inc.
Computador: Cray XT5 QC 2.3 GHz
Processador: AMD x86_64 Opteron Quad Core
Sistema Operacional: CNL
RMax: 1059000

Rank: 3
Local: Forschungszentrum Juelich (FZJ)
Fabricante: IBM
Computador: Blue Gene/P Solution
Processador: PowerPC 450
Sistema Operacional: CNK/SLES 9
RMax: 825500

Rank: 4
Local: NASA/Ames Research Center/NAS
Fabricante: SGI
Computador: SGI Altix ICE 8200EX, Xeon QC 3.0/2.66 GHz
Processador: Intel EM64T Xeon E54xx (Harpertown)
Sistema Operacional: SLES10 + SGI ProPack 5
RMax: 487005

Rank: 5
Local: DOE/NNSA/LLNL
Fabricante: IBM
Computador: eServer Blue Gene Solution
Processador: PowerPC 440
Sistema Operacional: CNK/SLES 9
RMax: 478200

Rank: 6
Local: National Institute for Computational Sciences/University of Tennessee
Fabricante: Cray Inc.
Computador: Cray XT5 QC 2.3 GHz
Processador: AMD x86_64 Opteron Quad Core
Sistema Operacional: CNL
RMax: 463300

Rank: 7
Local: Argonne National Laboratory
Fabricante: IBM
Computador: Blue Gene/P Solution
Processador: PowerPC 450
Sistema Operacional: CNK/SLES 9
RMax: 458611

Rank: 8
Local: Texas Advanced Computing Center/Univ. of Texas
Fabricante: Sun Microsystems
Computador: SunBlade x6420, Opteron QC 2.3 Ghz, Infiniband
Processador: AMD x86_64 Opteron Quad Core
Sistema Operacional: Linux
RMax: 433200

Rank: 9
Local: DOE/NNSA/LLNL
Fabricante: IBM
Computador: Blue Gene/P Solution
Processador: PowerPC 450
Sistema Operacional: CNK/SLES 9
RMax: 415700

Rank: 10
Local: Forschungszentrum Juelich (FZJ)
Fabricante: Bull SA
Computador: Sun Constellation, NovaScale R422-E2, Intel Xeon X5570, 2.93 GHz, Sun M9/Mellanox QDR Infiniband/Partec Parastation
Processador: Intel EM64T Xeon X55xx (Nehalem-EP)
Sistema Operacional: SUSE Linux
RMax: 274800

Mais informações em:

http://www.top500.org/
http://www.netlib.org/benchmark/hpl/

segunda-feira, 27 de julho de 2009

O quanto grande é o Sol?

O Sol possui 99,8% de toda a massa do sistema solar. Obviamente é enorme mas o quanto grande é o Sol?

A massa do Sol é 1,9891 x 10^30 quilogramas, isto é 333.000 vezes a massa da Terra. Só que a Terra é feita de rocha e o Sol é quase todo de hidrogênio e hélio, os dois elementos mais leves do universo.

Então qual é o diâmetro do Sol? O diâmetro do Sol é 1,4 milhões de quilômetros, sua circunferência é 4,4 milhões de quilômetros. Podem ser colocados 109 planetas Terra lado a lado para igualar ao diâmetro do Sol.

A área total da superfície do Sol é 6,1 x 10^18 metros quadrados. É o mesmo que 11.990 áreas do planeta Terra.

O volume total do Sol é 1,4 x 10^27 metros cúbicos. Cabem 1,3 milhões de planetas Terra dentro da esfera do Sol.

O quanto grande é o Sol? É muito grande.

domingo, 26 de julho de 2009

Enviando email pela linha de comando usando o sSMTP

O sSMTP é um programa para Linux capaz de enviar um e-mail via um agente de transporte de e-mail (MTA) externo, sendo uma opção para as mensagens de correio do sistema, como também para enviar mensagens pela linha de comando.

Primeiro instale, caso ainda não esteja, o pacote do sSMTP em seu sistema. Na distro Fedora pode ser com o comando "yum install ssmtp" digitado no prompt do console.

Edite o arquivo de configuração "/etc/ssmtp/ssmtp.conf" de acordo com o seu servidor SMTP. O exemplo abaixo serve para o Gmail.com:

root=seunome@gmail.com
mailhub=smtp.gmail.com:465
RewriteDomain=gmail.com
Hostname=localhost
FromLineOverride=YES
UseTLS=YES
AuthUser=seunome@gmail.com
AuthPass=suasenha

Uma recomendação é proteger o arquivo de configuração para que nenhum usuário em sua máquina consiga ler. Faça com o comando abaixo:

# chmod 600 /etc/ssmtp/ssmtp.conf

Para enviar um e-mail basta executar o comando "ssmtp" como super-usuário, ele apresentará um prompt para a entrada da mensagem. Digite como no modelo abaixo, sendo necessário pular uma linha entre o cabeçalho e o corpo da mensagem:

To: email-destino@dominio.com
From: seunome@gmail.com
Subject: Seu assunto

Pule uma linha e escreva aqui sua mensagem.
Pressionando Enter adiciona outra linha no corpo.

Para encerrar pressione as teclas "Ctrl+D". O sSMTP irá enviar então sua mensagem.

Outra opção para gerar o e-mail é criar um arquivo texto colocando em seu conteúdo a sua mensagem, respeitando a mesma estrutura. Desta forma direcione o arquivo texto para o comando do sSMTP em sua execução. Como abaixo:

# ssmtp email-destino@dominio.com < email.txt

Para que um usuário sem privilégios de administrador possa enviar e-mails com o sSMTP, é necessário que o usuário tenha o seu próprio arquivo de configuração do sSMTP e então acioná-lo na execução do comando. Veja exemplo:

$ ssmtp -C ssmtp.conf email-destino@dominio.com < email.txt

A utilidade deste uso do sSMTP pode estar, por exemplo, em fazer sua máquina enviar avisos automaticamente quando você estiver longe dela, simplesmente recebendo e-mails.

sexta-feira, 24 de julho de 2009

Protegendo arquivos importantes no Linux

Imunize os arquivos de configuração, ou outro qualquer, do seu sistema alterando um simples atributo dos arquivos. O bit imutável pode ser usado para prevenir um arquivo de ser apagado ou modificado acidentalmente. Este atributo também previne que alguém crie uma ligação simbólica para o arquivo.

Portanto, é uma boa idéia escolher algum arquivo importante e protegê-lo usando o comando "chattr". Siga o exemplo abaixo:

# chattr +i /etc/smb.conf

Lembre-se, um arquivo com o atributo "i" não pode ser modificado, apagado ou renomeado. Nenhuma ligação pode ser criada até este arquivo e nenhuma informação pode ser escrita no arquivo. Somente o super-usuário ou um processo possuindo a capacidade "CAP_LINUX_IMMUTABLE" pode definir ou remover este atributo.

Para remover o atributo use o comando com o sinal de "-":

# chattr -i /etc/smb.conf

E para listar os arquivos mostrando seus atributos use o comando "lsattr".

Problema de Lógica: Idade das filhas

Atenção, resposta logo abaixo. Cuidado com os olhos!

Um homem estava fazendo o censo de uma certa cidade do interior. Chegou então à mais uma casa e tocou a campainha. Uma mulher atendeu o homem e este já foi explicando:
- Sou do censo e gostaria de fazer umas perguntas.
- Certo, pode fazê-las.
- Gostaria de saber quantos filhos a Senhora têm?
- Tenho três filhas.
- E poderia saber qual a idade delas?
- Sem problemas. Posso dizer que o produto da idade delas é igual a 36.
- Certo. Mas estão me faltando dados para concluir o cálculo.
- Então a soma da idade delas é igual ao número da casa da frente.
O homem então virou-se para ver o número e já em seguida virou-se para a mulher:
- Continuam me faltando dados para a conclusão do cálculo.
- A filha mais velha possui olhos azuis.
- Ok. Agradeço o seu tempo. Até logo.
Qual é a idade das três filhas?







RESPOSTA





Temos uma informação que o produto das idades das três filhas é igual a 36. Consideremos que as filhas sejam a, b, c. Com isto temos que a*b*c = 36. Verifiquemos então as possibilidades existentes:

Filha  a    b    c   Produto
1 1 36 36
1 2 18 36
1 3 12 36
1 4 9 36
1 6 6 36
2 2 9 36
2 3 6 36
3 3 4 36

A segunda informação é que a soma das idades é igual ao número da casa da frente. Como não sabemos qual o número da casa da frente, vamos somar todas as possibilidades encontradas anteriormente:

Filha  a    b    c    Soma
1 1 36 38
1 2 18 21
1 3 12 16
1 4 9 14
1 6 6 13
2 2 9 13
2 3 6 11
3 3 4 10

Podemos então ver que somente duas possibilidades foram iguais. Conclui-mos então a partir desta que o número da casa da frente tem que ser treze, pois se fosse qualquer outro número, o homem do censo não teria falado que faltava informação, pois a equação já estaria satisfeita. Para descobrirmos agora qual a resposta certa precisamos pegar a última informação, que não é nada sobre a cor dos olhos da menina, e sim que existe uma filha mais velha. Portanto a resposta correta não pode ser com as gêmeas mais velhas, ficando então:

2 irmãs gêmeas com 2 anos e uma filha com 9 anos de idade.