Gustavo Soares

tecnologia, infraestrutura web, mobile e afins

Browsing Posts in todos

Opa!

Essa semana precisei instalar  rvm no meu macbook. Procurei alguns procedimentos na internet (aka google), e alguns não funcionaram como esperado. Juntei o que cada procedimento tinha de melhor e acabei escrevendo um novo procedimento que me atendeu bem.

Um cara aqui do trabalho acabou batendo cabeça com alguns procedimentos inválidos que ele achou e acabei passando meu para ele… e voilá! Funcionou! Pensei: Bem, se ele teve este problema, outras pessoas podem ter… sendo assim resolvi compartilhar o procedimento aqui também. É bem simples. O rvm será instalado no $HOME do usuário.

mkdir -p ~/.rvm/src/ && cd ~/.rvm/src && rm -rf ./rvm/

git clone git://github.com/wayneeseguin/rvm.git
cd rvm
git checkout 1.8.6
./install

vim ~/.bash_profile ou ~/.profile

#RVM
[[ -s "$HOME/.rvm/scripts/rvm" ]] && source “$HOME/.rvm/scripts/rvm”  # This loads RVM into a shell session.

rvm install 1.8.7
rvm system ; rvm gemset export system.gems ; rvm 1.8.7 ; rvm gemset import system
rvm –default 1.8.7

echo “gem: –no-ri –no-rdoc” >> $HOME/.gemrc

Feito isso, basta abri e fechar o terminal (ou digitar source ~/.profile) e começar a trabalhar com o rvm normalmente. Crie um gemset e comece a utilizá-lo.

Ex.:

rvm gemset create test

rvm gemset use test

Share

Dia desses precisei me aprofundar em como criar types e providers no Puppet. Providers são recursos fornecidos pelo Puppet para gerenciar diversos itens de configuração. Um exemplo é o package: provider para gerenciar pacotes. Ok, mas onde entra o “type” nisso? Ele entra para especificar (ou especializar) o tipo de pacote que se deseja gerenciar. O Puppet fornece alguns tipos por padrão: rpm, yum, gem e etc.

A primeira referência, que por sinal foi muito boa, foi o livro Pro Puppet do James Turnbull e do Jeff McCune. Pesquisando mais um pouco (aka, Google), cheguei no excelente link http://www.masterzen.fr/2011/11/02/puppet-extension-point-part-2 que resolvi compartilhar com vocês.

Share

Foi tudo decidido em cima da hora e cá estou eu para participar da primeira conferência voltada para o Puppet: PuppetConf. Para vocês terem idéia, eu fiquei sabendo que iria vir na sexta-feira, dia 16/09/2011 e depois disso foi aquela correria para fazer inscrição, arrumar as passagens, hospedagem e o adiantamento. Cheguei hoje (quarta-feira, dia 21/09/2011) em Portland e amanhã já começa. Ainda bem que costumo me adaptar rápido ao fuso horário, espero que dessa vez não seja diferente.

Comecei a usar o puppet em 2009, e hoje 2 anos depois, é com muito entusiasmo que fico em poder assistir uma série de palestras dessa tecnologia que mudou a forma com que os servidores são instalados, configurados e mantidos na empresa que trabalho atualmente. Realmente considero o puppet uma ferramenta fantástica e juntamente com o Chef, eles são os big players do mercado para sistemas de gerência de configuração. Já escrevi alguns artigos aqui no blog sobre puppet.

A programação das palestras você encontra aqui. Pela descrição de algumas, vai ter momento que vou querer me dividir em 2!!

Para finalizar este post uma coincidência que aconteceu… Meu aniversário é no dia 6/11, o número do quarto que fiquei é o 611. E eu com isso, certo!? Você deve estar pensando… :) ))))

Share

Ufa!

problemas com provedor antigo + falta de tempo = site fora do ar por 2 meses!!!

Hoje consegui parar para finalizar a migração para um novo provedor de web hosting.

De volta!!

Share

Ufa! Depois de muita ralação, muitas noites indo dormir tarde, fins de semana estudando e muita dedicação consegui terminar meu mestrado na PUC-Rio no departamento de informática. Devo admitir que foi bastante difícil, pois apesar de atuar no mercado de T.I há anos minha formação é em outra área: Engenharia Eletrônica pela UERJ.

