Pages

Mostrando postagens com marcador Dicas. Mostrar todas as postagens
Mostrando postagens com marcador Dicas. Mostrar todas as postagens

quarta-feira, 29 de fevereiro de 2012

Problema com o Guardião Itaú no Ubuntu Linux

Se você utiliza o Itaú Bankline deve ter se deparado com um problema na últimas semanas: instalar o bendito Guardião!

Fiz uma reclamação através do Twitter do Itaú, que logo me respondeu informando que registraram a reclamação e em até 5 dias entrariam em contato. Realmente eles entraram em contato, e o atendente, muito atencioso por sinal, me informou que eu teria que instalar a versão mais nova do java 1.6, que no caso é a 1.6 update 31.

Bem, instalei a versão mais nova do java da Oracle e consegui instalar o danado do Guardião! Testei no Firefox e no Google Chrome.

Então, como instalo no Ubuntu?


Abra o terminal e execute os comandos:

echo "deb http://www.duinsoft.nl/pkg debs all" > /tmp/duinsoft.list
sudo mv /tmp/duinsoft.list /etc/apt/sources.list.d

sudo apt-key adv --keyserver keys.gnupg.net --recv-keys 5CB26B26
sudo apt-get update

sudo apt-get install update-sun-jre

Você será informado que o pacote update-sun-jre não pode ser autenticado e se você quer instalá-lo mesmo assim. Você responde que sim, claro! =)

Ao final da instalação, basta fechar e abrir novamente seu navegador, acessar o Bankline do Itaú e você poderá instalar o Guardião!

Espero ter ajudado =)

Referência: http://www.duinsoft.nl/packages.php?t=en

[]'s


sábado, 13 de novembro de 2010

Compartilhar 3G com reteador wireless e Ubuntu

Sou assinante de uma internet 3G. No entanto, tenho que dividir minha internet com meu pai. Eu tenho um notebook com Ubuntu e ele um com Windows e por isso queremos mobilidade dentro de casa. Dessa forma o ideal seria comprar um roteador com entrada usb, mas não quis gastar grana =)
Assim, a primeira coisa que pensei foi ligar o modem 3G em meu computador e usar minha placa wireless para criar uma rede Ad-Hoc. Contudo não estava conseguindo fazer funcionar, estava ficando puto, e resolvi partir para outra abordagem.

Obs.: Depois que resolvi o problema achei esse link que acredito que irá funcionar, mas como estava tudo funcionando fiquei com preguiça de testar =P

Como já tinha um roteador comum, resolvi usá-lo em conjunto com meu notebook para criar a rede e compartilhar a internet.
Nesse esquema, quando não estou usando a internet, meu pai se conecta direto com o modem no note dele. Quando estou usando, ligo o modem no meu note, ligo o note com o cabo no roteador e meu pai conecta no roteador via wireless.

Como fazer isso então?


Configurações do roteador


Obs.: No meu caso com firmware AProuter 6.1

Configure a placa de rede do Ubuntu dessa forma:


IP: 192.168.2.10
    Máscara de rede: 255.255.255.0
    Geteway: 0.0.0.0

Com o roteador ligado o conecte pela porta LAN1 ao Ubuntu.

No navegador entre no endereço 192.168.2.1

Vá no link Assistente e preencha de acordo com o descrito abaixo:
  • Primeira tela (Modo de Operação): Selecione Geteway
  • Segunda tela (Configuração da Interface LAN):
  • Endereço IP: 192.168.2.1
        Subnet Mask: 255.255.255.0
    
  • Terceira tela (Configuração da Interface WAN):
  • Tipo de Acesso WAN: IP Estático
        Endereço IP: 172.1.1.1
        Subnet Mask: 255.255.255.0
        Gateway Padrão: 172.1.1.254
        DNS: 8.8.8.8
    
  • Quarta tela (Wireless Configuração Básica):
  • Banda: 2.4 GHz (B+G)
        Modo: AP
        SSID: ESCOLHA_O_SEU
        Canal: 11
    
  • Quarta tela (Wireless Configuração de Segurança):
  • Obs.: WEP é a mais fraca. Configure como quiser.
    Criptografia: WEP
        Tamanho da Chave: 64-bit
        Formato da Chave: Hex (10 characters)
        Chave Tx Padrão: Chave 1
        Chave 1: SENHA_DE_10_CARACTERES_HEXADECIMAIS_A_SUA_ESCOLHA
    
  • Vá em Gerenciamento > Senha e coloque um usuário e senha para acesso a essa interface de administração do roteador.

