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, 2009Decidi 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, 2008Para 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”.

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, 2008Criando 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, 2008Creio 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, 2008Para 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, 2008Praticamente 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:
- O código fica mais simples, tanto para o próprio programador e tanto para outros.
- Quando um projeto é feito em equipe, cada membro pode fazer a sua parte do código, que depois as chances de se encaixar são quase 100%.
- No reuso do código fica mais simples, por que os padrões podem ser aplicadas em diversos tipos de problemas.
É 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:
- Abstract Factory
- Builder
- Factory Method
- Prototype
- Singleton
Padrões estruturais:
- Adapter
- Bridge
- Composite
- Decorator
- Façade
- Flyweight
- Proxy
Padrões comportamentais:
- Chain of Responsability
- Command
- Interpreter
- Iterator
- Mediator
- Memento
- Observer
- State
- Strategy
- Template Method
- Visitor
Em breve poderei falar sobre os padrões mais utilizados.