Defendi minha dissertação em junho de 2010, mas só em novembro de 2010 consegui finalizar todos os ajustes que a banca pediu. O título da minha dissertação é: Sobre a Engenharia Semiótica da interação com Sistemas de Monitoração. Tive o prazer de ter sido orientado pela professora Clarisse Sieckenius de Souza, cuja orientação e paciência foram imprescindíveis para a conclusão da minha dissertação.

Apesar de nunca ter estudado ou tido contato na faculdade, a área de concentração da minha pesquisa foi a área de IHC. Para tentar esclarecer um pouco do que se trata, estou copiando um resumo que preparei.

Sistemas de Monitoração de aplicações e serviços na Internet são,
atualmente, fonte de informação e tomada de decisão ágil para Administradores
de Sistemas. Em ambientes com grande volume de acesso e infraestrutura de
centenas de servidores, comunicar eventos com problemas em uma interface
acessível para navegadores Web é um grande desafio de design de interfaces e
interação, principalmente, em situações nas quais informação e decisão sejam
críticas. Nesse sentido, o foco desta dissertação é o estudo de sistemas de
monitoração em uma grande empresa de Internet. Sobre eles, é feita inicialmente
uma avaliação criteriosa e, em seguida, é elaborada, implementada e avaliada a
proposta de um modelo de design para sistemas de monitoração. Este modelo
demonstra como a Engenharia Semiótica, uma teoria semiótica de IHC, pode ser
combinada com elementos de uma teoria da área de fatores humanos e psicologia
ecológica, o Design de Interfaces Ecológicas, para elaborar a comunicabilidade e
interação no projeto de sistemas de monitoração. A combinação destas abordagens
agrega certas características de representação e comunicação às interfaces,
sugerindo que, conforme avaliações realizadas nesta pesquisa, o suporte à decisão
torna-se mais eficiente e ágil para usuários inseridos no domínio estudado.

Caso tenha se interessado ou “curiosidade” basta baixar a dissertação, clicando aqui.

Share

Resolvi escrever sobre uma dica MUITO útil para quem está utilizando o puppet e que com certeza irá evitar alguns problemas no futuro. Trata-se de uma forma para automatizar o teste de sintaxe dos seus arquivos puppet (*.pp) e os templates ERB antes que tais arquivos sejam enviados para o seu puppetmaster. Para fazer isso, você deve utilizar os hooks que tanto quanto o SVN quanto o GIT oferecem. Resumindo, hooks são mecanismos que tais sistemas de controle de versão oferecem para execução de qualquer comando antes ou após a atualização de código no repositório.

git-hooks e puppet

Como utilizo o git como repositório, daqui para frente vou me concentrar apenas nele. O git oferece hooks do tipo pre-commit, post-commit e update. Os primeiros dois hook são do tipo cliente, enquanto que último atua no lado do servidor, isto é, sempre que é feito um git push. Para configurar os hooks do tipo cliente, basta criar o diretório hooks dentro do diretório .git na raiz do projeto e criar os arquivos pre-commit e post-commit. Para habilitar ou desabilitar um determinado tipo de hook, basta adicionar ou remover a permissão de execução do script. Como estamos interessados em rodar um teste de sintaxe nos arquivos puppet e template o hook mais indicado seria o pre-commit, para evitar que sejam comitados códigos com o potencial de quebrar a execução do puppetmaster. O trecho abaixo é o conteúdo do arquivo que venho utilizando.


#!/bin/sh

syntax_errors=0
error_msg=$(mktemp /tmp/error_msg.XXXXXX)

if git rev-parse --quiet --verify HEAD > /dev/null
then
    against=HEAD
else
    # Initial commit: diff against an empty tree object
    against=4b825dc642cb6eb9a060e54bf8d69288fbee4904
fi

# Get list of new/modified manifest and template files to check (in git index)
cmd="git diff-index --diff-filter=AM --name-only --cached $against | egrep '\.(pp|erb)'"
echo "cmd: $cmd"
for indexfile in `git diff-index --diff-filter=AM --name-only --cached $against | egrep '\.(pp|erb)'`
do
    # Don't check empty files
    if [ `git cat-file -s :0:$indexfile` -gt 0 ]
    then
        echo "Arquivo alterado: $indexfile"
        case $indexfile in
            *.pp )
                # Check puppet manifest syntax
                git cat-file blob :0:$indexfile | puppet --color=false --parseonly --ignoreimport > $error_msg ;;
            *.erb )
                # Check ERB template syntax
                git cat-file blob :0:$indexfile | erb -x -T - | ruby -c 2> $error_msg > /dev/null ;;
        esac
        if [ "$?" -ne 0 ]
        then
            echo -n "$indexfile: "
            cat $error_msg
            syntax_errors=`expr $syntax_errors + 1`
        fi
    fi