Configurações do Ubuntu


Agora mude o IP da placa de rede do Ubuntu para 172.1.1.254.

O ip forward deve estar ativado, ou seja, o conteúdo do arquivo /proc/sys/net/ipv4/ip_forward deve ser 1. Para isso, abra o terminal e digite:

$ sudo su -
# echo '1' > /proc/sys/net/ipv4/ip_forward

Em seguida adicione a regra de roteamento no iptables:

$ sudo iptables -A POSTROUTING -t nat -s 172.1.1.254/24 -o ppp0 -j MASQUERADE
Pronto. Agora seu Ubuntu vai estar acessando a internet 3G, bem como qualquer dispositivo que tenha interface wireless.

Como os comandos anteriores devem ser executados toda vez que o computador reiniciar, adicione as linhas abaixo no arquivo /etc/rc.local acima da linha exit 0:

# Compartilhar internet 3G.
iptables -A POSTROUTING -t nat -s 172.1.1.254/24 -o ppp0 -j MASQUERADE
echo '1' > /proc/sys/net/ipv4/ip_forward

Agora, toda vez que iniciar o computador, o comando será executado automaticamente.

Esse post foi mais para eu lembrar caso precise refazer isso, mas quem sabe pode ajudar alguém? =)

[ ]'s

quarta-feira, 25 de agosto de 2010

Highlighting de código no seu site

Estava fazendo o CSS do blog e lembrei de uma coisa que já estava querendo fazer e nunca lembrava: colocar um highlighting de código.

Pesquisei e vi que o mais utilizado pela galera é o Syntax Highlighter. Comecei a utilizar ele, porém uma característica dele não me agradou: Ele só pode ser utilizado com a tag <pre>. O problema da tag <pre> é que quando seu código contém uma linha grande, dependendo do seu layout, ele simplesmente não mostra a linha inteira (o Google Chrome adiciona uma barra horizontal de rolagem, mas mesmo assim fica aparecendo um ícone ? no meio do código) ou mostra a linha passando por cima do que estiver na reta. Por isso eu gosto de usar a tag <code>, o que o Syntax Highlighter não permite. Dessa forma fui buscar outra ferramenta e achei o google-code-prettify.

O google-code-prettify além de me permitir usar a tag <code>, me permite customizar o estilo facilmente via CSS (coisa que o Syntax Highlighter não permite). Olha como é simples usar o google-code-prettify:

Passo 1: Adicione esse código na sua página, entre as tags <head> e </head>:

<link href="http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.css" type="text/css" rel="stylesheet" />
<script type="text/javascript" src="http://google-code-prettify.googlecode.com/svn/trunk/src/prettify.js"></script>

Passo 2: Adicione na tag <body> um onload='prettyPrint()', ficando assim:

...
<body onload='prettyPrint()'>
...

Pronto! Agora quando você quiser fazer o highlighting de algum código é só colocar a classe prettyprint na tag <code>, dessa forma:

<code class="prettyprint">
Seu código entra aqui
</code>

Só isso?!?! Não preciso falar qual é a linguagem do meu código não?! Não! O google-code-prettify descobre qual é a linguagem e faz o highlighting! =)
Mas se você quiser, pode indicar qual é a linguagem adicionando a classe lang-x onde x é a sigla da linguagem. Você pode ver quais linguagens ele faz o highlighting no README do projeto.

