Artigos com o marcador Dicas
Limpando e atualizando pacotes no Ubuntu
01/12/08
O Ubuntu é uma das melhores distribuições Linux que existe hoje no mercado e mesmo sendo um ótimo S.O ele não escapa de alguns cuidados que devemos ter, como qualquer outro sistema operacional.
Essa dica é uma dica de manutenção do sistemas onde veremos como atualizar os pacotes de sistema, e limpar os pacotes desnecessários. Essa dica foi feita em cima do Ubuntu 8.10 Intrepid Ibex. Porém ela poder servir para outras versões do Ubuntu.
Primeiramente, precisamos habilitar todos os repositórios do Ubuntu pelo Synaptic. Para isso faça:
Sistema > Administração > Gerenciador de Pacotes Synaptic
Com o Synaptic aberto vá em Configurações > Repositórios. Marque as opções igual a tela abaixo:
Clique em fechar na janela de habilitação dos repositórios e feche o Synaptic. Agora, abra o console e digite o seguinte comando para atualizar as listas de software baseados nos repositórios que acabmos de habilitar no Synaptic:
sudo apt-gte update
Após o update das listas de software, vamos atualizar os pacotes que você tem instalados:
sudo apt-get upgrade
Somente os pacotes e softwares que tiverem atualizações disponíveis serão atualizados. Senão, o sistema irá informar que não há pacotes a serem atualizados.
Agora, podemos remover pacotes que não são mais usados com:
sudo apt-get autoremove
Também podemos limpar os pacotes que baixamos, já instalamos mas eles permanecem na máquina com:
sudo apt-get autoclean
Depois finalizamos com uma checagem de dependências quebradas com:
sudo apt-get check
Pronto. Você acabou de fazer uma manutenção básica em seu sistema Ubuntu. Faça regularmente essa manutenção para evitar problemas futuros e se manter sempre atualizado com as últimas versões de softwares e pacotes que vão sendo liberados. Sempre que uma nova versão do Ubuntu sair tenha como prioridade fazer uma atulização do próprio Ubuntu.
Ruby e o Method Missing
23/07/08
Quando temos um objeto em Ruby e mandamos uma mensagem a esse objeto, a primeira coisa que esse objeto faz é procurar um método com o mesmo nome da mensagem que foi enviada. Mas como assim?
Por exemplo, temos o seguinte código (veja os comentários):
class Cachorro # Aqui temos um método def latir puts "Au au" end def rosnar puts "grrrrrr" end end cao1 = Cachorro.new # Aqui estamos enviando a mensagem latir ao objeto # cao1 cao1.latir cao1.rosnar
Saída:
Au au
grrrrrr
Repare que temos a classe “Cachorro“. Nessa classe temos dois métodos: latir e rosnar. Terminada a classe, vem o script. No script criamos um novo objeto cachorro com o nome de “cao1“. Quando declaramos cao1.latir ou cao1.rosnar, estamos mandando uma mensagem ao objeto.
Quando mandamos essa mensagem, o objeto cao1 procura pelo primeiro método que ele encontrar com o mesmo nome da mensagem. O nome da mensagem é “latir” e “rosnar” no nosso caso.
Muito bem, agora o que aconteceria se chamássemos um método que não exista nesse objeto? Ou melhor, se mandássemos uma mensagem que não exista a esse objeto?
Veja o exemplo e a saída:
class Cachorro def latir puts "Au au" end def rosnar puts "grrrrrr" end end cao1 = Cachorro.new cao1.latir cao1.rosnar # Método não existente cao1.voar
Saída
Au au
grrrrrr
C:/desenvolvimento/ML/Estudo/lib/main.rb:23: undefined method `voar’ for #<Cachorro:0×2909af0> (NoMethodError)
Resumindo, o Ruby quando não encontra o método, levanta a exceção “NoMethodError“. Agora vem a parte mais legal. Nós podemos tratar esse erro capturando a exceção ou, utilizando o method_missing. Mas o que é o method_missing?
Após a verificação de que não existe aquele método chamado pelo objeto, o Ruby antes de levantar a exceção, procura pelo method_missing, se existir, a exceção não é levantada e esse método é chamado. Vamos ao código!
class Cachorro def latir puts "Au au" end def rosnar puts "grrrrrr" end def method_missing(m, *args) puts "Putz! Chamei o metodo errado" end end cao1 = Cachorro.new cao1.latir cao1.rosnar # Método não existente cao1.voar
Saída:
Au au
grrrrrr
Putz! Chamei o metodo errado
Muito legal!
O method_missing é uma maneira elegante e muito “rubística” de tratar chamadas de métodos inexistentes. Mais do tratar esse tipo de erro, você pode usar para criar novas funcionalidades em seu sistema. O Rails usa e abusa do method_missing.
Como transformar um usuário limitado em um administrador no Windows XP
12/07/08
Se você é um usuário limitado no Windows XP, você pode sem fazer reinstalação do sistema se transformar em um usuário administrador. Mas para tal truque dar certo você terá que ter acesso a BIOS. Se ela estiver protegida por senha, nem siga em frente na dica.
O truque consiste em você baixar uma pequena ferramenta chamada PCLoginNow que reseta a conta local de administrador e as outras contas do sistema. A ferramenta reseta rapidamente as senhas do Windows e as configurações de segurança. Todas as versões do Windows são suportadas!
Vamos a dica.
Primeiramente tenha certeza de que você tem acesso a BIOS da máquina. Se tiver, baixe o PCLoginNow aqui. Agora siga o passo a passo:
1 – Queime em um CD/DVD a imagem do PCLoginNow
2 – Acesse a BIOS e altere a seqüência de boot inicial para iniciar pelo CD/DVD
3 – Boot pelo CD que você gravou do PCLoginNow
4 – Clique no botão “Next” quando você ver a mensagem “PC Login Now! is ready to start, please click NEXT to continue…”
5 – Selecione o Windows que foi achado pelo PC Login Now.
6 – Selecione a conta do usuário que você quer editar, marque a opção “is Administrator” e clique em Next
7 – Reinicie o computador e volte a seqüência de boot na BIOS para como estava.
Pronto.
Agora o usuário alterado já será um administrador nessa máquina sem nenhum esforço. Se você for usar a dica, use com responsabilidade. Se você é administrador de sistemas, proteja os computadores setando senhas na BIOS quando for possível.
Fonte: Raymond.cc
Obtendo variáveis de ambiente com Ruby
07/07/08
As vezes em nossa aplicação precisamos verificar ou ver se uma variável de ambiente realmente foi “setada“.
Em Ruby isso é muito fácil fazer.
Veja o código:
1 2 | path_bruto = ENV['path'] puts "Path Bruto: #{path_bruto}" |
Pronto. Muito fácil.
Podemos trabalhar da maneira que quisermos quando recuperamos o valor de uma variável de ambiente. Abaixo, segue um trecho de código bem simples onde quebramos a variável de ambiente “path” em um array e imprimo na tela cada posição do array.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | path_bruto = ENV['path'] puts "Path Bruto: #{path_bruto}" # Vamos trabalhar um pouquinho com o resultado do ENV. # O path_bruto é "quebrado" com um split. A cada caracter ";" # que ele encontra, ele transforma em uma posição no array. path_array = Array.new path_array = path_bruto.split(";") puts "Encontrados #{path_array.size} paths. Vamos exibi-los" # Loop para exibir os caminhos no array path_array.each do |path_separado| puts "Path: #{path_separado}" end |
Uma observação a se fazer é que não é possível setar uma variável usando o ENV. Por exemplo, isso aqui não é possível:
1 | ENV["var"] = "nova_variável" |
Mas, se você criar um arquivo batch, setar a variável no arquivo batch e chamar seu código Ruby a partir desse arquivo batch, a variável setada fica disponível para você na sua aplicação. Vamos aos exemplos.
Temos nosso arquivo BAT:
1 2 3 | @echo off set minha_variavel=Ola Mundo ruby show_minha_var.rb |
E nosso arquivo Ruby que exibe a variável setada no arquivo bat.
1 2 | minha_var = ENV["minha_variavel"] puts minha_var |
Execute o arquivo bat e veja que a variável nele setada também fica disponível para você usar em seu código Ruby.
É isso aí pessoal. Espero que tenham curtido essa dica.
Até a próxima!






Comentários