Instalando virtualbox 2.2.0 no Ubuntu 8.10/9.04

April 30th, 2009

É extremamente fácil instalar o VirtualBox. Basta seguir as instruções abaixo:

1. Abra o arquivo /etc/apt/sources.list como root e adicione a linha abaixo no final do arquivo
Para Ubuntu 8.10

deb http://download.virtualbox.org/virtualbox/debian intrepid non-free

Ou
Para Ubuntu 9.04

deb http://download.virtualbox.org/virtualbox/debian jaunty non-free

2. Agora faça o download da chave pública e registre usando o apt-key. Basta executar o comando abaixo. (wget é para fazer o download e o apt-key é para fazer o registro na sua máquina)

$ wget -q http://download.virtualbox.org/virtualbox/debian/sun_vbox.asc -O - | sudo apt-key add -
OK

3. Atualize o seu apt

$ sudo apt-get update

4. Instalando o virtualbox 2.2

$ sudo apt-get install virtualbox-2.2

Reinicie o sistema, pronto, já está instalado

Qualquer dúvida é só falar


Compactando e Descompactando Arquivos no Linux

April 28th, 2009

Decidi fazer um post para ajudar aos iniciantes em linux a compactar e descompactar arquivos, nos formatos .tar, .gz, .tar.gz, .tar.bz2 e zip.
Vale lembrar que essa dica serve para todas distribuições de linux.

Empacotando arquivos com .tar

Empacotando

Sintaxe (mais comum):

tar -cf arquivo_destino.tar arquivo_ou_diretorio_origem