Quer colocar o número das linhas? Simples: adicione a também a classe linenums. Ainda assim não está aparecendo? Isso acontece porque por padrão o google-code-prettify coloca o número da linha apenas para múltiplos de cinco (5, 10, 15, ...). Para colocar o número da linha em todas as linhas, basta adicionar isso no seu CSS:

code ol li {
list-style: decimal !important;
}

Dica para que usa o Blogger/Blogspot: Para usar no seu blog, basta adicionar tudo da mesma forma como foi descrito. Lembrando que os passos 1 e 2 devem ser feitos no seu layout, que pode ser editado indo na aba Design e depois em Editar HTML.

Dica para que usa o Gedit: Como esse post tinha alguns códigos em HTML para fazer o highlighting e como para isso tem que escapar as tags HTML substituindo os caracteres < e > pelas suas respectivas sequencias especiais em HTML, adicionei ao Batraquio o snippet Scape HTML tags. Com ele você seleciona um código, aperta Ctrl+Shift+H e ele substitui tudo para você. Assim, você pode escrever seu código normalmente, e quando for fazer o highlighting, usa o snippet =)

Lembrando que diferentemente da tag <pre> com tag <code> você precisa adicionar uma tag <br /> ao final de cada linha (no Blogger isso é feito automaticamente).

Lembrando também que você pode usar a tag <pre> se preferir.

É isso ai! Se quiser mudar o estilo, é só adicionar um CSS com uma borda, uma cor de fundo e o que mais achar que fica legal.

Referências:
[ ]'s

sexta-feira, 4 de junho de 2010

Qual versão do ruby estou usando?

Você usa o rvm e nunca sabe qual versão do ruby está em uso?

Seus problemas acabaram! =)

Adicione a seguinte linha no seu arquivo ~/.bashrc:

export PS1="\`ruby=\$(which ruby 1> /dev/null && ruby -v 2> /dev/null | grep -oP \"^.+?[0-9]+(\.[0-9]+)+\") && echo \"(\$ruby) \"\`$PS1"
Atualize o terminal:

$ source ~/.bashrc
E você poderá ter o seguinte:

$ ruby --version
O programa 'ruby' não está instalado atualmente. Você pode instalá-lo digitando:
sudo apt-get install ruby
$ rvm 1.8.7
(ruby 1.8.7) $ rvm rbx
(rubinius 1.0.0) $ rvm 1.4.0
(jruby 1.4.0) $ rvm 1.9.1
(ruby 1.9.1) $ rvm system
$

Legal não?!

Atualizado em 21/11/10

Nos comentários, o Rodrigo deu uma contribuição show sobre o gemsets do rvm.
Assim, se você quer também ver qual gemset está usando, adicone esse código no arquivo ~/.bashrc:

gemset(){
_gemset=`rvm gemset name 2> /dev/null | xargs`
[ -n "$_gemset" ] && echo "@$_gemset"
}

export PS1="\`ruby=\$(which ruby 1> /dev/null && ruby -v 2> /dev/null | grep -oP \"^.+?[0-9]+(\.[0-9]+)+\") && echo \"(\$ruby\$(gemset)) \"\`$PS1"

Com isso, você vai ter o seguinte:

$ rvm 1.9.2
(ruby 1.9.2) $ rvm gemset use rails3
Now using gemset 'rails3'
(ruby 1.9.2@rails3) $ rvm gemset clear
gemset cleared.
(ruby 1.9.2) $

Lembre-se apenas que essa linha deve ser a última que manipula a variável $PS1 no seu arquivo ~/.bashrc.

Valeu Rodrigo, pelas dicas de melhoria!

[]'s

quarta-feira, 19 de maio de 2010

afterFormat para Ubuntu 10.04