done

rm -f $error_msg

if [ "$syntax_errors" -ne 0 ]
then
    echo "Error: $syntax_errors syntax errors found, aborting commit."
    exit 1
fi

O script acima irá rodar o teste de sintaxe apenas nos arquivos com extensão pp e erb, que são as extensões mais utilizadas para os arquivos puppet e os arquivos de template do puppet. É necessário ter o puppet instalado na sua máquina. Para isso, veja qual a versão do puppet que o seu servidor puppetmaster está rodando e instale-a com o comando: sudo gem install puppet -v [VERSÃO]

O exemplo de instalação do puppet que dei anteriormente, foi via rubygems, mas ela poderia ser feita de outras formas. (yum/macports/rpm/apt-get e etc).

É isso! Espero ter ajudado!

Share

Se você, assim como eu ficou revoltado em saber que a motorola fez pouco caso dos usuários do milestone na América Latina e no México (vide figura abaixo) e não vai liberar o upgrade do Android 2.2 (AKA Froyo) fique calmo!

Ainda tem uma esperança para ter algumas das principais funcionalidades oferecidas pelo Froyo como por exemplo o Tethering e a possibilidade de instalar aplicativos no cartão de memória. RROOOOTTTTT!!!!!! (Antes de seguir lendo, não custa avisar que essa é uma operação “arriscada” portanto, faça por sua própria conta..  Eu não sou responsável por nada que venha a acontecer no seu milestone, ok? :) )

É isso mesmo! Só nos resta “rootear” (provavelmente essa palavra não existe…rs) o aparelho. Pesquisando no fórum xda-developers, encontrei um app chamado “Universal Androot”. Basta instalá-lo no seu celular e voialá! Nada de baixa firmware, colocar o celular “recovery mode” ou qualquer coisa parecida… o processo todo é feito pelo próprio aparelho. O passo a passo de como instalá-lo e virar root você encontra no link http://www.addictivetips.com/mobile/how-to-root-android-devices-with-universal-androot-app/. Depois de ter virado root é bom dar um boot no aparelho. Recomendo instalar o programa busybox pelo market… você vai precisar dele no futuro! :)

Depois quando eu tiver um pouco mais de tempo vou explicar como faz para instalar apps no cartão de memória.. tem vários procedimentos pela internet.. alguns requerem que seja instalada uma ROM específica, mas dá para fazer sem isso.

18/09/2010 (Atualizado) – A motorola (@motorola_br) voltou atrás na sua decisão e informou que lançará a atualização do Froyo (Android 2.2) no primeiro trimestre de 2011.

Share

Share

Para quem está acostumado a usar o twidroid ou apps do genêro do twitter para o seu Android fique sabendo que foi lançado uma app oficial do próprio twitter. No momento só está funcionando nos firmwares 2.1…

Para instalá-lo basta escanear o código de barras ao lado do seu celular:

Mais informações em  http://blog.twitter.com/2010/04/twitter-for-android-robots-like-to.html

Share

A espera acabou!!

Conforme noticiado em http://www.blogdoandroid.com/2010/04/extra-saiu-atualizacao-do-android-2-1-para-o-motorola-milestone/ saiu o firmware 2.1 para o motorola android brasileiro via o software de atualização da própria motorola.

Já fiz aqui no meu e funcionou que foi uma maravilha! :) Depois utilizei o Astro e o MyBackup Pro para recuperar as apps instaladas e algumas configurações.

Entre as melhorias do novo firmware 2.1 encontram-se:

  • Nova versão Google Maps já embarcada, com multitouch;
  • Possibilidade de configurar o Google Maps como papel de parede;
  • Widget do Google Latitude e Hora Mundial;
  • Possibilidade de configurar quantidade de telas (3, 5, 7 ou 9) da home screen;
  • Papéis de parede animados (só cuidado com o consumo da memória!);
  • Novidades no aplicativo da câmera: nova interface com comandos na tela; modo Widescreen Picture; otimização para tipos de cenas, fotos e efeitos;
  • Nova galeria de imagens em 3D, agora também com possibilidade de enviar fotos para o Picasa;
  • Bloqueio do aparelho usando o código PIN;
  • Corretor de palavras em português.
Share

Switch to our mobile site