Mas porque “-cf”
Olhando o man do tar (http://www.linuxmanpages.com/man1/tar.1.php), podemos ver que
-c : Cria um arquivo .tar
-f : Usa um arquivo (Aonde vai ficar o nome do arquivo)

Para desempacotar

Sintaxe:

tar -xvf arquivo.tar

Se aprofundando mais no .tar

Para listar tudo o que está sendo empacotado no tar durante o processo, é só colocar o parâmetro “-v”
Sintaxe:

tar -cvf backup.tar backup

Assim ele vai listar todos os arquivos que está sendo empacotado dentro de backup.tar

Listar todos os arquivos que está dentro do tar, basta usar o parâmetro “-t”
Sintaxe:

tar -tf backup.tar

Isso só listará os arquivos, não estará sendo empacotado

OBS: O comando tar, ele apenas empacota todos os arquivos que você deseja, ele não tem o poder de compactar arquivos. Para compactar arquivos, segue a dica abaixo.

Compactando usando gzip

O comando gzip tem o poder de compactar arquivos, diferente do tar que é apenas um empacotador.

OBS: Sempre olhando o man para ajudar nos parâmetros: man do gzip (http://www.linuxmanpages.com/man1/gzip.1.php)

Compactando usando gzip

Sintaxe (mais comum):

gzip meu_documento.txt

Se você notar, ele criou um arquivo “meu_documento.txt.gz”, que é o seu arquivo compactado

Para descompactar

Sintaxe:

gzip -d meu_documento.txt.gz

Se aprofundando mais no gzip

Você pode definir níveis de compactação de 1 a 9 (Quanto maior o valor, maior a compactação)
Sintaxe:

gzip -9 meu_documento.txt

Compactando usando tar e gzip

Para gerar arquivos em .tar.gz, é preciso ser feito em etapas.
- Criar o tar
- Depois criar o gz
Essas dicas já foram feitas acima.

Compactando

Sintaxe:

tar -cvf backup.tar backup
gzip -9 backup.tar.gz

Fazendo isso, vc terá a pasta backup compactada utilizando tar + gzip

Descompactar

É só fazer o processo inverso
Sintaxe:

gzip -d backup.tar.gz
tar -xvf backup.tar

Compactando usando tar.br2

Sem dúvida esse é o melhor formato para obter uma compactação máxima.

É um processo parecido com o tar.gz, são feitas em etapas
- Criar o tar
- Depois criar o br2

Compactando

Sintaxe:

tar -cvf backup.tar backup
bzip2 backup.tar

Fazendo isso, vc terá a pasta backup compactada utilizando tar + bzip2

Descompactar

É só fazer o processo inverso

bzip2 -d backup.tar.bz2
tar -xvf backup.tar

Compactando usando zip

Compactando

Sintaxe:

zip -r backup.zip backup

Descompactando

Sintaxe:

unzip backup.zip

Bom, espero ter ajudado.

Qualquer dúvida é só falar.


Configurando 2 monitores na placa NVIDIA no Ubuntu 8.04

June 13th, 2008

Para você ter 2 monitores (um do seu note e um extra) não basta só plugar o cabo no notebook e sair usando. Antes é preciso configurar se quiser aumentar a área do seu desktop ou até mesmo clonar os monitores (ideal para apresentações).

Então,
primeiro passo: Certifique-se o driver da NVIDIA está instalada.
Caso não esteja, execute os comandos.

sudo apt-get install nvidia-glx-new
sudo nvidia-xconfig

Segundo passo: Certifique-se “nvidia-settings” está instalado:
Caso não esteja, execute comando abaixo.

sudo apt-get install nvidia-settings

OBS: nvidia-setting é um programa gráfico para fazer configurações da sua placa de vídeo, evitando fazer configurações manualmente em modo de texto.

Seguindo os dois passos, plugue o monitor no notebook e reinicie.
Assim que entrar no ambiente, execute o comando

sudo nvidia-settings

Entre na opção “X Server Display Configuration”.

nvidia-settings
Provavelmente o segundo monitor vai estar “disabled”. Clique nele.

E siga os passos abaixo:
1. Configure o segundo monitor para “Seperate X screen”
2. Clique em “Save to X Configuration File”
3. Configure o segundo monitor (novamente) para “TwinView”
4. Clique em “Save to X Configuration File” (novamente)
5. Clique em “Apply”

Agora você já pode reiniciar.

Esses passos que parecem se repetir, porque existe um bug. Caso não faça essa seqüencia, na hora de maximizar alguma janela no desktop em um determinado monitor, ele vai maximizar nos dois monitores, (e na maioria dos casos você vai querer maximizar em apenas 1 monitor).
Seguindo os passos ocorre que no passo 1 ele adiciona umas configurações que não são removidos no passo 3.

Qualquer dúvida é só falar.


Singleton em Ruby

June 4th, 2008

Criando uma classe Singleton em Ruby.
No ruby existe um require singleton que possui um modulo Singleton, que já implementa para você.

Exemplo:

require 'singleton'
class Pessoa
   include Singleton
end

Mais informações em:
http://www.ruby-doc.org/stdlib/libdoc/singleton/rdoc/index.html

Ruby sempre facilitando a vida.

Qualquer dúvida é só falar.


Otimizando a busca no history

June 4th, 2008

Creio que todos linuxmaníacos sabem que os seus últimos comandos executados no bash são salvos em um arquivo na sua pasta home.
Normalmente o default são os últimos 500 comandos, e são salvos no arquivo “~/.bash_history”.

Então, com isso, como a gente pode buscar um comando que já foi executado?
Existem diversas formas, os mais comuns são, clicando nas teclas de orientação (DOWN e UP), clicando CRTL+R no terminal ou então dando um grep no comando history.
Uma coisa que nem todo mundo sabe, é que dentro bash existem 2 variáveis chamadas history-search-backward e history-search-forward, que com elas pode usar da seguinte forma.
Supondo que você sabe que dentro do seu history existe o comando “find . -name blog.txt”, mas o comando está lá no meio do seu history. Basta você digitar o inicio do comando, por exemplo “find” e clicar “Page UP”, e com isso ele vai exibir um a um todos os comandos que começam com “find”, simplificando a sua busca.
E clicando “Page Down”, vai exibir os comandos anteriores, caso você tenha tenha clicado “Page UP” várias vezes.

Como eu configuro?
Fácil,
É só abrir em qualquer editor como root o arquivo “/etc/inputrc”, e descomentar as linhas:
“\e[5~”: history-search-backward
“\e[6~”: history-search-forward
O código “\e[5~” é a tecla “Page UP” e o código “\e[6~” é a tecla “Page Down”
Salva o arquivo, fecha a seção bash e crie uma outra.
Pronto, agora é só testar.

OBS: No texto eu citei que o linux por default só grava 500 últimos comandos, você pode alterar essa configuração para qualquer outro valor.
Basta editar o arquivo “~/.bashrc” ou “~/.bash_history”, dependendo da distribuição, e adicionar as linhas:
export HISTFILESIZE=XXXX
export HISTSIZE=XXXX

XXXX = O valor da quantidade que será salvo os comandos

Qualquer dúvida é só falar.


Ripar CD para MP3 com Sound Juicer

June 3rd, 2008

Para quem tem o Sound Juicer instalado no seu Ubuntu, mas não consegue ripar para arquivos MP3 por ele.
Basta instalar o pacote gstreamer0.10-plugins-ugly-multiverse

sudo apt-get install gstreamer0.10-plugins-ugly-multiverse

OBS: Pra quem não sabe, Sound Juicer é um programa que já vem junto com o Ubuntu, que serve para ripar músicas do CD para o computador, mas como default, não é possivel gerar arquivos MP3.

Qualquer dúvida é só falar


Por que é tão importante usar os padrões de projeto?

May 6th, 2008

Praticamente todos os programadores já tiveram dores de cabeça quando pegaram códigos feitos pelos outros, principalmente aqueles códigos que estão cheio de gambiarras. Isso ocorre quando algum programador escreve um código sem nenhum tipo de padrão, ele escreve como ele acha melhor.
Aqui neste post eu não vou ensinar a usar os padrões de projeto, mas sim como eles são importantes.

Exemplos de padrões no dia a dia:

Exemplo 1:
Quando você vai apertar um parafuso, você sabe que se girar para o sentido horário, vai estar apertando. E para afroxar? Sentido anti-horário. Isso parece obvio, porque você aprendeu isso desde criancinha que é assim que funciona. Imagina se cada fabricante de parafuso definisse um mecanismo diferente para apertar ou afroxar? Se para apertar fosse girar 3x para o sentido horário e 5x para anti-horário, ou alguma outra forma? Com certeza todo mundo iria ficar doido para cada parafuso que encontrasse.

Exemplo 2:
Sinalização de transito, é um padrão internacional que o sinal vermelho é de “parar”, sinal verde é de “siga”, imagina se todos os paises definissem um modo diferente, ou com cores diferentes? Ou pior, se cada prefeito definisse um padrão diferente? Não ia dar muito certo ou então teríamos que decorar um monte de padrões de sinalização.

Isso acontece também com um código de programação, se cada programador definir um padrão diferente, quando outro programador precisar alterar o código com certeza ficará maluquinho.

Vantagens:

É claro que você pode criar um padrão seu, no entanto, essa maneira não é a mais eficiente, pois um padrão de projeto representa o trabalho criado por uma outra pessoa que passou pelos mesmos problemas. Dessa forma você estaria reinventando a roda.

Com isso existem alguns padrões:

Padrões de criação:

Padrões estruturais:

Padrões comportamentais:

Em breve poderei falar sobre os padrões mais utilizados.