Ano passado criei o afterFormat para o Ubuntu 9.10. Para quem não sabe, o afterFormat é um script que instala automaticamente diversos softwares básicos (principalmente para desenvolvedores) que sempre são necessários após uma formatação, além de fazer algumas configurações. Para ver tudo o que ele faz, dê uma olhada no projeto no github.

Como foi uma mão na roda para muita gente, atualizei o script para rodar no Ubuntu 10.04 (fiz um branch para a versão do Ubuntu 9.10). Adicionei algumas coisas novas, retirei algumas que ficaram obsoletas e o script ficou bem legal.

A cara dele está assim:

screenshot do afterFormat para Ubuntu 10.04

Para baixar, basta entrar no aqui, clicar no link Download Source e escolher entre zip ou tar.

Qualquer dúvida ou sugestão, é só comentar!

[ ]'s

sábado, 1 de maio de 2010

Visualizando diff no Git com o Meld

A ferramenta de diff do Git pode muitas vezes ser confusa e difícil de entender. Contudo, existe uma maneira de configurar o Git para usar uma ferramenta externa de visualização do diff. Nesse caso eu vou usar o Meld que é uma ferramenta excelente que te permite visualizar o diff desta forma:

Tela do diff no Meld

Em primeiro lugar, você deve instalar o Meld:

$ sudo apt-get install meld
Em seguida, configurar o git para usar o Meld como ferramenta externa para diff:

$ git config --global diff.external meld
Se agora você for em um diretório versionado com git e der um git diff irá ocorrer um erro como este:

$ git diff arquivo_qualquer
external diff died, stopping at arquivo_qualquer

Esse erro ocorre pelo fato do Git mandar 7 parâmetros para a ferramenta externa de diff, enquanto o Meld recebe apenas dois deles (os nomes dos arquivos para comparar).

Uma maneira de contornar isso é escrever um script para formatar os parâmetros antes de manda-los para o Meld. Para isso, crie em qualquer lugar (recomendo em ~/.config) um script em shell com qualquer nome (recomendo git_meld_diff.sh) contendo o seguinte conteúdo:

#!/bin/bash
meld "$5" "$2"

Agora podemos configurar o Git para para fazer o diff usando o script que criamos (lembre-se de mudar o caminho e o nome do arquivo para o seu caso)

$ git config --global diff.external /home/hugo/.config/git_meld_diff.sh
Agora, quando você fizer o diff, o Meld irá abrir corretamente e você terá um diff como o presentado na imagem.

Este post é uma adaptação deste post do Nathan Hoad.

Nota: Este post estava no meu blog antigo e não tive como trazer os comentários. Como os comentários foram relevantes, seguem aqui:
  • Hugo Lopes Tavares

    E aí chará!
    Cara, eu prefiro ver na ordem inversa: a versão modificada e a versão original, acho mais normal.
    Outra coisa que dá pra fazer é não usar o Python, né:

    #!/bin/bash
    meld $5 $2 # a versão atual e depois a original

    Abração!

  • Hugo Lopes Tavares

    Só uma correção:

    #!/bin/bash
    meld "$5" "$2"

    Senão não consegue fazer o meld com arquivos que tenham espaço no nome.

  • Hugo Maia Vieira

    Fala chará!
    Realmente fica melhor ver na ordem: versão modificada - versão original.
    Nem tinha pensado em usar Shell. Muito mais prático.
    Valeu pelas dicas Hugo!

    Abraço!

    Obs.: Como mudei o post, fica aqui a versão anterior sem as modificações que Hugo comentou:

    Antes usava um script em python com o conteúdo:

    #!/usr/bin/python

    import sys
    import os

    os.system('meld "%s" "%s"' % (sys.argv[2], sys.argv[5]))


[ ]'s

segunda-feira, 23 de novembro de 2009

afterFormat - script pós formatação para Ubuntu Karmic Koala

Para melhorar nossas vidas nas aulas, alguns amigos e eu tivemos que formatar os PC's das bancadas de aula. Como em nossas bancadas utilizamos Linux, mais precisamente o Ubuntu, fiz um script em shell para automatizar o processo de configuração das máquinas e instalação dos softwares necessários.

Como também tenho que formatar minha máquina e alguns amigos disseram que também irão formatar as suas, e todos iremos instalar o Ubuntu Karmic Koala, fiz uma adaptação do script das bancadas para uma versão que baixe tudo da Internet, instalando automaticamente diversos softwares básicos que sempre são necessários após uma formatação.

Criei um projeto no github para o script afterFormat.sh. Na imagem abaixo está a interface dos script na qual você pode escolher o que quer instalar ou não.

screenshot do afterFormat

Dê uma olhada no README para mais informações sobre os softwares que afterFormat instala, como executá-lo e como fazer a configuração básica do StarDict.

[ ]'s

sábado, 12 de setembro de 2009

Erro ao rodar rake db:migrate

Se ao rodar o comando rake db:migrate você está tendo o seguinte erro:

rake aborted!
undefined method 'reenable' for [environment]>:Rake::Task

Pode estar tendo o mesmo problema que eu tive.

Quando estava montando um ambiente de desenvolvimento para Ruby on Rails em minha máquina, provavelmente dei uma noobada e instalei o rake com o apt-get ou ele entrou como dependência de alguma coisa e eu não parcebi.

Enfim, estava instalado no sistema como pacote Debian a versão 0.8.1 do rake e também como gem a versão 0.8.7

Para resolver isso, bastou desinstalar o rake do sistema com o comando:

sudo apt-get remove rake
Após ter feito isso, o rake rodou normalmente. Para testar rode:

rake --version
Se após isso ele indicar que o pacote não está instalado ou algo do tipo, dê uma olhada nesse post: Chamando aplicativos instalados com o ruby gem com um comando no terminal

[ ]'s

sexta-feira, 11 de setembro de 2009

Chamando aplicativos instalados com o ruby gem com um comando no terminal

Primeiramente um conselho: Tudo que puder instalar para desenvolvimento Ruby via ruby gem instale (melhor ainda se usar o rvm). Evite instalar qualquer coisa no sistema via apt-get. Isso pode gerar uma série de conflitos e, além disso, geralmente o repositório do synaptic demora um tempo para ser atualizado. Assim, instalando as gems você terá um sistema mais limpo e os frameworks/aplicativos mais atualizados, além da facilidade de manutenção.

Para que você possa chamar os aplicativos instalados via ruby gem (gem install "aplicativo"), você pode adicionar o path dos binários destes aplicativos rodando os seguinte comandos no terminal (neste caso utiliznado o ruby 1.8):

sudo su
echo "export PATH=\"\$PATH:/var/lib/gems/1.8/bin\"" >> /etc/bash.bashrc
exit

Isso fará com a linha export PATH="$PATH:/var/lib/gems/1.8/bin" seja adicionada ao aquivo /etc/bash.bashrc. Assim, toda vez que for iniciado o bash, sua variável ambiente $PATH receberá também o caminho dos binários instalados via ruby gem que ficam contidos na pasta /var/lib/gems/1.8/bin.

Contudo, na versão 9.10 do Ubuntu (se você utiliza outra versão, procure saber), o comando sudo foi compilado com a opção --with-secure-path. Assim, mudanças realizadas na variável não surtem efeito quando utilizado o comando sudo. Para contornar isso faça:

echo "alias sudo='sudo env PATH=\$PATH'" >> ~/.bashrc
Desta forma a variável $PATH será a mesma usando o comando sudo ou não.

Com isso, se eu instalar o rails assim:

sudo gem install rails
e poderei chamar o rails no terminal simplesmente rodando:

rails
As mudanças apenas surtirão efeito ao reiniciar seu terminal ou fazendo:

source /etc/bash.bashrc
source ~/.bashrc

[ ]'s